Функции шага AWS позволяют вызывать задания AWS Glue, как описано здесь: https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html
Я хочу запустить задание и (после сохранения результатов в S3) вернуть некоторые метаданные, созданные во время задания (например, строку). количество или число отфильтрованных строк) назад к потоку функции Step.
Мы можем передавать параметры из функций Step в задание Glue следующим образом:
"RunGlueJob": {
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "MyJobName",
"Arguments": {
"--param1.$": "$.param1",
"--param2.$": "$.param2"
}
},
"Next": "NextState"
},
Но как вернуть задание Glueвернуть обратно в рабочий процесс Step Function? Я попытался просто вернуть String из функции main () в задании (Scala) Glue, но он не отображается в JSON, возвращенном в поток пошаговой функции:
{
"AllocatedCapacity": 3,
"Arguments": {
"--param1.$": "$.param1",
"--param2.$": "$.param2"
},
"Attempt": 0,
"CompletedOn": 1570114802442,
"ExecutionTime": 39,
"GlueVersion": "0.9",
"Id": "jr_some_id",
"JobName": "MyJobName",
"JobRunState": "SUCCEEDED",
"LastModifiedOn": 1570114802442,
"LogGroupName": "/aws-glue/jobs",
"MaxCapacity": 3,
"PredecessorRuns": [],
"StartedOn": 1570114746138,
"Timeout": 2880
}
Я не могу найти документациюна этом, так что, возможно, это просто невозможно. Однако возврат значений из Lambdas работает просто отлично и обычно отображается в рабочем процессе функции Step.