Я создал 3 задания Glue, которые имеют один из ключей / значений параметров задания, например: runid id
Если я выполняю задание Glue с использованием AWS CLI следующим образом, он работает нормально: aws glue start-job-run --jobname $ job --arguments = '- runid = "Runid_10"'
Эти 3 задания Glue находятся внутри одной функции шага и конечного автомата. Определение:
{
"Comment":"Sample Step Function",
"StartAt":"First Glue Job",
"States": {
"First Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Firstjob"
},
"Next": "Second Glue Job"
},
"Second Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Secondjob"
},
"Next": "Third Glue Job"
},
"Third Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Thirdjob"
},
"End": true
}
}
}
Если я пытаюсь выполнить этот конечный автомат с параметром Input, значение этого параметра не передается Gluejob. Нужно ли изменить определение задания конечного автомата, чтобы передать значение входного параметра в задание Glue, которое прошло как часть запуска конечного автомата. Пожалуйста, объясните мне, как это сделать.
aws пошаговые функции start-execute --state-machine-arn arn: aws: состояния: us-east-1: 123456789012: stateMachine: HelloWorld --input "{runid": "Runid_10"}
Конечный автомат успешно выполняется, но значение Runid не передается параметрам Gluejob.
Пожалуйста, дайте мне знать, как передать значение параметров задания Glue, которое находится внутри Определение конечного автомата.
Я использую параметр Arguments следующим образом:
{
"Comment":"Sample Step Function",
"StartAt":"First Glue Job",
"States": {
"First Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Firstjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"Next": "Second Glue Job"
},
"Second Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Secondjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"Next": "Third Glue Job"
},
"Third Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Thirdjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"End": true
}
}
}
Передача ввода JSON {"--runid": "runid_10"} в Input-факультативном окно во время выполнения конечного автомата "start execute".
Обратите внимание: runid_n, где n - целое число и изменится.
Я добавлю значение runid_10 к выходному файлу в задании Glue и выведу файл похож на GlueJob-Firstjob_output_runid_10.csv