透過 CloudWatch Events 自動化 AWS Glue - AWS Glue

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

透過 CloudWatch Events 自動化 AWS Glue

您可以使用 Amazon CloudWatch Events 來自動化您的 AWS 服務,並自動回應系統事件,例如應用程式可用性問題或資源變更。來自 AWS 服務的事件會以近乎即時的方式交付至 CloudWatch Events。您可編寫簡單的規則,來指示您在意的事件,以及當事件符合規則時所要自動執行的動作。可以自動觸發的動作如下:

  • 叫用 AWS Lambda 函數

  • 調用 Amazon EC2 執行命令

  • 將事件轉傳至 Amazon Kinesis Data Streams

  • 啟用 AWS Step Functions 狀態機器

  • 通知 Amazon SNS 主題或 Amazon SQS 佇列

下列是 CloudWatch Events 與 AWS Glue 搭配使用的部分範例:

  • 在 ETL 任務成功時啟動 Lambda 函數

  • 在 ETL 任務失敗時通知 Amazon SNS 主題

下列 CloudWatch Events 由 AWS Glue 產生。

  • "detail-type":"Glue Job State Change" 的事件是針對SUCCEEDEDFAILEDTIMEOUTSTOPPED 產生。

  • "detail-type":"Glue Job Run Status" 的事件是針對 RUNNINGSTARTINGSTOPPING 任務執行產生 (在超過任務延遲通知閾值時)。您必須設定任務延遲通知閾值屬性才能接收這些事件。

    超過任務延遲通知閾值時,每個任務執行狀態只會產生一個事件。

  • "detail-type":"Glue Crawler State Change" 的事件是針對 StartedSucceededFailed 產生。

  • "detail-type":"Glue Data Catalog Database State Change" 的事件是針對 CreateDatabaseDeleteDatabaseCreateTableDeleteTableBatchDeleteTable 產生。例如,建立或刪除資料表時,便會將通知傳送到 CloudWatch Events。請注意,您無法撰寫會根據通知事件的順序或存在的程式,因為這些事件可能會被移出序列或遺漏。盡可能發出事件。在通知詳細資訊中:

    • typeOfChange 會包含 API 操作的名稱。

    • databaseName 會包含受影響資料庫的名稱。

    • changedTables 包含每個通知高達 100 個​受影響資料表的名稱。資料表名稱太長時,可能會建立多個通知。

  • "detail-type":"Glue Data Catalog Table State Change" 的事件是針對 UpdateTableCreatePartitionBatchCreatePartitionUpdatePartitionDeletePartitionBatchUpdatePartitionBatchDeletePartition 產生。例如,更新資料表或分割區時,便會將通知傳送到 CloudWatch Events。請注意,您無法撰寫會根據通知事件的順序或存在的程式,因為這些事件可能會被移出序列或遺漏。盡可能發出事件。在通知詳細資訊中:

    • typeOfChange 會包含 API 操作的名稱。

    • databaseName 包含內含受影響資源之資料庫的名稱​。

    • tableName 會包含受影響資料表的名稱。

    • changedPartitions 會在一個通知中指定高達 100 個受影響的分割區。​ 分割區名稱太長時,可能會建立多個通知。

      例如,如果有兩個分割區金鑰 (YearMonth),則 ​"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 事件