我在尝试将AWS API Gateway
与AWS Lambda
进行整合时感到非常困惑,因为我试图通过GET
方法执行lambda函数,而且我的函数总是返回无效参数。
{" errorMessage":"错误 - 无效的组ID - 未定义 - alexa id: 未定义"} |
这是因为参数未到达函数,而idgrupo
变量为<=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之间的集成错误,因为该函数返回我的自定义错误消息,我相信它是传输参数错误。
答案 0 :(得分:1)
返回资源GET的“集成请求”,在“正文映射模板”
下{
"idgrupo" : "$input.params('idgrupo')",
"clientId" : "$input.params('clientId')",
"keypair" : "$input.params('keypair')"
}
答案 1 :(得分:0)
在API网关控制台的“集成请求”下的“映射模板”部分中,为要提交的内容类型创建模板,然后选择“方法请求直通”。这会将所有内容传递给Lambda函数。
然后,在您的Lambda函数代码中,您需要通过event.params.idgrupo
,event.params.clientId
等引用这些网址参数值。