You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置AWS API Gateway集成响应:Lambda失败时返回400状态码(非代理模式)

解决方案:非代理模式下让API Gateway返回400对应Lambda执行失败

针对你的场景,我们可以通过API Gateway的集成响应功能,精准匹配Lambda抛出的错误格式,将其映射到400状态码。以下是一步步的实操指南:

1. 进入API Gateway的集成响应配置

  • 打开AWS控制台,找到你的目标API,进入对应的资源和方法(比如你触发Lambda的POST/GET方法)。
  • 先确认集成请求标签页下,没有勾选「Use Lambda Proxy integration」(确保是非代理模式)。
  • 切换到集成响应标签页,这是我们配置错误映射的核心区域。

2. 添加匹配Lambda错误的集成响应规则

  • 点击「Add integration response」,在弹出的配置框中填写:
    • Lambda Error Regex:输入正则 .*"errorType":\s*"Exception".* —— 这个规则会匹配你提供的Lambda错误输出(只要包含"errorType": "Exception"就会触发)。
    • Method response status:选择400(如果列表里没有400,先去「方法响应」标签页添加这个状态码)。

3. 配置友好的响应体(可选但推荐)

如果你想让API返回更直观的错误信息(比如Lambda的errorMessage),可以配置映射模板:

  • 在刚才添加的400集成响应下,找到「Mapping Templates」部分,点击「Add mapping template」,输入application/json。
  • 勾选「当没有模板匹配时通过」,然后编辑模板内容为:
{
  "error_message": "$context.error.messageString"
}

这个VTL模板会自动提取Lambda抛出的错误消息,作为API响应的内容返回给调用方。

4. 部署API生效

最后别忘了点击API Gateway顶部的「Deploy API」按钮,选择对应的部署阶段(比如prod),所有配置才会正式生效。

验证效果

当你的Lambda函数抛出Exception('failure')时,API Gateway会捕获到错误输出,匹配到我们设置的正则规则,然后返回400状态码,响应体就是我们配置的错误内容(如果设置了模板的话)。

如果后续有自定义异常类型,你还可以添加多个集成响应规则,分别匹配不同的errorType,返回对应的状态码。

内容的提问来源于stack exchange,提问作者kagarlickij

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:39:03