首页 > 解决方案 > 是否可以向 InputPath 添加新的键/值?

问题描述

我需要使用新属性扩展 Step Functions 状态的 InputPath,而不更改初始 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 状态来实现,但是状态机将会变得太大。

标签: amazon-web-servicesaws-step-functions

解决方案


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

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

有关详细信息,请参阅InputPaths 和参数。

编辑

由于您想将新值传递给您的 Lambda 函数,我假设您的状态是Task类型。任务状态提供对参数的支持。因此,您不需要Pass状态来实现相同的目的。


推荐阅读