Lambda作为代理集成在API网关中,并且必须根据此文档https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
格式化响应当我使用POST方法在AWS控制台的Lambda中测试lambda函数时,得到200 ok响应。但是,当我从API网关运行此测试时,我收到“格式错误的Lambda代理响应”,响应主体为“空”。
我在Lambda测试中验证了响应,它看起来正确,但是从API Gateway测试执行时,空主体仍然存在。在查看了集成Lambda代理的输入格式后,我找到了根本原因:您必须正确格式化事件数据。我希望这可以节省您的时间和沮丧。
使用JSON采样请求正文
{
"username": "someuser",
"password": "some password"
}
以下是分辨率:
Python
请求
def lambda_handler(event, context):
...
body = json.loads(event['body'])
username = body['username']
响应:
response = {
"statusCode": 200,
"body": json.dumps({"Message": "some message"}),
"headers": {
"Content-Type": "application/json",
},
"isBase64Encoded": False,
}
Node.JS
请求
JSON.parse(event)
响应
JSON.stringify(response)