首页 > 解决方案 > startjobrun 和 getjobrun- StepFunction with Glue 有什么区别?

问题描述

这是文档:https ://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html#aws-glue-api-jobs-runs-StartJobRun

我有一个 stepfunction,我想用它来触发现有的 Glue 作业并运行它,我应该使用startjobrunorgetjobrun吗?我的 Glue 作业是由 Terraform 创建的,我已经尝试过了(请参阅此问题:Glue job succeeded without StepFunction,但如果它由 StepFunction 启动则失败)我"Resource": "arn:aws:states:::glue:startJobRun.sync",在 stepfunction 中使用但胶水作业会失败。

我的问题是针对我的情况,因为我已经创建了胶水作业,我应该"Resource": "arn:aws:states:::glue:getJobRun.sync",在 step 函数中使用吗?如果是这样,我该如何通过runId?(https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-runs.html#aws-glue-api-jobs-runs-获取作业运行

RunId – Required: UTF-8 string, not less than 1 or more than 255 bytes long, matching the Single-line string pattern.
The ID of the job run.

标签: amazon-web-servicesaws-glueterraform-provider-awsaws-step-functions

解决方案


是的。我们需要使用资源arn:aws:states:::glue:startJobRun.syncstep function 任务开始粘合作业,我们不需要传递 runId。对于胶水start-job-run runId 仅用于重试。

 {
         "Type":"Task",
         "Resource":"arn:aws:states:::glue:startJobRun.sync",
         "Parameters":{
            "JobName":"my-glue-job",
            "Timeout":60,
            "NotificationProperty":{
               "NotifyDelayAfter":30
            }
         }
      }

get-job-run仅用于获取先前执行作业的元数据。


推荐阅读