我正在尝试从API网关向AWS Lambda函数发送一些参数,问题是网关将所有空参数发送到lambda,因此失败。 我查看了我所知道的配置,虽然数量不多,但是我无法解决它。
这是我的请求正文:
{
"functionName": "register",
"name": "camilo",
"nick": "kmilo",
"email": "uncorreo@email.com",
"phone": "555555",
"birthdate": "29-09",
"password": "000000"
}
和映射模板:
{
"functionName":"$input.params('functionName')",
"name":"$input.params('name')",
"nick": "$input.params('nick')",
"email": "$input.params('email')",
"phone": "$input.params('phone')",
"birthdate": "$input.params('birthdate')",
"password": "$input.params('password')"
}
当我直接对其进行测试时,lambda函数可以正常工作,因此我认为问题出在API网关中
答案 0 :(得分:-1)
我没有使用user.update({'_id': { $in: req.body.ids}},
{ $addToSet: { forms: { $each: req.body.forms} } }, {multi: true})
,但是另一种方法是在API网关上启用input params
。然后,API网关将所有内容代理给lambda函数,您可以从lambda接收的Lambda proxy
参数中提取所有内容。请求正文为event
{"name1":"val1"}
答案 1 :(得分:-1)
{
"functionName" = $input.json('$.functionName');
"name":"$input.json('$.name')"
//try for other body parameters as well.
}
请参阅this link