【发布时间】:2022-01-30 07:11:42
【问题描述】:
我在 Lambda 前面有一个 API 网关。
来自 Lambda (HTTP 2xx) 的成功响应会转发响应正文。
但是,对于错误响应(HTTP 5xx 和其他),API Gateway 使用响应模板转换响应正文。
有没有办法避免这种情况?要获得来自 Lambda 的原始错误响应正文?
在我的 Lambda 中,我有这个:
return callback(generalError, {
statusCode: 500,
headers:{
"content-type": "application/json"
},
body: JSON.stringify({
error: 'INTERNAL_ERROR',
description: error.message,
})
});
但是,作为网关的输出,我得到了这个:
{ "error": "Internal server error" }
不匹配。 Lambdas 响应。它确实与 API Gateway 中的响应模板匹配:
{"message":$context.error.messageString}
但是,有没有办法只代理原始 Lambda 响应而不是进行此转换?
【问题讨论】:
-
什么是
generalError?另外,我不知道return callback(...)会导致问题(特别是您在此处使用 return),但如果可能的话我会避免它。并查看Handle custom Lambda errors in API Gateway。 -
@jarmod 这只是一个 json 对象,即使用文本字符串替换它也行不通,因为它会被网关响应模板替换。我会看看那个链接谢谢!
标签: amazon-web-services aws-lambda aws-api-gateway