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