Aby przekazać parametry do funkcji lambda, musisz utworzyć mapowanie między żądaniem interfejsu API Gateway a funkcją lambda. Mapowanie odbywa się w Integration Request
->Mapping templates
wybranego zasobu API Gateway.
Utwórz odwzorowanie typu application/json
, a następnie po prawej stronie edytujesz (kliknij ołówkiem) szablon.
Szablon mapowania to tak naprawdę szablon Velocity, w którym można używać ifs, pętli i oczywiście drukować na nim zmienne. W szablonie wprowadzono te zmienne, w których można uzyskać dostęp do parametrów zapytania, nagłówków żądań itp. Indywidualnie. Za pomocą następującego kodu możesz ponownie utworzyć cały kwerenda:
{
"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('$')
}
Uwaga: kliknij symbol zaznaczenia, aby zapisać szablon. Możesz przetestować swoje zmiany za pomocą przycisku „test” w swoim zasobie. Ale aby przetestować parametry zapytania w konsoli AWS, musisz zdefiniować nazwy parametrów wMethod Request
sekcji swojego zasobu.
Uwaga: sprawdź Podręcznik użytkownika Velocity aby uzyskać więcej informacji na temat języka szablonów Velocity.
Następnie w szablonie lambda możesz wykonać następujące czynności, aby przeanalizować kwerendę:
var query = require('querystring').parse(event.querystring)
// access parameters with query['foo'] or query.foo