【发布时间】:2021-04-22 21:25:29
【问题描述】:
我在 AWS Step Function 中有一个选择状态,它将比较输入中的数组长度并决定进入下一个状态。
但是,length() 函数在获取数组的长度时返回错误:
{
“错误”:“States.Runtime”,
"cause": "执行状态 'CheckItemsCountState' 时发生错误(在事件 id #18 处输入)。无效路径 '$.Metadata[2].Items.length()':选择状态的条件路径引用无效价值。”}
选择状态的定义如下:
"CheckItemsCountState":{
"Type": "Choice",
"InputPath": "$",
"OutputPath": "$",
"Default": "NoItemsState",
"Choices":[
{
"Variable": "$.Metadata[2].Items.length()",
"NumericGreaterThan": 0,
"Next": "ProcessState"
}
]
},
该状态已连接到返回 JSON 的其他状态。 JSON如下:
{
"Metadata": [
{
"foo": "name"
},
{
"Status": "COMPLETED"
},
{
"Items": []
}
]
}
所以我试图在Metadata[2] 中获取Items 的长度,并在值大于0时进行比较。
我已尝试验证此 website 中的 JsonPath $.Metadata[2].Items.length() 并返回 0。
我不确定我是否遗漏了什么。我在 AWS Step Function 的文档或在 jsonpath 中使用函数的示例中找不到任何信息。
如果有任何帮助,我将不胜感激。谢谢!
【问题讨论】:
-
只是为了正确理解问题,包含“MetaData”和“Items”的 JSON 是从 aws step 函数控制台复制的确切 json?
标签: node.js amazon-web-services aws-step-functions