本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 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"
的事件是針對SUCCEEDED
、FAILED
、TIMEOUT
和STOPPED
產生。 -
"detail-type":"Glue Job Run Status"
的事件是針對RUNNING
、STARTING
和STOPPING
任務執行產生 (在超過任務延遲通知閾值時)。您必須設定任務延遲通知閾值屬性才能接收這些事件。超過任務延遲通知閾值時,每個任務執行狀態只會產生一個事件。
-
"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
會在一個通知中指定高達 100 個受影響的分割區。 分割區名稱太長時,可能會建立多個通知。例如,如果有兩個分割區金鑰 (
Year
和Month
),則 "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 事件。