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

如何修改AWS API Gateway自定义授权拒绝响应的字段大小写?

解决AWS自定义授权器拒绝响应键名大写问题

当自定义授权Lambda返回拒绝策略时,API Gateway默认会返回键名为大写Message的响应,可通过以下几种应用内配置或代码修改实现键名转为小写message:

方案1:配置API Gateway网关响应映射模板

这是最直接的方式,无需修改Lambda代码,通过API Gateway的内置配置转换响应结构:

  1. 登录API Gateway控制台,进入目标API
  2. 切换至网关响应标签页
  3. 找到ACCESS_DENIED类型的响应,点击编辑
  4. 在映射模板区域,添加application/json类型的模板,内容如下:
{
  "message": "$context.error.messageString"
}
  1. 保存配置后重新部署API

此后,授权拒绝时API Gateway会自动生成键名为小写message的响应。

方案2:修改自定义授权Lambda的错误返回逻辑

调整授权Lambda的代码,不返回标准Deny策略,而是抛出自定义错误,再通过API Gateway映射转换响应:

  • 在Lambda代码中,当判定用户无权访问时,抛出包含错误信息的异常(以Python为例):
raise Exception("User is not authorized to access this resource with an explicit deny")
  • 进入API Gateway的目标方法配置,在集成响应中添加对500状态码的处理:
    • 将状态码映射为403
    • 添加application/json映射模板:
{
  "message": "$input.path('$.errorMessage')"
}
  • 在方法响应中添加403状态码的响应模型,确保结构符合要求

方案3:后端Lambda代理集成处理(若适用)

如果API采用Lambda代理集成,可在后端业务Lambda中捕获授权拒绝的错误信息,重新构造包含小写message键的响应返回给前端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:50:28