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

Amazon web services 是否可以向InputPath添加新的键/值?,amazon-web-services,aws-step-functions,Amazon Web Services,Aws Step Functions,我需要在不改变初始InputPath结构的情况下,使用新属性扩展Step函数状态的InputPath 例如,我的输入路径如下所示: { "key1": "value1", "key2": "value2" } 我需要在这里添加一对新的键/值,并将其传递给Lambda。因此,我想要的是: { "key1": "value1", "key2": "value2", "key3": "value3" } 但是我还没有找到实现这个的方法。我能做的是使用参数更改Inp

我需要在不改变初始InputPath结构的情况下,使用新属性扩展Step函数状态的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的平面结构,而不添加新属性(如我的示例中的“input”)


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

是的,可以将结构扁平化。试着跟随

"InputPath": "$",
"Parameters": {
    "key1.$": "$.key1",
    "key2.$": "$.key2",
    "key3": "value3"
}
有关更多详细信息,请参阅

编辑


由于您希望将新值传递给Lambda函数,因此我假设您的状态为Task类型。state提供对参数的支持。因此,您不需要一个Pass状态来实现相同的功能。

如果我们不确切知道输入参数,我们只需要为这个json输入一个新的键,以便发送到下一个lambda,我们该怎么办?@ChinsKuriakose您可以将以前的输入存储在属性{“previous_input.$:“$”,“key3”:“value3}