AWS::Glue::Trigger - AWS CloudFormation

AWS::Glue::Trigger

AWS::Glue::Trigger リソースは AWS Glue ジョブを実行するトリガーを指定します。詳細については、AWS Glue 開発者ガイドの「AWS Glue のジョブのトリガー」と「トリガー構造」を参照してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

{ "Type" : "AWS::Glue::Trigger", "Properties" : { "Actions" : [ Action, ... ], "Description" : String, "Name" : String, "Predicate" : Predicate, "Schedule" : String, "StartOnCreation" : Boolean, "Tags" : Json, "Type" : String, "WorkflowName" : String } }

YAML

Type: AWS::Glue::Trigger Properties: Actions: - Action Description: String Name: String Predicate: Predicate Schedule: String StartOnCreation: Boolean Tags: Json Type: String WorkflowName: String

プロパティ

Actions

このトリガーによって開始されるアクション。

必須: はい

タイプ: アクションのリスト

Update requires: No interruption

Description

このトリガーの説明。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

Name

トリガーの名前。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

Predicate

このトリガーの述語は、いつトリガーを起動するかを定義します。

必須: いいえ

タイプ: Predicate

Update requires: No interruption

Schedule

スケジュールを指定するために使用される cron 式。詳細については、AWS Glue 開発者ガイドの「ジョブとクローラの時間ベースのスケジュール」を参照してください。たとえば、毎日 12:15 UTC に何かを実行するには、cron(15 12 * * ? *) を指定します。

必須: いいえ

タイプ: 文字列

Update requires: No interruption

StartOnCreation

作成時に SCHEDULED および CONDITIONAL トリガーを起動するには、true に設定します。True は ON_DEMAND トリガーではサポートされません。

必須: いいえ

タイプ: ブール値

Update requires: No interruption

Tags

このトリガーで使用するタグ。

必須: いいえ

タイプ: Json

Update requires: No interruption

Type

これがトリガーのタイプです。

必須: はい

タイプ: 文字列

Update requires: No interruption

WorkflowName

トリガーに関連付けられているワークフローの名前。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

戻り値

参照番号

このリソースの論理 ID を組み込みの Ref 関数に渡すと、Ref は次を返します: : トリガー名。

For more information about using the Ref function, see Ref.

オンデマンドトリガー

次の例では、1 つのジョブをトリガーするオンデマンドトリガーを作成します。

JSON

{ "Resources": { "OnDemandJobTrigger": { "Type": "AWS::Glue::Trigger", "Properties": { "Type": "ON_DEMAND", "Description": "DESCRIPTION_ON_DEMAND", "Actions": [ { "JobName": "prod-job2" } ], "Name": "prod-trigger1-ondemand" } } } }

YAML

Resources: OnDemandJobTrigger: Type: AWS::Glue::Trigger Properties: Type: ON_DEMAND Description: DESCRIPTION_ON_DEMAND Actions: - JobName: prod-job2 Name: prod-trigger1-ondemand

スケジュールされたトリガー

次の例では、2 時間ごとに実行され、2 つのジョブをトリガーするスケジュールされたトリガーを作成します。prod-job3 のために引数を宣言することに注意してください。

JSON

{ "Resources": { "ScheduledJobTrigger": { "Type": "AWS::Glue::Trigger", "Properties": { "Type": "SCHEDULED", "Description": "DESCRIPTION_SCHEDULED", "Schedule": "cron(0 */2 * * ? *)", "Actions": [ { "JobName": "prod-job2" }, { "JobName": "prod-job3", "Arguments": { "--job-bookmark-option": "job-bookmark-enable" } } ], "Name": "prod-trigger1-scheduled" } } } }

YAML

Resources: ScheduledJobTrigger: Type: AWS::Glue::Trigger Properties: Type: SCHEDULED Description: DESCRIPTION_SCHEDULED Schedule: cron(0 */2 * * ? *) Actions: - JobName: prod-job2 - JobName: prod-job3 Arguments: '--job-bookmark-option': job-bookmark-enable Name: prod-trigger1-scheduled

条件付きのトリガー

次の例では、ジョブの実行が正常終了したことに基づき、ジョブを開始する条件付きトリガーを作成します。

JSON

{ "Description": "AWS Glue Trigger Test", "Resources": { "MyJobTriggerRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] } } ] } }, "MyJob": { "Type": "AWS::Glue::Job", "Properties": { "Name": "MyJobTriggerJob", "LogUri": "wikiData", "Role": { "Ref": "MyJobTriggerRole" }, "Command": { "Name": "glueetl", "ScriptLocation": "s3://testdata-bucket/s3-target/create-delete-job-xtf-ETL-s3-json-to-csv.py" }, "DefaultArguments": { "--job-bookmark-option": "job-bookmark-enable" }, "MaxRetries": 0 } }, "MyJobTrigger": { "Type": "AWS::Glue::Trigger", "Properties": { "Name": "MyJobTrigger", "Type": "CONDITIONAL", "Description": "Description for a conditional job trigger", "Actions": [ { "JobName": { "Ref": "MyJob" }, "Arguments": { "--job-bookmark-option": "job-bookmark-enable" } } ], "Predicate": { "Conditions": [ { "LogicalOperator": "EQUALS", "JobName": { "Ref": "MyJob" }, "State": "SUCCEEDED" } ] } } } } }

YAML

--- Description: "AWS Glue Trigger Test" Resources: MyJobTriggerRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "glue.amazonaws.com" Action: - "sts:AssumeRole" Path: "/" Policies: - PolicyName: "root" PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: "*" Resource: "*" MyJob: Type: AWS::Glue::Job Properties: Name: "MyJobTriggerJob" LogUri: "wikiData" Role: !Ref MyJobTriggerRole Command: Name: "glueetl" ScriptLocation: "s3://testdata-bucket/s3-target/create-delete-job-xtf-ETL-s3-json-to-csv.py" DefaultArguments: "--job-bookmark-option": "job-bookmark-enable" MaxRetries: 0 MyJobTrigger: Type: AWS::Glue::Trigger Properties: Name: "MyJobTrigger" Type: "CONDITIONAL" Description: "Description for a conditional job trigger" Actions: - JobName: !Ref MyJob Arguments: "--job-bookmark-option": "job-bookmark-enable" Predicate: Conditions: - LogicalOperator: EQUALS JobName: !Ref MyJob State: SUCCEEDED