如何通过AWS API Gateway为转发请求添加自定义Header?
在AWS API Gateway中为转发请求添加固定Header的方法
完全可以实现,你之前可能没注意到集成请求里的「静态映射」选项,以下两种方案都能满足你的需求:
方案一:直接通过控制台配置静态Header(最简便)
这是最适配你当前场景的方式,不需要额外代码:
- 打开API Gateway控制台,找到目标API、对应资源和HTTP方法(比如GET/POST)
- 切换到「集成请求」标签页
- 滚动到「HTTP请求头」区域,点击「添加头」
- 输入外部服务要求的Header键名(比如
X-API-Key) - 在「映射来自」下拉框选择「静态」,然后在「值」输入框直接填写你的固定APIKey
- 保存配置后重新部署API到对应阶段,之后所有转发到外部服务的请求都会自动带上这个Header
方案二:用Lambda集成实现(适合动态场景)
如果后续需要动态获取密钥(比如定期轮换),可以用Lambda作为中间层:
- 编写Lambda函数,接收API Gateway的请求事件,在请求头中插入目标APIKey
- 用Lambda的HTTP客户端(比如Node.js的
axios、Python的requests)转发请求到外部服务 - 把外部服务的响应原样返回给API Gateway
- 在API Gateway中将该方法的集成类型设为「Lambda代理集成」,关联这个Lambda函数
注意事项
- 记得完成自定义授权器配置,确保只有授权用户能触发该API端点
- 静态配置的APIKey会存储在API Gateway配置中,要限制仅有权限的IAM用户能修改该API的配置
- 如果密钥需要轮换,方案二更灵活,可以把密钥存在SSM Parameter Store或Secrets Manager中,让Lambda动态拉取
内容的提问来源于stack exchange,提问作者Fizk
相关产品推荐
相关产品推荐

