AWS Codepipeline构建AWS Lambda,API网关返回格式错误的Lambda代理响应,502错误

时间:2017-06-02 09:20:26

标签: amazon-web-services aws-lambda aws-api-gateway aws-codepipeline

我准备了一条管道来创建Lambda& API网关。我的功能是计算器。 当我单独测试Lambda函数时,如果给出了正确的响应,但是当我调用我的API网关URL并传递相同的JSON时,它会给出如下错误。

<script>

我的Lambda功能如下

Fri Jun 02 09:17:46 UTC 2017 : Endpoint response body before transformations: "Invalid operator entered"
Fri Jun 02 09:17:46 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=57991ca2-4774-11e7-bb26-5f9c6ab6fea6, Connection=keep-alive, Content-Length=26, Date=Fri, 02 Jun 2017 09:17:46 GMT, X-Amzn-Trace-Id=root=1-59312d3a-625acffb6cc2497ff543900e;sampled=0, Content-Type=application/json}
Fri Jun 02 09:17:46 UTC 2017 : Execution failed due to configuration error: Malformed Lambda proxy response
Fri Jun 02 09:17:46 UTC 2017 : Method completed with status: 502

请提出任何建议

由于

1 个答案:

答案 0 :(得分:0)

听起来您正在使用API​​网关中的“代理”样式Lambda集成。您可以在“集成请求”页面的API网关控制台中进行确认。

在这种情况下,Lambda函数生成的响应必须采用以下格式:

{
  "body": "<payload>",
  "statusCode": <http_status_code>,
  "headers" : {
    <response_headers_map>
  }
}

API Gateway将解析此问题并为客户端生成匹配的HTTP响应。