AWS Step Functions Choice任务:访问Map输出validated字段及批量验证
问题分析与解决方案
错误原因
你的Map任务输出本身是一个数组,根路径$直接指向这个数组,而非包含result字段的对象。所以原路径$.result[0].validated会报错——根节点没有result属性。正确访问第一个元素的validated字段的路径应为:$[0].result.validated。
验证所有元素validated为true的方案
由于数组元素数量不确定,可使用AWS Step Functions内置的States.All操作符,在Choice任务中验证数组内所有元素的result.validated均为true。具体配置示例如下:
{ "Type": "Choice", "Choices": [ { "Variable": "$", "Operator": "States.All", "ValuePath": "$.result.validated", "BooleanEquals": true, "Next": "AllValidatedState" } ], "Default": "HasInvalidState" }
配置说明
Variable: 指定为根路径$,即Map任务输出的整个数组Operator: 使用States.All,表示检查数组中所有元素都满足后续条件ValuePath: 针对数组中的每个元素,提取result.validated字段的值BooleanEquals: 指定要匹配的值为trueNext/Default: 分别定义所有元素验证通过、存在无效元素时跳转的状态
内容的提问来源于stack exchange,提问作者kevin
相关产品推荐
相关产品推荐

