【发布时间】:2020-05-05 02:31:30
【问题描述】:
我有一个 AWS Step Function,我想通过开始执行时包含的 JSON 输入向它传递一个值。 Step 函数启动 ETL 作业并通过调用执行所述任务的 Lambda 函数检查其状态。 StartGlueJob Lambda 函数通过 JobName JSON 输入启动。我想传入的值是名为“regionalCenters”的粘合作业的参数,在这种情况下,所需的值将是“LA”。
如下所示,我尝试使用 $.value 语法从 JSON 输入中传递,但这并没有按预期运行,我不知道为什么。
Lambda 代码片段:
let jobInfo = await glue.startJobRun({ JobName: jobName, Arguments: arguments }).promise();
JSON 输入
{
"value": "LA"
}
阶梯函数
{
"StartAt": "InitStartEtl",
"States": {
"InitStartEtl": {
"Type": "Pass",
"Result": {
"jobName": "name-of-my-etl-job",
"arguments": {"regionalCenters": "$.value"}
}
},
"StartEtl": {
"Type": "Task",
"Resource": "arn:aws:lambda:<redacted>",
"Next": "WaitForForEtlCheck"
},
"WaitForForEtlCheck": {
"Type": "Wait",
"Seconds": 10,
"Next": "GetEtlState"
},
"GetEtlState": {
"Type": "Task",
"Resource": "arn:aws:lambda:<redacted>",
"Next": "IsEtlFinished"
},
"IsEtlFinished": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.state",
"StringEquals": "READY",
"Next": "EtlDone"
}
],
"Default": "WaitForForEtlCheck"
},
"EtlDone": {
"Type": "Pass",
"End": true
}
}
}
【问题讨论】:
标签: aws-lambda aws-step-functions