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

如何在AWS Step Functions的Pass任务中通过Result.fromObject传递前置resultPath

问题:Step Functions Pass任务无法引用前置任务输出值

尝试创建包含静态值与前置任务输出结果的对象时,得到的是字符串"$.skusLength"而非实际值,使用JsonPath.numberAt和JsonPath.stringAt也未成功。当前CDK代码如下:

this.setupIteration = new Pass(this, "Setup Iteration", {
  result: Result.fromObject({
    "count": "$.skusLength",
    "index": 0,
    "step": 1
  }),
  resultPath: "$.iterator",
});

解决方案

问题出在使用了Result.fromObject——这个方法用于定义静态JSON结果,其中的内容会被直接当作字面量输出,不会解析JsonPath表达式。

正确的做法是使用Pass任务的parameters属性,它支持通过JsonPath引用输入中的值,运行时会自动解析并替换为实际的前置任务输出:

import { JsonPath } from '@aws-cdk/aws-stepfunctions';

this.setupIteration = new Pass(this, "Setup Iteration", {
  parameters: {
    "count": JsonPath.numberAt("$.skusLength"),
    "index": 0,
    "step": 1
  },
  resultPath: "$.iterator",
});

相关CDK文档说明(翻译)

AWS CDK的Result类用于生成静态任务结果,这些值会直接作为任务输出返回,不会对输入数据进行任何引用或转换。如果需要基于输入数据构造输出对象,必须使用支持JsonPath解析的属性(如Pass任务的parameters),而非Result类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:55:42