amazon-web-services - 是否可以向 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 状态来实现,但是状态机将会变得太大。
解决方案
是的,可以使结构变平。尝试关注
"InputPath": "$",
"Parameters": {
"key1.$": "$.key1",
"key2.$": "$.key2",
"key3": "value3"
}
有关详细信息,请参阅InputPaths 和参数。
编辑
由于您想将新值传递给您的 Lambda 函数,我假设您的状态是Task类型。任务状态提供对参数的支持。因此,您不需要Pass状态来实现相同的目的。
推荐阅读
- ethereum - 如何转换字节 32 数组?
- javascript - sqlite - 一起从多个表中获取数据 - android 和 iOS
- flutter - Flutter:是否可以在后台(Android 和 iOS)每 5 分钟向服务器(位置数据)发送一次请求?
- haskell - 如何在 Haskell 中使用 let 声明函数(仅限单行操作)
- google-cloud-storage - 动态存储桶创建 gcp
- java - createNewFile() 不起作用并且图像未存储
- c# - 如何将存储在会话中的值转换为整数
- android - 如何通过单击搜索视图栏打开新活动?
- javascript - 如何修复按下按钮的颜色选择?
- css - vscode中预期的CSS错误规则或选择器