在 AWS Java Lambda 中返回自定义 HTTP 状态代码?

时间:2021-07-28 15:26:44

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

我试图让我用 Java 编写的 AWS Lambda 函数返回一个错误的 JSON 模型。问题是当使用 Postman 或任何其他 HTTP 客户端发送请求时,API Gateway 返回的 HTTP 状态代码是 200。我需要 HTTP 状态代码是我在 JSON 中返回的代码。

我从以下文档页面了解到,要使其正常工作,我的 AWS Java Lambda 代码需要返回特定标头并在 JSON 中显式设置 HTTP 状态代码。但这仍然会导致 HTTP 客户端收到 200 OK 状态代码。

https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html

如何让 AWS API Gateway 返回我在 JSON 响应中手动设置的 HTTP 状态代码?

这不是代理集成,因此我无法使用 APIGatewayProxyResponseEvent。

我的 AWS Java lambda 返回如下所示的 JSON 字符串。

{
  "statusCode": 502,
  "isBase64Encoded": false,
  "headers": {
    "X-Amzn-ErrorType": "InvalidParameterException",
    "content-type": "application/json"
  },
  "body": {
    "requestId": "a4c946aa-3ca9-4252-ab6c-4f5fb1c6f53e",
    "errorMessage": "InternalServerError Manually triggered error"
  }
}

非常感谢您的建议!

0 个答案:

没有答案