У меня есть шаговая функция AWS, в которую я хотел бы передать значение через вход JSON, включенный при запуске выполнения. Функция Step запускает задание ETL и проверяет его состояние с помощью вызова лямбда-функций, которые выполняют указанные задачи. Лямбда-функция StartGlueJob запускается с помощью ввода JSON JobName. Значение, которое я хотел бы передать, является аргументом для склеиваемого задания с именем 'RegionalCenters', где в этом случае желаемым значением будет 'LA'.
Я пытался, как показано ниже, использовать синтаксис $ .value для передачи из входных данных JSON, но он не работает должным образом, и я не уверен, почему.
Фрагмент лямбда-кода:
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
}
}
}