我在AWS Step Function中有一个Choice状态,该状态将比较Input中数组的长度,并决定进入下一个状态。
但是,length()要获取数组长度的函数返回了一个错误:
{
“ error”:“ 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"
}
]
},
Run Code Online (Sandbox Code Playgroud)
该状态与其他返回JSON的状态连接。JSON如下所示:
{
"Metadata": [
{
"foo": "name"
},
{
"Status": "COMPLETED"
},
{
"Items": []
}
]
}
Run Code Online (Sandbox Code Playgroud)
因此,我尝试获取Itemsin 的长度Metadata[2]并进行比较(如果该值大于0)。
我试图验证$.Metadata[2].Items.length()此网站中的JsonPath ,它返回0。
我不确定是否错过了任何事情。我在AWS Step Function的文档中或在jsonpath中使用函数的示例中找不到任何信息。
我将不胜感激。谢谢!