AWS错误:代理集成无法配置为转换响应

sam*_*mtt 7 api lambda amazon-web-services aws-lambda aws-api-gateway

我是Amazon Lambda-API实现的初学者。

我只是在部署一个非常简单的API:一个非常简单的lambda函数,使用Python 2.7打印我用API Gateway触发的“ Hello World”。但是,当我单击“调用URL”链接时,它告诉我“ {” message”:“内部服务器错误”} “。

因此,我试图查看这里出了什么问题,所以我单击了API本身,然后在“方法执行”中看到以下灰色:“ 集成响应:无法配置代理集成来转换响应。

在此处输入图片说明

我测试了许多不同的配置,但仍然遇到相同的错误。我不知道为什么这一步是灰色的。

小智 6

尝试集成API网关和lambda函数时遇到了相同的问题。基本上,花了几个小时后,我才知道。因此,当您创建新的资源或方法时,默认情况下会设置“ 使用Lambda代理”集成

因此,您需要删除它。遵循集成请求并取消选中“ 使用Lambda代理”集成 在此处输入图片说明

您将看到以下图片 在此处输入图片说明

然后在“ 资源”,“ 吸引力”选项卡中,选择“ 启用CORS” 在此处输入图片说明 在此处输入图片说明在此处输入图片说明

完成后,再次部署您的API并测试功能。此外,本主题还将解释幕后情况。

祝好运...


adi*_*tya 5

Lambda响应应采用API网关处理的特定格式。您可以在帖子中找到详细信息。https://aws.amazon.com/premiumsupport/knowledge-center/malformed-502-api-gateway/

exports.handler = (event, context, callback) => {

var responseBody = {
    "key3": "value3",
    "key2": "value2",
    "key1": "value1"
};

var response = {
    "statusCode": 200,
    "headers": {
        "my_header": "my_value"
    },
    "body": JSON.stringify(responseBody),
    "isBase64Encoded": false
};
callback(null, response);
Run Code Online (Sandbox Code Playgroud)