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

我需要在不更改初始 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/

相关文章:

google-cloud-platform - 使用 Terraformer\Terraform 克

react-native - ScrollView : content image is cropp

javascript - 如何将 blob 转换为 xlsx 或 csv?

apache-spark - 如何将处理程序附加到 sparkUI

php - Symfony 中的 API 分页

flutter - 抽屉菜单 - 侧面的子菜单

java - 如何从 HttpServletResponse 获取错误消息

math - 使用固定大小位宽寄存器的偏移二进制算法是否有任何常规规则?

html - css 比例变换和滤镜模糊的问题

reactjs - React hook 等待上一个调用完成