AWS API Gateway配置:为Lambda后端的所有响应添加自定义Header
给API Gateway+Lambda的响应统一添加自定义Header的几种方法
方法1:通过API Gateway集成响应配置(适合REST API)
- 登录API Gateway控制台,选中目标API,找到需要配置的资源和对应HTTP方法
- 切换到「集成响应」标签页,展开你需要配置的响应状态码(比如200 OK)
- 在「Header Mappings」区域点击「添加Header」,输入自定义Header的名称(例如
X-Custom-Header) - 在映射值输入框中:
- 填固定值时要加单引号,比如
'FixedCustomValue' - 要从Lambda返回结果取值的话,用
integration.response.body.xxx格式,比如Lambda返回{"customVal": "abc"},就填integration.response.body.customVal
- 填固定值时要加单引号,比如
- 保存配置后,记得部署你的API到对应阶段,配置才会生效
方法2:Lambda代理集成直接返回Header(适合动态场景)
如果你的API使用了Lambda代理集成,直接在Lambda的返回结果里包含headers字段即可,格式示例:
# Python示例 import json def lambda_handler(event, context): return { "statusCode": 200, "headers": { "X-Custom-Header": "DynamicValueFromLambda", "Content-Type": "application/json" }, "body": json.dumps({"message": "success"}) }
这种方式可以根据请求参数、业务逻辑动态生成Header值,无需在API Gateway额外配置
方法3:阶段变量+集成响应(多环境适配)
- 进入API的「阶段」设置页面,添加阶段变量(比如
CUSTOM_HEADER_VAL)并设置对应值 - 回到集成响应的Header映射值,用
${stageVariables.CUSTOM_HEADER_VAL}引用这个阶段变量 - 这种方式可以让不同阶段(测试/生产)使用不同的Header值,无需修改API核心配置
注意事项
- 如果是HTTP API而非REST API,配置路径为:HTTP控制台 -> 对应路由 -> 集成 -> 响应 -> 添加自定义Header,映射逻辑一致
- 自定义Header名称需符合HTTP规范,避免使用特殊字符
- 所有配置修改后必须部署API才会生效,控制台的测试工具可能不会完整触发Header映射逻辑,建议用Postman或curl调用实际端点验证
内容的提问来源于stack exchange,提问作者user7972
相关产品推荐
相关产品推荐

