【发布时间】:2021-09-08 19:41:54
【问题描述】:
我正在尝试将 AWS Step Function 变量传递给 Glue Job 参数,类似于: aws-passing-job-parameters-value-to-glue-job-from-step-function
但是,这对我不起作用。粘合作业错误消息表明它正在获取传递的变量名称 - 而不是变量的实际值。这是我的 Step Function 代码:
{
"Comment": "Converts CSV files to parquet for a date range.",
"StartAt": "ConfigureCount",
"States": {
"ConfigureCount": {
"Type": "Pass",
"Result": {
"start": 201601,
"end": 201602,
"index": 201601
},
"ResultPath": "$.iterator",
"Next": "Iterator"
},
"Iterator": {
"Type": "Task",
"Resource": "arn:aws:lambda:eu-west-1:123456789:function:date-iterator",
"ResultPath": "$.iterator",
"Next": "IsCountReached"
},
"IsCountReached": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.iterator.continue",
"BooleanEquals": true,
"Next": "ConvertToParquet"
}
],
"OutputPath": "$.iterator",
"Default": "Done"
},
"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": "$.iterator.index",
"Next": "Iterator"
},
"Done": {
"Type": "Pass",
"End": true
}
}
}
“迭代器”步骤调用一个名为“日期迭代器”的 Lambda,它返回类似于以下内容的 JSON:
{
"start": "201601",
"end": "201602",
"index": "201601"
}
这是基于这篇文章,所以我可以遍历值:Iterating a Loop Using Lambda
我的 Step Function 失败,说“$.iterator.index”不是有效日期。
如何传递这个值,而不是变量名?
【问题讨论】:
标签: aws-lambda aws-glue aws-step-functions