

# EventBridge を使用した AWS Glue の自動化
<a name="automating-awsglue-with-cloudwatch-events"></a>

Amazon EventBridge を使用して AWS のサービスを自動化することで、アプリケーションの可用性の問題やリソースの変更などのシステムイベントに自動的に対応できます。AWS のサービスからのイベントは、ほぼリアルタイムに EventBridge に提供されます。簡単なルールを記述して、注目するイベントと、イベントがルールに一致した場合に自動的に実行するアクションを指定できます。自動的にトリガーできるオペレーションには、以下が含まれます。
+ AWS Lambda 関数の呼び出し
+ Amazon EC2 Run Command の呼び出し
+ Amazon Kinesis Data Streams へのイベントの中継
+ AWS Step Functions ステートマシンのアクティブ化
+ Amazon SNS トピックまたは Amazon SQS キューの通知

AWS Glue で EventBridge を使用する例をいくつか以下に示します。
+ ETL ジョブが成功したときの Lambda 関数のアクティブ化
+ ETL ジョブが失敗したときの Amazon SNS トピックへの通知

以下の EventBridge は、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 Scheduled Crawler Invocation Failure”` のイベントは、スケジュールされたクローラが起動に失敗すると生成されます。通知の詳細情報。
  + `customerId` はお客様のアカウント ID です。
  + `crawlerName` には、起動に失敗したクローラの名前が含まれています。
  + `errorMessage` には、呼び出し失敗の例外メッセージが含まれています。
+ `“detail_type”:“Glue Auto Statistics Invocation Failure“` のイベントは、自動管理列統計タスクの実行開始に失敗した場合に生成されます。通知の詳細情報。
  + `catalogId` には、カタログに関連付けられた ID が含まれています。
  + `databaseName` には影響を受けるデータベースの名前が含まれます。
  + `tableName` には影響を受けるテーブルの名前が含まれます。
  + `errorMessage` には、呼び出し失敗の例外メッセージが含まれています。
+ `“detail_type”:“Glue Scheduled Statistics Invocation Failure”` のイベントは、(cron) スケジュールされた列統計タスクの実行開始に失敗した場合に生成されます。通知の詳細情報。
  + `catalogId` には、カタログに関連付けられた ID が含まれています。
  + `databaseName` には影響を受けるデータベースの名前が含まれます。
  + `tableName` には影響を受けるテーブルの名前が含まれます。
  + `errorMessage` には、呼び出し失敗の例外メッセージが含まれています。
+ `“detail_type”:“Glue Statistics Task Started”` のイベントは、列統計タスクの実行が開始すると生成されます。
+ `“detail_type”:“Glue Statistics Task Succeeded”` のイベントは、列統計タスクの実行が成功したときに生成されます。
+ `“detail_type”:“Glue Statistics Task Failed”` のイベントは、列統計タスクの実行が失敗したときに生成されます。
+ `"detail-type":"Glue Data Catalog Database State Change"` のイベントが、`CreateDatabase`、`DeleteDatabase`、 `CreateTable`、`DeleteTable`、および `BatchDeleteTable` に対して生成されます。たとえば、テーブルが作成または削除されると、EventBridge に通知が送信されます。通知イベントの順序や有無に依存するプログラムは作成できないことに注意してください。通知イベントは順番が違っていたり不足している可能性があります。イベントはベストエフォートベースで発生します。通知の詳細情報。
  + `typeOfChange` には、API オペレーションの名前が含まれます。
  + `databaseName` には影響を受けるデータベースの名前が含まれます。
  + `changedTables` には、通知ごとに最大 100 の影響を受けるテーブルの名前が含まれます。テーブル名が長いと、複数の通知が作成されることがあります。
+ `"detail-type":"Glue Data Catalog Table State Change"` のイベントが、`UpdateTable`、`CreatePartition`、`BatchCreatePartition`、`UpdatePartition`、`DeletePartition`、`BatchUpdatePartition`、および `BatchDeletePartition` に対して生成されます。たとえば、テーブルまたはパーティションが更新されると、EventBridge に通知が送信されます。通知イベントの順序や有無に依存するプログラムは作成できないことに注意してください。通知イベントは順番が違っていたり不足している可能性があります。イベントはベストエフォートベースで発生します。通知の詳細情報。
  + `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 ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/)」を参照してください。AWS Glue 固有のイベントについては、「[AWS Glue イベント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#glue-event-types)」を参照してください。