如何通过GET方法将API网关与Lambda集成

我非常困惑,试图将AWS API GatewayAWS Lambda集成,因为我试图通过GET方法执行lambda函数,而且我的函数总是返回无效参数。

{“errorMessage”:“错误 – 无效的组ID – undefined – alexa id:undefined”} |

这是因为参数没有到达函数,而idgrupovariables<=0

我试图执行一个带有这个表单的URL的lambda函数:

 domain.execute-api.us-east-1.amazonaws.com/prod/chkneopairtoken?idgrupo=3823&clientId={321356-6666-4745}&keypair=90809276 

在我的Lambda函数中,我正在这样做:

 var idgrupo = event.idgrupo; var alexaClientId = event.clientId; var keypair = event.keypair; if (idgrupo > 0){ } else{ console.log("Error - Invalid Group ID - " + idgrupo + " - alexa id: " + alexaClientId + " - "); //callback(null, "Error - Invalid Group ID - " + idgrupo + " - alexa id: " + alexaClientId); context.fail("Error - Invalid Group ID - " + idgrupo + " - alexa id: " + alexaClientId); } 

有没有可能做我想做的事情? 我认为这不是API网关和AWS Lambda之间的集成错误,因为函数返回了我的自定义错误消息,我相信这是一个传输参数错误。

回到你的资源GET的“集成请求”,在“Body Mapping Templates”

  1. select“Request body passthrough”的build议选项
  2. 添加一个映射模板(点击“添加映射模板”操作)
  3. 为内容types编写“application / json”
  4. 添加这个模板

 { "idgrupo" : "$input.params('idgrupo')", "clientId" : "$input.params('clientId')", "keypair" : "$input.params('keypair')" } 

在您的API网关控制台的“集成请求”下的“映射模板”部分中,为您提交的内容types创build一个模板,然后select“方法请求传递”。 这会将所有内容传递给Lambda函数。

然后在您的Lambda函数代码中,您将需要通过event.params.idgrupoevent.params.clientId等参考这些URL参数值。