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

AWS Step Functions CDK配置$$.Job.Id路径找不到报错排查

问题原因

这个报错是JSONPath取值路径和实际数据结构不匹配导致的:

  • 以$$.开头的路径是用来取Step Functions内置上下文对象的,从报错信息里打印的完整上下文结构可以看到,上下文对象顶层只有Execution、StateMachine、State三个属性,不存在Job字段,自然找不到$$.Job.Id对应的值。
  • 你通过POST请求传入的自定义job_id参数不属于上下文对象范畴,它存放在工作流的执行输入里。从报错打印的内容可以看到,你的API Gateway触发层对原始请求做了包装,把请求体放到了执行输入的data字段下。
修复方法

根据你实际要取的字段选择对应配置即可:

场景1:取POST请求传入的业务job_id

不要用上下文对象路径,直接从执行输入取值,修改payload配置:

tasks.LambdaInvoke(self, "my_step_function",
    lambda_function=my_lambda,
    output_path="$.Payload",
    payload=stepfunctions.TaskInput.from_object({
        "payload.$": "$",
        "job_id.$": "$.data.job_id"
    })
)

如果不想保留API Gateway包装的data层级,可以修改API Gateway集成Step Functions的请求映射模板,直接将原始请求体作为执行输入,此时取值路径改为$.job_id即可。

场景2:取Step Functions生成的执行唯一ID

如果你要的是工作流执行自动生成的ID(即报错中fd51a151-70d4-4d8a-b203-fe3ea5ce7269这类值),使用正确的上下文对象路径:

"job_id.$": "$$.Execution.Id"

排查这类路径问题最直接的方式就是看报错里打印的完整输入/上下文JSON结构,严格按照实际存在的层级写路径即可,Step Functions没有内置Job相关的上下文字段,不要和其他工作流引擎的字段规则混淆。

内容的提问来源于stack exchange,提问作者back-new

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:12:25