我正在尝试使用AWS Lambda建立一个hello world示例,并通过api网关为其提供服务。我单击了“创建Lambda函数”,这将设置api通道并选择了Blank Function选项。我添加了在AWS网关入门指南中找到的lambda函数:
exports.handler = function(event, context, callback) { callback(null, {"Hello":"World"}); // SUCCESS with message };
问题是,当我向它发出GET请求时,它返回了502响应{ "message": "Internal server error" }。并且日志显示“由于配置错误,执行失败:Lambda代理响应格式错误”。
{ "message": "Internal server error" }
通常,当您看到时Malformed Lambda proxy response,表示您来自Lambda函数的响应与API Gateway期望的格式不匹配,例如
Malformed Lambda proxy response
{ "isBase64Encoded": true|false, "statusCode": httpStatusCode, "headers": { "headerName": "headerValue", ... }, "body": "..." }
如果您未使用Lambda代理集成,则可以登录到API Gateway控制台,然后取消选中Lambda代理集成复选框。
另外,如果您看到的是间歇性的 Malformed Lambda proxy response,则可能意味着Lambda函数已经限制了对Lambda函数的请求,并且您需要请求Lambda函数的并发执行限制增加。