當 DataSync 任務執行成功或失敗時,如何接收通知?
我想知道 AWS DataSync 任務執行何時成功或失敗。
解決方法
設定 Amazon Simple Notification Service (Amazon SNS) 和 Amazon EventBridge,以便在 DataSync 任務執行狀態變為成功或錯誤時,傳送電子郵件通知給您。
**先決條件:**您必須建立 DataSync 任務。
建立 Amazon SNS 主題,並透過電子郵件訂閱該主題
請完成下列步驟:
- 開啟 Amazon SNS console (Amazon SNS 主控台)。
- 在導覽窗格中,選擇 Topics (主題)。
- 選擇 Create topic (建立主題)。
- 在 Name (名稱) 中,輸入此主題的名稱。
- 選擇 Create topic (建立主題)。
- 在您的主題頁面上,選擇 Subscriptions (訂閱) 索引標籤。
- 選擇 Create subscription (建立訂閱)。
- 在 Create subscription (建立訂閱) 頁面上,執行下列動作:
在 Protocol (協定) 中,選擇 Email (電子郵件)。
在 Endpoint (端點) 中,輸入您想要接收通知的電子郵件地址。 - 選擇 Create subscription (建立訂閱)。
- 在您收到的訂閱確認訊息中,選擇 Confirm subscription (確認訂閱) 連結。
為 DataSync 建立 EventBridge 規則,並將 SNS 主題設定為目標
請完成下列步驟:
- 開啟 EventBridge console (EventBridge 主控台)。
- 在導覽窗格中,選擇 Rules (規則)。
- 選擇 Create rule (建立規則)。
- 輸入規則的名稱和說明。
- 在 Build event pattern, choose (建立事件模式) 中,於 Events (事件) 區段下選擇 AWS events or EventBridge partner events (AWS 事件或 EventBridge 合作夥伴事件)。
- 在 Event pattern (事件模式) 下,選擇 Use Pattern form (使用模式格式)。
- 在 Event source (事件來源) 中,選擇 AWS services (AWS 服務)。
- 在 AWS service (AWS 服務) 中,選擇 DataSync。
- 在 Event type (事件類型) 中,選擇 DataSync Task Execution State Change (DataSync 任務執行狀態變更)。
- 在 Event pattern (事件模式) 下,輸入以下 JSON 以獲得處於成功或錯誤狀態的所有任務執行通知:
{ "source": [ "aws.datasync" ], "detail-type": [ "DataSync Task Execution State Change" ], "detail": { "State": [ "SUCCESS", "ERROR" ] } }
- 在 Select Targets (選取目標) 下,執行下列動作:
在 Target (目標) 中,選擇 SNS topic (SNS 主題)。
在 Topic (主題) 下,選取您建立的主題。 - 選擇 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-ID 和 TASK 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-ID 和 TASK 2-ID 替換為您任務的 ID。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 1 年前
- 已提問 5 個月前
AWS 官方已更新 1 年前