API网关和AWS Lambda函数的问题:Lambda代理响应格式错误

时间:2020-05-22 17:05:26

标签: aws-lambda aws-api-gateway malformed

我正在尝试使用带有API网关的DotNet Core Lambda函数制作HelloWorld。

我的lambda函数正在返回

"{\"isBase64Encoded\":false,\"statusCode\":200,\"headers\":{\"Content-Type\":\"application/json\",\"Custom-Header\":\"application/json\"},\"body\":\"{\\u0022message\\u0022:\\u0022ola\\u0022}\"}"

Aws Lambda Function Return Print

但是我的API网关告诉我,这是一个格式错误的响应。

Fri May 22 16:52:12 UTC 2020 : Endpoint response body before transformations: "{\u0022isBase64Encoded\u0022:false,\u0022statusCode\u0022:200,\u0022headers\u0022:{\u0022Content-Type\u0022:\u0022application/json\u0022,\u0022Custom-Header\u0022:\u0022application/json\u0022},\u0022body\u0022:\u0022{\\u0022message\\u0022:\\u0022ola\\u0022}\u0022}"
Fri May 22 16:52:12 UTC 2020 : Execution failed due to configuration error: Malformed Lambda proxy response

Fri May 22 16:52:12 UTC 2020 : Method completed with status: 502

我找不到我在做错什么。

1 个答案:

答案 0 :(得分:0)

好吧……经过一段时间的研究,我找到了正确的方法。

我试图创建自己的JSON字符串,但没有成功。当我尝试使用API​​GatewayProxyResponse对象时,API网关正确理解了Lambda函数的答案。

AWS Lambda Function测试中显示的答案看起来也不同。

AWS Lambda Function return

要使用它,必须安装nuget包Amazon.Lambda.APIGatewayEvents