Api Gateway将空参数发送到AWS Lambda

时间:2018-08-01 16:43:54

标签: amazon-web-services aws-lambda aws-api-gateway

我正在尝试从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网关中

2 个答案:

答案 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