代码之家  ›  专栏  ›  技术社区  ›  Ash

步骤函数中的AWS粘合作业依赖项

  •  0
  • Ash  · 技术社区  · 6 年前

    我创建了两个粘合作业(GlueJob1、GlueJob2)。

    我希望创建一个依赖项,因为GlueJob2只应在GlueJob1完成后运行。

    为了协调这一点,我创建了一个具有以下定义的步骤函数:

     {
      "gluejob1": {
        "Type": "Task",
        "Resource": "gluejob1.Arn",
        "Comment": "Glue job1.",
        "Next": "gluejob2"
      },
    
      "gluejob2": {
        "Type": "Task",
        "Resource": "gluejob2.Arn",
        "Comment": "TGlue job2.",
        "Next": "Gluejob2 Finished Loading"
      },
      "Gluejob2 Finished Loading": {
        "Type": "Pass",
        "Result": "",
        "End": true
      }
    }
    

    当我执行这个步骤函数时,状态函数 在触发GlueJob1时称之为成功 然后继续触发GlueJob2。

    我想知道只有在GlueJob1完成后,是否有可能运行GlueJob2。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Yuriy Bondaruk    6 年前

    你可以 invoke Glue job from StepFunction synchronously 以便等待作业完成:

    {
      "StartAt": "gluejob1",
      "States": {
        "gluejob1": {
          "Type": "Task",
          "Resource": "arn:aws:states:::glue:startJobRun.sync",
          "Parameters": {
            "JobName.$": "ETLJobName1"
          },
          "Next": "gluejob2"
        },
        "gluejob2": {
          "Type": "Task",
          "Resource": "arn:aws:states:::glue:startJobRun.sync",
          "Parameters": {
            "JobName.$": "ETLJobName2"
          },
          "Next": "Gluejob2 Finished Loading"
        },
        "Gluejob2 Finished Loading": {
          "Type": "Pass",
          "Result": "",
          "End": true
        }
    }
    
        2
  •  0
  •   Sandeep Fatangare    6 年前

    为什么不在glue中使用触发器来处理依赖项?