AWS CloudFormationでジョブ・トリガー組込済みのGlueワークフローを作成する
 
                                
                            はじめに
雑に調べるとcfnテンプレートのサンプルが見つからずかつできないっぽい情報が見つかる。 そうではなくて実際できるんだよって話。
どのようにcfnテンプレートを書けば良いのか
AWSワークショップ内のコード 「glue-workflow.yaml」を参考に書く。
注意事項
- ワークフローに組み込む最初のトリガーのTypeは「ON_DEMAND」か「SCHEDULED」でなければならない。
 (「CONDITIONAL」不可)
- ワークフローに組み込む2つ目以降のトリガーのTypeは「CONDITIONAL」でなければならない。
 (「ON_DEMAND」「SCHEDULED」不可)
- トリガーのTypeに「SCHEDULED」「CONDITIONAL」を選択した場合は、「StartOnCreation: True」がPropertiesに必要。(「ON_DEMAND」は不要)
 「StartOn~」が無い場合は無効化されたトリガーが作成され、有効化するまで実行されない。
- トリガーのType「CONDITIONAL」の場合、cron式の基準時間はUTC。
- トリガーのType「SCHEDULED」のサンプルコードは公式ドキュメント参照
- トリガーに複数のジョブ、クローラを実行させたい場合は、以下のようなコード。
    Properties:
      Actions:
        - JobName: 【実行ジョブ名1】
        - Jobname: 【実行ジョブ名2】- トリガーのタイプ「CONDITIONAL」で、
 複数のジョブを監視対象としたい場合は多分以下のようなコード。めんどくせえから試してねえ。
    Properties:
      Predicate:
        Conditions:
          - LogicalOperator: EQUALS
            JobName: 【監視ジョブ1】
            # STARTING | RUNNING | STOPPING | STOPPED | SUCCEEDED | FAILED | TIMEOUT
            State: SUCCEEDED
          - LogicalOperator: EQUALS
            JobName: 【監視ジョブ2】
            State: SUCCEEDED
        # AND(監視ジョブが全て条件を満たす) | ANY(監視ジョブのいずれかが条件を満たす)
        Logical: AND 終わりに
Glueワークフローは、ジョブ、クローラを単純なワークフローで実行する場合に向いている。
複雑なワークフローを作りたい場合はStep Functionが向いているらしい。詳しくは知らん。
以上。
Share
 
         
                