如何将AWS Glue作业的输出返回给调用的Step Function工作流程?

问题描述 投票:0回答:1

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

我想运行作业并返回作业过程中产生的一些值(如行数)。

我们可以像这样将参数从Step函数传递到Glue作业:

              "RunGlueJob": {
                "Type": "Task",
                "Resource": "arn:aws:states:::glue:startJobRun.sync",
                "Parameters": {
                  "JobName": "MyJobName",
                  "Arguments": {
                    "--param1.$": "$.param1",
                    "--param2.$": "$.param2"
                  }
                },
                "Next": "NextState"
              },

但是,胶水作业如何将输出返回到“步进功能”工作流程?我尝试仅从(Scala)Glue作业内的main()函数返回一个String,但它没有显示在返回到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返回值可以正常工作,并且可以正常显示在Step函数工作流程中。

amazon-web-services aws-glue aws-step-functions
1个回答
0
投票

目前您无法从胶水作业中退回任何东西。根据定义,AWS胶料有望处理大量数据,因此预期输出也将是大量数据。

您可以将结果写入dynamodb或s3或任何其他存储,并在下一步的AWS步骤功能中使用lambda访问它

© www.soinside.com 2019 - 2024. All rights reserved.