如何在我的 AWS Glue 工作變更狀態時收到 Amazon SNS 通知?

2 分的閱讀內容
0

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

簡短描述

若要在 AWS Glue 工作變更狀態時收到通知,請完成下列步驟:

  1. 建立 Amazon Simple Notification Service (Amazon SNS) 主題。SNS 主題會將訊息傳送到訂閱端點或用戶端。
  2. 對您要監控的 AWS Glue 工作狀態變更建立 Amazon EventBridge 事件規則。

解決方法

**注意:**當您的工作變更狀態時,AWS Glue 會產生事件。如需詳細資訊,請參閱 AWS Glue 工作執行狀態

建立和訂閱 Amazon SNS 主題

1.    開啟 Amazon SNS 主控台

2.    在導覽窗格中,選擇主題

3.    選擇建立主題

4.    為類型選擇標準

5.    輸入主題名稱顯示名稱欄位是選擇性的。

6.    選擇建立主題

7.    在導覽窗格中,選擇訂閱

8.    選擇建立訂閱

9.     對於詳細資訊,請填寫下列欄位:

        對於主題 ARN,選擇您建立的主題的 ARN。

        對於通訊協定,選擇電子郵件

        對於端點,輸入要向其傳送通知的電子郵件地址。

10.    選擇建立訂閱

在您收到的訂閱確認電子郵件中,選擇確認訂閱。記下您建立的 SNS 主題。建立 EventBridge 規則時,請使用此主題。

建立 EventBridge 事件規則

1.    開啟 EventBridge 主控台

2.    在導覽窗格中,選擇規則,然後選擇建立規則

3.    輸入規則的名稱。保留預設事件匯流排規則類型設定,然後選擇下一步

4.    對於建立方法,選擇自訂模式 (JSON 編輯器)

5.    在事件模式方塊中,輸入下列範例事件模式,以擷取 AWS Glue 狀態變更事件:

{  
    "detail-type": [  
        "Glue Job State Change",  
        "Glue Job Run Status"  
    ],  
    "source": [  
        "aws.glue"  
    ],  
    "detail": {  
        "state": [  
            "FAILED",  
            "SUCCEEDED",  
            "TIMEOUT",  
            "STOPPED",  
            "RUNNING",  
            "STARTING",  
            "STOPPING"  
        ]  
    }  
}

**提示:**如果您不想收到特定狀態變更的通知,請從事件模式中移除對應的參數,例如 RUNNING

6.    選擇下一步

7.    對於目標類型,選擇 AWS 服務

8.    對於選取目標,選擇 SNS 主題

9.    對於主題,選擇您建立的 SNS 主題的名稱。

10.    選擇下一步

11.    (選擇性) 為規則輸入標籤,然後選擇下一步

12.    選擇建立規則

如需詳細資訊,請參閱建立事件模式和使用 Amazon CloudWatch Events 自動化 AWS Glue

測試組態

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

**重要:**如果規則未執行,請確定事件模式正確。

範例

您可以擷取失敗的工作執行事件,並將事件傳送至 SNS 主題。以下是失敗的 Glue 工作的事件範例:

{  
    "version": "0",  
    "id": "abcdef01-1234-5678-9abc-def012345678",  
    "detail-type": "Glue Job State Change",  
    "source": "aws.glue",  
    "account": "123456789012",  
    "time": "2017-09-07T06:02:03Z",  
    "region": "us-west-2",  
    "resources": [],  
    "detail": {  
        "jobName": "MyJob",  
        "severity": "ERROR",  
        "state": "FAILED",  
        "jobRunId": "jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",  
        "message": "JobName:MyJob and JobRunId:jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef failed to run with exception Role arn:aws:iam::123456789012:role/Glue_Role should be given assume role permissions for Glue Service."  
    }  
}

若要為 AWS Glue 解析所有失敗的工作,請完成上述步驟。

相關資訊

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

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

AWS 服務的事件

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