AWS Step Function传递变量到Glue Job不生效问题如何解决?
问题根因
AWS Step Function 的 Parameters 字段有明确的语法规则:如果值需要从状态机上下文的JSON路径解析取值,对应的键必须以.$作为后缀。你当前的写法没有加这个后缀,Step Function会把$.iterator.index直接当作字符串常量传递给Glue Job,而非解析为实际的日期值,这就是报错的核心原因。
修正方案
你只需要修改ConvertToParquet步骤中Arguments的键名,添加.$后缀即可,修改后的对应步骤代码如下:
"ConvertToParquet": { "Comment": "Your application logic, to run a specific number of times", "Type": "Task", "Resource": "arn:aws:states:::glue:startJobRun.sync", "Parameters": { "JobName": "convert-to-parquet", "Arguments": { "--DATE_RANGE.$": "$.iterator.index" } }, "ResultPath": "$.glueRunResult", "Next": "Iterator" }
额外注意项
你原配置中ConvertToParquet的ResultPath设置为$.iterator.index,会导致Glue Job运行的返回结果直接覆盖迭代用的index值,引发后续迭代逻辑异常。建议将ResultPath修改为其他不冲突的路径(如上示例中的$.glueRunResult),如果不需要保留Glue的返回结果,也可以直接设置为"ResultPath": null。
内容的提问来源于stack exchange,提问作者UserX
相关产品推荐
相关产品推荐

