是否可以向InputPath添加新的键/值?

时间:2019-06-19 13:09:14

标签: amazon-web-services aws-step-functions

我需要在不更改初始InputPath结构的情况下,使用新属性来扩展Step Functions状态的InputPath。

例如,我的InputPath如下:

{
    "key1": "value1",
    "key2": "value2"
}

我需要在此处添加一对新的键/值,并将其传递给Lambda。因此,我想拥有的是:

{
   "key1": "value1",
   "key2": "value2",
   "key3": "value3"
}

但是我还没有找到实现此方法的方法。我能做的就是使用Parameters更改InputPath的结构:

"InputPath": "$",
"Parameters": {
    "input.$": "$",
    "newValue": "value3"
}

所以我得到具有以下结构的JSON:

{
    "input": {
        "key1": "value1",
        "key2": "value2"
    },
    "key3": "value3"
}

这不是一个大问题,但是我想知道是否有一种方法可以保持InputPath的扁平结构并且不添加新属性(例如在我的示例中为“ input”)。

UPD:我知道可以使用Pass状态来实现它,但是状态机将变得过大。

1 个答案:

答案 0 :(得分:0)

是的,可以展平结构。尝试关注

"InputPath": "$",
"Parameters": {
    "key1.$": "$.key1",
    "key2.$": "$.key2",
    "key3": "value3"
}

有关更多详细信息,请参阅InputPaths and Parameters

修改

由于您要将新值传递给Lambda函数,因此我假设您的状态为 Task 类型。 Task状态提供对参数的支持。因此,您不需要通过状态即可达到相同的目的。