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

API Gateway EventBridge-PutEvents集成:无需Lambda传递request.headers至Detail

无需Lambda,将API Gateway请求头传递至EventBridge Detail的方案

直接在RequestParameters的Detail字段中组合$request.headers和$request.body会触发错误,原因是该字段仅支持单个请求变量引用,无法直接拼接复杂JSON结构。可以通过**集成请求模板(RequestTemplates)**实现需求,具体配置如下:

调整CloudFormation集成配置

移除原RequestParameters中的Detail配置,添加RequestTemplates来构造包含请求头和请求体的自定义Detail内容:

Type: AWS::ApiGatewayV2::Integration
Properties:
  IntegrationType: AWS_PROXY
  IntegrationSubtype: EventBridge-PutEvents
  RequestParameters:
    Source: SOME_TEXT
    DetailType: SOME_TEXT
  RequestTemplates:
    application/json: |
      {
        "Detail": "{\"headers\": $util.escapeJavaScript($input.params().header), \"body\": $util.escapeJavaScript($input.json('$'))}",
        "Source": "SOME_TEXT",
        "DetailType": "SOME_TEXT"
      }

关键配置说明

  • $util.escapeJavaScript():用于转义JSON字符串中的特殊字符(如引号、换行),保证最终生成的Detail是合法的JSON格式
  • $input.params().header:获取API请求的所有请求头键值对
  • $input.json('$'):获取原始请求体内容
  • 构造的Detail值需要是JSON字符串格式,因此外层需用引号包裹转义后的内容

补充注意事项

如果你的API需要支持多种Content-Type,可在RequestTemplates中添加对应类型的模板,或使用$default作为通用匹配模板。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:23:27