當我的 AWS Glue 作業變更狀態時,如何接收 Amazon SNS 通知?

2 分的閱讀內容
0

我想在 AWS Glue 擷取、轉換和載入 (ETL) 作業成功、失敗、逾時或停止時收到通知。

簡短描述

建立並訂閱 Amazon Simple Notification Service (Amazon SNS) 主題。然後,為您要監控的每個狀態變更建立 Amazon EventBridge 事件規則。

**備註:**對於此問題,最佳實務是使用 Amazon EventBridge 而非 Amazon CloudWatch。

解決方案

建立和訂閱亞馬遜 SNS 主題

1.    開啟 Amazon SNS 主控台

2.    選取 Topics (主題),然後選取 Create topic (建立主題)。

3.    輸入 Topic name (主題名稱)。 Display name (顯示名稱) 欄位可選填。

4.    選取 Create topic (建立主題)。

5.    從導覽窗格中選取 Subscriptions (訂閱)。然後,選擇 Create subscription (建立訂閱)。

6.    在 Details (詳細資訊) 下,完成下列欄位:

        對於 Topic ARN (主題 ARN),選擇您所建立主題的 ARN。

        對於 Protocal (通訊協定),選擇 Email (電子郵件)。

        對於 Endpoint (端點),輸入您要傳送通知的目標電子郵件地址。

7.    選取 Create subscription (建立訂閱)。

8.    檢查您的電子郵件帳戶,並等待收到訂閱確認電子郵件訊息。當您收到訂閱時,請選取 Confirm subscription (確認訂閱) 連結。

建立 EventBridge 事件規則

1.    開啟 EventBridge 主控台

2.    在導覽窗格中,選取 Rules (規則),然後選擇 Create rule (建立規則)。

3.    輸入規則的名稱。保留其他欄位為預設選項,然後選取 Next (下一步)。

4.    向下滾動到 Creation method (建立方法) 區段,然後選擇 Custom pattern (JSON editor) (自訂模式 (JSON 編輯器))。

5.    在 Event pattern (事件模式) 方塊中,輸入類似下列內容的程式碼。將 job_name 取代為 AWS Glue ETL 作業的名稱。對於 state (狀態),請輸入您要收到通知的狀態 (SUCCEEDED、FAILED、TIMEOUT 或 STOPPED)。為您要監控的每個狀態變更建立個別的事件規則:

{
  "detail-type": "Glue Job State Change",
  "source": "aws.glue",
  "detail": {
    "jobName": "MyJob",
    "state": "SUCCEEDED"
  }
}

6.    選取 Next (下一步)。這會顯示 Select target(s) (選取目標) 頁面。

7.    在 Target types (目標類型) 中,選擇 AWS service ( AWS 服務)。然後,從下拉式清單中選擇 SNS topic (SNS 主題)。

8.    在 Topic (主題) 下拉式清單中,選擇您先前建立的 SNS 主題名稱。

9.    選取 Next (下一步)。這會帶您前往 Configure tags - optional (設定標籤 - 選用) 頁面。選取 Next (下一步),然後選取 Create rule (建立規則)。

若要測試事件規則和 SNS 主題,請執行 AWS Glue 作業。確認當作業變更為在事件規則中指定的狀態時,您會收到電子郵件通知。


相關資訊

當 AWS Glue 任務重試失敗時,如何使用 AWS Lambda 函數接收 SNS 警示?

如何在爬蟲程式執行完成時自動啟動 AWS Glue 任務?

使用 CloudWatch 事件自動化 AWS Glue

AWS Glue 事件

AWS 官方
AWS 官方已更新 4 個月前