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

Problem with API Gateway and AWS Lambda Function: Malformed Lambda proxy response

我正在尝试使用带有 API 网关的 DotNet 核心 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

我找不到我做错了什么。

好的...经过更多时间的研究,我找到了正确的方法。

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

甚至 AWS Lambda 函数测试中显示的答案看起来也不一样。

AWS Lambda Function return

要使用它需要安装 nuget 包 Amazon.Lambda.APIGatewayEvents