本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 EventBridge 自動化 AWS Glue
您可以使用 Amazon EventBridge 自動化 AWS 服務,並自動回應系統事件 (例如應用程式可用性問題或資源變更)。AWS 服務的事件會以接近即時的方式傳送到 EventBridge。您可編寫簡單的規則,來指示您在意的事件,以及當事件符合規則時所要自動執行的動作。可以自動觸發的動作如下:
-
呼叫 AWS Lambda 函數
-
調用 Amazon EC2 執行命令
-
將事件轉傳至 Amazon Kinesis Data Streams
-
啟動 AWS Step Functions 狀態機器
-
通知 Amazon SNS 主題或 Amazon SQS 佇列
下列是將 EventBridge 與 AWS Glue 搭配使用的部分範例:
-
在 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任務執行產生 (在超過任務延遲通知閾值時)。您必須設定任務延遲通知閾值屬性才能接收這些事件。超過任務延遲通知閾值時,每個任務執行狀態只會產生一個事件。
-
"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包含調用失敗的例外狀況訊息。
當 (cron) 排程資料欄統計資料任務執行無法啟動時,會產生
“detail_type”:“Glue Scheduled Statistics Invocation Failure”的事件。在通知詳細資訊中: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會在一個通知中指定高達 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 事件。