Я пытаюсь сопоставить запрос шлюза API с лямбда-выражением. Я использую шаблон сопоставления
{
"method": "$context.httpMethod",
"body" : $input.json('$'),
"headers": {
#foreach($param in $input.params().header.keySet())
"$param": "$util.escapeJavaScript($input.params().header.get($param))" #if($foreach.hasNext),#end
#end
},
"queryParams": {
#foreach($param in $input.params().querystring.keySet())
"$param": "$util.escapeJavaScript($input.params().querystring.get($param))" #if($foreach.hasNext),#end
#end
},
"pathParams": {
#foreach($param in $input.params().path.keySet())
"$param": "$util.escapeJavaScript($input.params().path.get($param))" #if($foreach.hasNext),#end
#end
},
"source_ip" : "$context.identity.sourceIp"
}
Проблема в том, что я также хотел бы жестко закодировать параметр строки запроса, который пользователь не должен передавать (по причинам, связанным с пользовательским интерфейсом), но моя лямбда ожидает. Я бы хотел сделать что-то подобное
{
“queryParams” :
“myrequiredkey” : “foo” }
}
}
Однако когда я пытаюсь объединить эти два шаблона, в результате я всегда перезаписываю все queryParams, а лямбда-выражение получает в своем событии {"queryParams": "foo"}}. Но я также хочу, чтобы ему отправлялись любые другие параметры запроса. Есть ли способ добавить жестко запрограммированный параметр запроса и не переопределить все динамически сопоставленные параметры?
Спасибо!