Para passar parâmetros para sua função lambda, você precisa criar um mapeamento entre a solicitação do API Gateway e sua função lambda. O mapeamento é feito na seção Integration Request
-> Mapping templates
do recurso API Gateway selecionado.
Crie um mapeamento do tipo e application/json
, à direita, edite (clique no lápis) o modelo.
Um modelo de mapeamento é na verdade um modelo Velocity, no qual você pode usar ifs, loops e, é claro, imprimir variáveis nele. O modelo tem essas variáveis injetadas, onde você pode acessar os parâmetros da string de consulta, solicitar cabeçalhos, etc. individualmente. Com o código a seguir, você pode recriar toda a string de consulta:
{
"querystring" : "#foreach($key in $input.params().querystring.keySet())#if($foreach.index > 0)&#end$util.urlEncode($key)=$util.urlEncode($input.params().querystring.get($key))#end",
"body" : $input.json('$')
}
Nota: clique no símbolo de verificação para salvar o modelo. Você pode testar suas alterações com o botão "test" no seu recurso. Mas, para testar os parâmetros da string de consulta no console da AWS, você precisará definir os nomes dos parâmetros na Method Request
seção do seu recurso.
Nota: consulte o Guia do usuário do Velocity para obter mais informações sobre o idioma do modelo de velocidade.
Em seu modelo lambda, você pode fazer o seguinte para obter a string de consulta analisada:
var query = require('querystring').parse(event.querystring)
// access parameters with query['foo'] or query.foo