我需要在不更改初始 InputPath 结构的情况下使用新属性扩展 Step Functions 状态的 InputPath。
例如,我的 InputPath 看起来像:
{
"key1": "value1",
"key2": "value2"
}
我需要在这里添加一对新的键/值并将其传递给 Lambda。因此,我想要的是:
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
但是我还没有找到实现它的方法。我能够做的是使用参数更改 InputPath 的结构:
"InputPath": "$",
"Parameters": {
"input.$": "$",
"newValue": "value3"
}
所以我得到具有以下结构的 JSON:
{
"input": {
"key1": "value1",
"key2": "value2"
},
"key3": "value3"
}
这不是什么大问题,但我想知道是否有办法保持 InputPath 的平面结构而不添加新属性(如我的示例中的“输入”)。
UPD:我知道它可以使用 Pass 状态来实现,但是到那时状态机会变得太大。
最佳答案
是的,可以展平结构。尝试以下
"InputPath": "$",
"Parameters": {
"key1.$": "$.key1",
"key2.$": "$.key2",
"key3": "value3"
}
请引用InputPaths and Parameters了解更多详情。
编辑
由于您想将新值传递给 Lambda 函数,我假设您的状态是 Task 类型。 Task state 提供对参数的支持。因此,您不需要通过状态即可实现同样的效果。
https://stackoverflow.com/questions/56668451/