Aws lambda lambda代理响应格式错误,can';我找不到错误

Aws lambda lambda代理响应格式错误,can';我找不到错误,aws-lambda,aws-api-gateway,Aws Lambda,Aws Api Gateway,我试图使用lambda和api网关从我的api获取数据,在发送get请求时,我收到以下错误: Execution failed due to configuration error: Malformed Lambda proxy response 代码返回: return { 'statusCode': 200, 'headers': {'Content-Type': 'application/json'}, 'Access-Control-Al

我试图使用lambda和api网关从我的api获取数据,在发送get请求时,我收到以下错误:

Execution failed due to configuration error: Malformed Lambda proxy response
代码返回:

return {
        'statusCode': 200,
        'headers': {'Content-Type': 'application/json'},
        'Access-Control-Allow-Origin': '*' ,
        "isBase64Encoded": False,
        'body': json.dumps(data)
    }

我做错了什么?

代理响应必须是一个字典,它:

  • 标题
  • body
  • isbase64编码
  • 多值标题
  • statusCode
在您的示例中,您有一个额外的键
访问控制允许源
,这就是为什么API网关声称这是一个格式错误的响应。上面链接的文档甚至明确指出,
Access Control Allow Origin
必须是
标题的一部分

要为Lambda代理集成启用CORS,必须将
访问控制允许来源:域名
添加到输出
标题中。域名
可以是任何域名的
*

如果您将响应更改为以下内容,它应该可以正常工作:

返回{
“状态代码”:200,
“标题”:{
“访问控制允许来源”:“*”,
“内容类型”:“应用程序/json”
},
“isBase64Encoded”:False,
“body”:json.dumps(数据)
}