Чтобы передать параметры в вашу лямбда-функцию, вам необходимо создать отображение между запросом API-шлюза и вашей лямбда-функцией. Сопоставление выполняется в разделе Integration Request
-> Mapping templates
выбранного ресурса шлюза API.
Создайте отображение типа application/json
, затем справа вы отредактируете (щелкните карандашом) шаблон.
Шаблон отображения на самом деле является шаблоном Velocity, где вы можете использовать ifs, циклы и, конечно, печатать переменные на нем. В шаблон вводятся эти переменные, где вы можете получить доступ к параметрам строки запроса, заголовкам запроса и т. Д. По отдельности. С помощью следующего кода вы можете заново создать всю строку запроса:
{
"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('$')
}
Примечание: нажмите на значок галочки, чтобы сохранить шаблон. Вы можете проверить свои изменения с помощью кнопки «Тест» на вашем ресурсе. Но чтобы протестировать параметры строки запроса в консоли AWS, вам нужно определить имена параметров в Method Request
разделе вашего ресурса.
Примечание: обратитесь к Руководству пользователя Velocity для получения дополнительной информации о языке шаблонов Velocity.
Затем в своем лямбда-шаблоне вы можете сделать следующее, чтобы проанализировать строку запроса:
var query = require('querystring').parse(event.querystring)
// access parameters with query['foo'] or query.foo