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

AWS API Gateway更新Lambda授权器后仍调用旧授权器的解决方案咨询

解决AWS API Gateway授权器关联问题的步骤

我来帮你搞定这个问题——你需要精准调整API方法和授权器的关联关系,再通过部署让变更生效,就能实现GET /api/users用Admin Authorizer、PUT /api/users/{username}用User Authorizer的需求,同时保留两个授权器不删除。具体操作如下:

1. 修正API方法的授权器绑定

  • 登录AWS控制台,打开API Gateway服务,定位到你的目标API。
  • 左侧导航栏选择Resources,展开API资源树:
    • 先确认GET /api/users的授权器是Admin Authorizer(没问题就跳过)。
    • 找到PUT /api/users/{username}方法,点击进入详情页。
    • 在Method Execution页面的Settings标签下,找到Authorization选项,点击编辑按钮。
    • 从下拉菜单中选中User Authorizer,保存修改。

2. 重新部署API到对应阶段

API Gateway的配置变更必须部署到指定阶段才会生效,这是很容易被忽略的关键步骤:

  • 左侧导航栏选择Stages,找到你正在使用的部署阶段(比如prod或dev)。
  • 点击Deploy API按钮,选择对应的API和目标阶段,确认部署操作。

3. 额外排查(如果问题仍存在)

  • 检查阶段变量:如果你的API用阶段变量指定授权器,要确保变量值已经更新为User Authorizer的ID。
  • 验证授权器配置:确认User Authorizer的触发条件(比如Token来源、验证逻辑)正确,避免因授权器自身配置导致异常。
  • CLI快速修改(可选):如果你习惯用命令行,可执行以下命令更新方法授权器:
    aws apigateway update-method \
      --rest-api-id 你的API_ID \
      --resource-id PUT方法对应的资源ID \
      --http-method PUT \
      --patch-operations op=replace,path=/authorizationType,value=CUSTOM \
      op=replace,path=/authorizerId,value=User授权器的ID
    
    替换命令中的占位符为实际的ID值即可。

完成这些操作后,PUT /api/users/{username}就会使用User Authorizer,而Admin Authorizer会继续为GET /api/users提供服务,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Ashok Raj A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:27:39