我试图使用lambda和API Gateway从我的api中获取数据,在发送获取请求时出现此错误:
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)
}
我在做什么错了?
答案 0 :(得分:1)
代理响应必须是must only contain the following keys的字典:
headers
body
isBase64Encoded
multiValueHeaders
statusCode
在您的示例中,您还有一个附加密钥Access-Control-Allow-Origin
,因此API Gateway声称它是格式错误的响应。上面链接的文档甚至明确声明Access-Control-Allow-Origin
必须是headers
的一部分:
要为Lambda代理集成启用CORS,必须将
Access-Control-Allow-Origin:domain-name
添加到输出headers.domain-name
可以是任何域名的*
。
如果将响应更改为以下内容,则应该可以正常工作:
return {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
'isBase64Encoded': False,
'body': json.dumps(data)
}