AWS Step Functions 允许调用 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 工作流?我尝试从 (Scala) Glue 作业中的 main() 函数返回一个字符串,但它没有出现在返回到步骤函数流的 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 函数工作流中正常显示。
在这个阶段你不能从胶水工作中返回任何东西。根据定义,AWS 胶水有望处理大量数据,因此预计输出也将是大量数据。
您可以将结果写入 dynamodb 或 s3 或任何其他存储,并在 AWS 步骤函数的下一步中使用 lambda 访问它
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句