一尘不染

AWS lambda api网关错误“格式错误的Lambda代理响应”

node.js

我正在尝试使用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代理响应格式错误”。


阅读 214

收藏
2020-07-07

共1个答案

一尘不染

通常,当您看到时Malformed Lambda proxy response,表示您来自Lambda函数的响应与API
Gateway期望的格式不匹配,例如

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headerName": "headerValue", ... },
    "body": "..."
}

如果您未使用Lambda代理集成,则可以登录到API Gateway控制台,然后取消选中Lambda代理集成复选框。

另外,如果您看到的是间歇性的 Malformed Lambda proxy response,则可能意味着Lambda函数已经限制了对Lambda函数的请求,并且您需要请求Lambda函数的并发执行限制增加。

2020-07-07