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

AWS Step Functions如何将定义的参数传递至后续状态?

在AWS Step Functions中传递生成的文件路径至后续任务

问题背景

我的输入JSON包含"raw_filename": "myfile",第一步任务的Parameters配置如下:

"Parameters": {
  "file_a_path.$": "States.Format('s3:/mybucket/{}', $.raw_filename)",
  "file_b_path.$": "States.Format('s3:/mybucket/{}_firstprocess', $.raw_filename)"
}

这个任务会处理文件A生成文件B,现在需要在后续任务中处理文件B生成文件C,我想知道有没有办法直接把file_b_path作为输出传递到下一步?

我知道可以设置"ResultPath": null来传递原始输入,然后在后续步骤的Parameters里重新定义file_b_path,但直接传递这个参数会更健壮。

解决方案

当然可以直接传递file_b_path,核心是利用ResultPath和OutputPath的组合,或者直接在任务输出中保留需要的参数:

方法1:用ResultPath合并参数与原始输入

如果第一步任务本身会输出执行结果,同时你想保留file_b_path,可以这样配置:

"第一步任务": {
  "Type": "Task",
  "Resource": "arn:aws:lambda:xxx:xxx:function:你的处理函数",
  "Parameters": {
    "file_a_path.$": "States.Format('s3:/mybucket/{}', $.raw_filename)",
    "file_b_path.$": "States.Format('s3:/mybucket/{}_firstprocess', $.raw_filename)"
  },
  // 将Parameters中的file_b_path合并到原始输入结构中
  "ResultPath": "$.taskContext",
  "OutputPath": "$"
}

下一步的输入会包含原始raw_filename和新增的file_b_path,你也可以调整OutputPath只保留需要的内容,比如"OutputPath": "$.taskContext.file_b_path",直接只传递这个路径。

方法2:让任务直接返回file_b_path

如果你的处理函数(比如Lambda)可以直接返回file_b_path,可以简化配置:

"第一步任务": {
  "Type": "Task",
  "Resource": "arn:aws:lambda:xxx:xxx:function:你的处理函数",
  "Parameters": {
    "file_a_path.$": "States.Format('s3:/mybucket/{}', $.raw_filename)",
    "file_b_path.$": "States.Format('s3:/mybucket/{}_firstprocess', $.raw_filename)"
  },
  // 直接将任务输出作为下一步的输入(假设Lambda返回的就是file_b_path的值)
  "ResultPath": "$"
}

后续步骤可以直接通过$.file_b_path(若Lambda返回字符串则直接用$)引用该路径。

方法3:用Pass步骤单独传递参数

如果第一步任务的输出无需保留,只想传递file_b_path,可以添加一个Pass步骤:

"传递file_b_path": {
  "Type": "Pass",
  "Parameters": {
    "file_b_path.$": "$.file_b_path"
  },
  "ResultPath": "$"
}

将这个步骤放在第一步之后,后续任务就能直接使用$.file_b_path。

总结来说,最灵活的方式是通过ResultPath控制输出结构,确保file_b_path被包含在传递给下一步的输入中,避免重复计算路径,让流程更健壮。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 10:45:28