问题描述
假设我有一个 AWS 步骤函数,它只是将输出从第一步传递到第二步。但是现在假设我需要为第二步添加一个额外的输入值。
如何设置第二步的参数以保留所有输入字段(不单独指定它们)并添加新的输入值?
我能得到的最接近的是像这样设置参数:
"Second Step": {
"Type": "Task","Resource": "arn:aws:lambda:blahblahblah","InputPath": "$","Parameters": {
"Input.$":"$","additionalValue": "ABC"
}
}
但这会导致将所有输入值推送到新的“输入”键下,我真的只希望它们位于字典的根目录中。我可以发誓,我曾经看到过某种神奇的表达方式,使这项工作达到了我想要的效果,但现在我找不到了。
AWS 现在有一个 simulator you can try this in。将 InputPath 设置为 $
,将 Parameters 设置为 {"Input.$":"$","additionalValue":"ABC"}
以查看这种情况的示例。
解决方法
您可以使用 ResultSelector
进行这种操作。但它只能应用于输出步骤。使用这种方法,您需要
- 使用
ResultSelector
更改上一步的输出 - 创建一个传递步骤,添加您想要的静态附加值