跳至內容

當 DataSync 任務執行成功或失敗時,如何接收通知?

3 分的閱讀內容
0

我想知道 AWS DataSync 任務執行何時成功或失敗。

解決方法

設定 Amazon Simple Notification Service (Amazon SNS) 和 Amazon EventBridge,以便在 DataSync 任務執行狀態變為成功錯誤時,傳送電子郵件通知給您。

**先決條件:**您必須建立 DataSync 任務

建立 Amazon SNS 主題,並透過電子郵件訂閱該主題

請完成下列步驟:

  1. 開啟 Amazon SNS console (Amazon SNS 主控台)。
  2. 在導覽窗格中,選擇 Topics (主題)。
  3. 選擇 Create topic (建立主題)。
  4. Name (名稱) 中,輸入此主題的名稱。
  5. 選擇 Create topic (建立主題)。
  6. 在您的主題頁面上,選擇 Subscriptions (訂閱) 索引標籤。
  7. 選擇 Create subscription (建立訂閱)。
  8. Create subscription (建立訂閱) 頁面上,執行下列動作:
    Protocol (協定) 中,選擇 Email (電子郵件)。
    Endpoint (端點) 中,輸入您想要接收通知的電子郵件地址。
  9. 選擇 Create subscription (建立訂閱)。
  10. 在您收到的訂閱確認訊息中,選擇 Confirm subscription (確認訂閱) 連結。

為 DataSync 建立 EventBridge 規則,並將 SNS 主題設定為目標

請完成下列步驟:

  1. 開啟 EventBridge console (EventBridge 主控台)。
  2. 在導覽窗格中,選擇 Rules (規則)。
  3. 選擇 Create rule (建立規則)。
  4. 輸入規則的名稱和說明。
  5. Build event pattern, choose (建立事件模式) 中,於 Events (事件) 區段下選擇 AWS events or EventBridge partner events (AWS 事件或 EventBridge 合作夥伴事件)。
  6. Event pattern (事件模式) 下,選擇 Use Pattern form (使用模式格式)。
  7. Event source (事件來源) 中,選擇 AWS services (AWS 服務)。
  8. AWS service (AWS 服務) 中,選擇 DataSync
  9. Event type (事件類型) 中,選擇 DataSync Task Execution State Change (DataSync 任務執行狀態變更)。
  10. Event pattern (事件模式) 下,輸入以下 JSON 以獲得處於成功錯誤狀態的所有任務執行通知:
{  
  "source": [  
    "aws.datasync"  
  ],  
  "detail-type": [  
    "DataSync Task Execution State Change"  
  ],  
  "detail": {  
    "State": [  
      "SUCCESS",  
      "ERROR"  
    ]  
  }  
}
  1. Select Targets (選取目標) 下,執行下列動作:
    Target (目標) 中,選擇 SNS topic (SNS 主題)。
    Topic (主題) 下,選取您建立的主題。
  2. 選擇 Create (建立)。

啟動 DataSync 任務來測試電子郵件通知

若要測試 DataSync 任務執行狀態的電子郵件通知,請先建立任務,然後啟動任務

啟動任務後,您會收到有關 DataSync 任務執行狀態的電子郵件通知。如果任務執行成功,您會收到類似以下內容的成功通知訊息:

{  
    "version": "0",  
    "id": "example0-c014-d9e9-d7ac-44f00d5d1200",  
    "detail-type": "DataSync Task Execution State Change",  
    "source": "aws.datasync",  
    "account": "111122223333",  
    "time": "2019-01-23T12:35:26Z",  
    "region": "us-west-2",  
    "resources": ["arn:aws:sync:us-west-2:9111122223333:task/task-example23d67d5be5/execution/exec-example316440271f"],  
    "detail": {  
        "State": "SUCCESS"  
    }  
}

僅接收一個 DataSync 任務的通知

若要只取得一個 DataSync 任務的通知,請使用 EventBridge 比較運算子,搜尋該任務 ARN 的部分相符項目。

例如,將任務的 ARN 指定為以下 JSON 中首碼參數的值:

{  
  "detail-type": ["DataSync Task Execution State Change"],  
  "source": ["aws.datasync"],  
  "resources": [{  
    "prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-"  
  }],  
  "detail": {  
    "State": ["SUCCESS", "ERROR"]  
  }  
}

接收多個 DataSync 任務的通知

使用首碼參數

若要取得多個任務的通知,您可以為每個任務新增首碼參數。例如,以下 JSON 會啟用兩個任務的通知:

{  
  "source": ["aws.datasync"],  
  "detail-type": ["DataSync Task Execution State Change"],  
  "resources": [{  
    "prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK1-ID/execution/exec-"  
  }, {  
    "prefix": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK2-ID/execution/exec-"  
  }],  
  "detail": {  
    "State": ["SUCCESS", "ERROR"]  
  }  
}

**注意:**將 REGION 替換為您的 AWS 區域,並將 ACCOUNT-ID 替換為您的 AWS 帳戶 ID。此外,將 TASK 1-IDTASK 2-ID 替換為您任務的 ID。

使用萬用字元參數

您也可以使用萬用字元參數來取得特定任務的通知。例如,以下 JSON 將啟動會啟用所有具有指定 ARN 首碼 (在 * 字元之前) 的任務通知:

{  
  "detail-type": ["DataSync Task Execution State Change"],  
  "source": ["aws.datasync"],  
  "resources": [{  
    "wildcard": "arn:aws:datasync:REGION:ACCOUNT-ID:task/TASK-ID/execution/exec-*"  
  }],  
  "detail": {  
    "State": ["SUCCESS", "ERROR"]  
  }  
}

**注意:**將 REGION 替換為您的地區,將 ACCOUNT-ID 替換為您的帳戶 ID,並將 TASK-ID 替換為您的任務 ID。

若要僅取得幾個任務的通知,請使用以下 JSON:

{  
  "detail-type": ["DataSync Task Execution State Change"],  
  "source": ["aws.datasync"],  
  "resources": [{  
    "wildcard": "*/TASK1-ID/execution/exec-*"  
  }, {  
    "wildcard": "*/TASK2-ID/execution/exec-*"  
  }],  
  "detail": {  
    "State": ["SUCCESS", "ERROR"]  
  }  
}

**注意:**將 TASK 1-IDTASK 2-ID 替換為您任務的 ID。

相關資訊

使用 Amazon EventBridge 監控事件

建立對 Amazon EventBridge 中事件反應的規則

AWS 官方已更新 5 個月前