如何将AWS Glue作业的输出返回到调用步骤函数工作流? [英] How to return output from AWS Glue jobs back to the calling Step Function workflow?

查看:15
本文介绍了如何将AWS Glue作业的输出返回到调用步骤函数工作流?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

AWS步骤函数允许调用AWS Glue作业,如下所述: https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html

我要运行该作业,并(在将结果保存到S3之后)将作业期间生成的某些元数据(如行数或筛选的行数)返回到步骤函数流。

我们可以将参数从步骤函数传递到Glue作业,如下所示:

              "RunGlueJob": {
                "Type": "Task",
                "Resource": "arn:aws:states:::glue:startJobRun.sync",
                "Parameters": {
                  "JobName": "MyJobName",
                  "Arguments": {
                    "--param1.$": "$.param1",
                    "--param2.$": "$.param2"
                  }
                },
                "Next": "NextState"
              },
但是,Glue作业如何将输出返回到步骤函数工作流?我尝试仅从(Scala)Glue作业内的main()函数返回一个字符串,但它没有显示在返回到Step函数流的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返回值工作得很好,并且在步骤函数工作流中正常显示。

推荐答案

在此阶段不能从GLUE作业返回任何内容。根据定义,AWS GLue预计将处理海量数据,因此预计输出也将是海量数据。

您可以将结果写入DynamoDB或S3或任何其他存储,并在AWS步骤函数的下一步使用lambda访问它

这篇关于如何将AWS Glue作业的输出返回到调用步骤函数工作流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆