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

如何将Step Function结果传递给EventBridge Put Event

解决方案

要实现将$.metadata的内容传递给EventBridge,同时把相同数据传给下一个步骤,需调整EventBridgePutEvents任务的输入配置、事件详情映射及结果路径设置,确保输入原封不动向下传递:

修改后的代码

ingest_sfn["flatten_metadata"] = sfn.Pass(
    self,
    f"Flatten Metadata",
    input_path="$.metadata.result",
    result_path="$.metadata",
)

ingest_sfn["put_event"] = sfn_tasks.EventBridgePutEvents(
    self, 
    "Put Event",
    entries=[sfn_tasks.EventBridgePutEventsEntry(
        # 将当前步骤的输入(即$.metadata的内容)作为EventBridge事件的detail
        detail=sfn.TaskInput.from_json_path_at("$"),
        event_bus=event_bus_base,
        detail_type="MessageFromStepFunctions",
        source="step.function"
    )],
    # 指定步骤的输入为上一步处理后的metadata
    input_path="$.metadata",
    # 将任务执行结果存入不影响业务的字段,避免覆盖输入
    result_path="$.event_put_result",
    # 输出保持步骤的原始输入(即metadata),传递给下一个步骤
    output_path="$"
)

关键配置说明

  • input_path="$.metadata":限定Put Event步骤只接收上一步flatten_metadata处理后的$.metadata数据作为输入,确保传递给EventBridge的是目标内容。
  • detail=sfn.TaskInput.from_json_path_at("$"):把当前步骤的输入(也就是$.metadata的完整内容)直接映射为EventBridge事件的detail字段。
  • result_path="$.event_put_result":将Put Event任务的执行响应(比如事件ID、状态等)存入额外字段,不会覆盖原输入数据;若不需要保留任务结果,也可设为result_path="$.null"直接丢弃。
  • output_path="$":确保步骤输出就是原始输入的$.metadata数据,完全原样传递给下一个步骤。

如果希望整个状态机的全局输入保持不变(而非仅传递$.metadata给下一个步骤),可调整为如下配置:

ingest_sfn["put_event"] = sfn_tasks.EventBridgePutEvents(
    self, 
    "Put Event",
    entries=[sfn_tasks.EventBridgePutEventsEntry(
        # 从全局输入中提取$.metadata作为事件detail
        detail=sfn.TaskInput.from_json_path_at("$.metadata"),
        event_bus=event_bus_base,
        detail_type="MessageFromStepFunctions",
        source="step.function"
    )],
    # 输入使用整个全局数据
    input_path="$",
    # 丢弃任务执行结果,保持全局输入不变
    result_path="$.null",
    # 输出整个全局输入,传递给下一个步骤
    output_path="$"
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:50:36