CloudWatch Events を使用した AWS Glue の自動化
Amazon CloudWatch Events を使用して、AWS のサービスを自動化し、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに自動的に対応できます。AWS のサービスからのイベントは、ほぼリアルタイムに CloudWatch Events に送信されます。簡単なルールを記述して、注目するイベントと、イベントがルールに一致した場合に自動的に実行するアクションを指定できます。自動的にトリガーできるオペレーションには、以下が含まれます。
-
AWS Lambda 関数の呼び出し
-
Amazon EC2 Run Command の呼び出し
-
Amazon Kinesis Data Streams へのイベントの中継
-
AWS Step Functions ステートマシンのアクティブ化
-
Amazon SNS トピックまたは Amazon SQS キューの通知
AWS Glue で CloudWatch Events を使用する例をいくつか次に示します。
-
ETL ジョブが成功したときの Lambda 関数のアクティブ化
-
ETL ジョブが失敗したときの Amazon SNS トピックへの通知
次の CloudWatch Events は、AWS Glue によって生成されます。
-
"detail-type":"Glue Job State Change"
のイベントがSUCCEEDED
、FAILED
、TIMEOUT
、STOPPED
に対して生成されます。 -
ジョブ遅延通知のしきい値を超えると、
"detail-type":"Glue Job Run Status"
のイベントがRUNNING
、STARTING
、STOPPING
ジョブの実行に対して生成されます。これらのイベントを受信するには、ジョブ遅延通知のしきい値プロパティを設定する必要があります。ジョブ遅延通知のしきい値を超えると、ジョブの実行ステータスごとに 1 つだけイベントが生成さます。
-
"detail-type":"Glue Crawler State Change"
のイベントがStarted
、Succeeded
、Failed
に対して生成されます。 -
"detail-type":"Glue Data Catalog Database State Change"
のイベントが、CreateDatabase
、DeleteDatabase
、CreateTable
、DeleteTable
、およびBatchDeleteTable
に対して生成されます。例えば、テーブルが作成または削除されると、CloudWatch Events に通知が送信されます。通知イベントの順序や有無に依存するプログラムは作成できないことに注意してください。通知イベントは順番が違っていたり不足している可能性があります。イベントは、ベストエフォートベースで発生します。通知の詳細情報。typeOfChange
には、API オペレーションの名前が含まれます。databaseName
には影響を受けるデータベースの名前が含まれます。changedTables
には、通知ごとに最大 100 の影響を受けるテーブルの名前が含まれます。テーブル名が長いと、複数の通知が作成されることがあります。
-
"detail-type":"Glue Data Catalog Table State Change"
のイベントが、UpdateTable
、CreatePartition
、BatchCreatePartition
、UpdatePartition
、DeletePartition
、BatchUpdatePartition
、およびBatchDeletePartition
に対して生成されます。例えば、テーブルまたはパーティションが更新されると、CloudWatch Events に通知が送信されます。通知イベントの順序や有無に依存するプログラムは作成できないことに注意してください。通知イベントは順番が違っていたり不足している可能性があります。イベントは、ベストエフォートベースで発生します。通知の詳細情報。typeOfChange
には、API オペレーションの名前が含まれます。databaseName
には影響を受けるリソースを含むデータベースの名前が含まれます。tableName
には影響を受けるテーブルの名前が含まれます。changedPartitions
は 1 つの通知で影響を受けるパーティションを最大 100 まで指定します。パーティション名が長いと、複数の通知が作成されることがあります。たとえば、
Year
とMonth
の 2 つのパーティションキーがある場合、"2018,01", "2018,02"
は、パーティション"Year=2018" and "Month=01"
、およびパーティション"Year=2018" and "Month=02"
を変更します。{ "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Glue Data Catalog Table State Change", "source":"aws.glue", "account":"123456789012", "time":"2017-09-07T18:57:21Z", "region":"us-west-2", "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"], "detail":{ "changedPartitions": [ "2018,01", "2018,02" ], "databaseName": "default", "tableName": "foo", "typeOfChange": "BatchCreatePartition" } }
詳細については、「Amazon CloudWatch Events ユーザーガイド」を参照してください。AWS Glue 固有のイベントについては、「AWS Glue イベント」を参照してください。