

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 還原測試驗證
<a name="restore-testing-validation"></a>

您可以選擇建立在還原測試任務完成時執行的事件驅動驗證。

首先，使用 Amazon EventBridge 支援的任何目標建立驗證工作流程，例如 AWS Lambda。其次，新增 EventBridge 規則，以接聽達到 狀態的還原任務`COMPLETED`。第三，建立還原測試計劃 （或讓現有的還原測試計劃如期執行）。最後，在還原測試完成後，監控驗證工作流程的日誌，以確保其如預期般執行 （一旦驗證執行，驗證狀態會顯示在[AWS Backup 主控台](https://console.aws.amazon.com/backup)中）。

1. 

**設定驗證工作流程**

   您可以使用 Lambda 或 EventBridge 支援的任何其他目標來設定驗證工作流程。例如，如果您正在驗證包含 Amazon EC2 執行個體的還原測試，則可以包含 ping 運作狀態檢查端點的程式碼。

   您可以使用事件中的詳細資訊來判斷要驗證哪些資源 （哪些資源）。

   您可以使用 [Lambda 層](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)來使用最新的 SDK （因為`PutRestoreValidationResult`無法透過 Lambda 開發套件使用）。

   以下是範例：

   ```
   import { Backup } from "@aws-sdk/client-backup";
   
   export const handler = async (event) => {
     console.log("Handling event: ", event);
   
     const restoreTestingPlanArn = event.detail.restoreTestingPlanArn;
     const resourceType = event.detail.resourceType;
     const createdResourceArn = event.detail.createdResourceArn;
   
     // TODO: Validate the resource
     
     const backup = new Backup();
     const response = await backup.putRestoreValidationResult({
       RestoreJobId: event.detail.restoreJobId,
       ValidationStatus: "SUCCESSFUL", // TODO
       ValidationStatusMessage: "" // TODO
     });
     
     console.log("PutRestoreValidationResult: ", response);
     console.log("Finished");
   };
   ```

1. 

**新增 EventBridge 規則**

   [建立 EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html#eb-gs-create-rule)來接聽還原任務[`COMPLETED`事件](https://docs.aws.amazon.com/aws-backup/latest/devguide/eventbridge.html#monitoring-events-in-eventbridge)。

   或者，您可以依資源類型或還原測試計畫 ARN 來篩選事件。將此規則的目標設定為叫用您在步驟 1 中定義的驗證工作流程。請見此處範例：

   ```
   {
     "source":[
       "aws.backup"
     ],
     "detail-type":[
       "Restore Job State Change"
     ],
     "detail":{
       "resourceType":[
         "..."
       ],
       "restoreTestingPlanArn":[
         "..."
       ],
       "status":[
         "COMPLETED"
       ]
     }
   }
   ```

1. 

**讓還原測試計劃執行並完成**

   還原測試計劃會根據您設定的排程執行。

   如果您還沒有[還原測試計畫，請參閱建立](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-create)還原測試計畫；如果您想要變更設定[，請參閱更新還原測試計畫](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-update)。

1. 

**監控結果**

   還原測試計劃如期執行後，您可以檢查驗證工作流程的日誌，以確保其正確執行。

   您可以呼叫 API `PutRestoreValidationResult` 來發佈結果，然後可在[AWS Backup 主控台](https://console.aws.amazon.com/backup)中透過描述和列出還原任務的 AWS Backup API 呼叫來檢視結果，例如 `DescribeRestoreJob`或 `ListRestoreJob`。

   設定驗證狀態後，就無法變更。