【发布时间】:2022-06-16 11:13:52
【问题描述】:
正如 here 所记录的,AWS 状态机定义语法允许使用 $$.Map.Item.Value 在映射状态迭代内从更高范围访问属性:
{
"StartAt": "ExampleMapState",
"States": {
"ExampleMapState": {
"Type": "Map",
"Parameters": {
"ContextValue.$": "$$.Map.Item.Value"
},
"Iterator": {
"StartAt": "TestPass",
"States": {
"TestPass": {
"Type": "Pass",
"End": true
}
}
},
"End": true
}
}
}
但是,当使用 StepFunctionsLocal(Java 和 Docker 版本)运行时,此示例定义本身会引发 SCHEMA_VALIDATION_FAILED 错误:
SCHEMA_VALIDATION_FAILED: The value for the field 'ContextValue.$' must be a valid JSONPath or a valid intrinsic function call at /States/ExampleMapState/Parameters
是我遗漏了什么还是 StepFunctionsLocal 中的错误?
【问题讨论】:
-
这不是一个有效的 JSON。请验证您的 JSON 结构 HERE 。您需要正确映射它们。
-
@RanadipDutta,是什么让您认为它不是有效的 JSON?这与 AWS 文档中的示例完全相同:docs.aws.amazon.com/step-functions/latest/dg/… 在地图状态的上下文对象数据标题下。
-
如果您签入 json 验证器,我粗略注意到还有一个额外的数组索引,但可能是我错了。不过,不是来争辩什么的。请随时再次检查。
-
@RanadipDutta,如果 JSON 无效,StepFunctionsLocal 会引发 INVALID_JSON_DESCRIPTION 异常。这里的问题是别的:SCHEMA_VALIDATION_FAILED
标签: aws-step-functions aws-state-machine