

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 还原测试
<a name="restore-testing"></a>

*恢复测试*是提供的一项功能 AWS Backup，它可以自动定期评估恢复的可行性，并能够监控恢复作业的持续时间。

**Topics**
+ [概述](#restore-testing-overview)
+ [还原测试与还原过程的比较](#restore-testing-compare)
+ [还原测试管理](#restore-testing-management)
+ [创建还原测试计划](#restore-testing-create)
+ [更新还原测试计划](#restore-testing-update)
+ [查看现有的还原测试计划](#restore-testing-view)
+ [查看还原测试作业](#restore-testing-jobs)
+ [删除还原测试计划](#restore-testing-delete)
+ [审核还原测试](#restore-testing-audit)
+ [还原测试配额和参数](#restore-testing-quotas)
+ [还原测试失败故障排除](#restore-testing-troubleshooting)
+ [还原测试推断出的元数据](restore-testing-inferred-metadata.md)
+ [还原测试验证](restore-testing-validation.md)

## 概述
<a name="restore-testing-overview"></a>

首先，创建还原测试计划，在其中提供计划的名称、还原测试的频率和目标开始时间。然后，分配要包含在计划中的资源。然后，您可以选择在测试中包括特定或随机的恢复点。 AWS Backup backup 可以智能地[推断成功还原任务所需的元数据](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)。

当计划中的预定时间到来时， AWS Backup 会根据您的计划启动恢复作业，并监控完成恢复所需的时间。

在还原测试计划完成运行后，您可以使用结果来证明是否符合组织或监管要求，例如，成功完成还原测试方案或还原作业的完成时间。

或者，您可以使用[还原测试验证](restore-testing-validation.md)来确认还原测试结果。

在可选的验证完成或验证窗口关闭后，将 AWS Backup 删除与还原测试相关的资源，并且这些资源将根据服务进行删除 SLAs。

在测试过程结束时，您可以查看测试的结果和完成时间。

## 还原测试与还原过程的比较
<a name="restore-testing-compare"></a>

还原测试以与按需还原相同的方式运行还原作业，并使用与按需还原相同的恢复点（备份）。对于通过恢复测试启动`StartRestoreJob`的每项作业，你将看到调用 CloudTrail （如果选择加入）

但是，计划还原测试的操作和按需还原操作之间有一些区别：


|  | 还原测试 | Restore | 
| --- | --- | --- | 
| **Account** | 推荐的最佳做法是指定一个用于还原测试的账户 | 您可以从账户还原资源 | 
| **AWS Backup Audit Manager** | 可以启用控制功能以确认还原测试是否达到指定的还原目标 |  | 
| **节奏** | 作为计划的一部分定期实施。 | 按需 | 
| **资源** | 您可以为测试计划分配的资源类型包括：Aurora、Amazon DocumentDB、亚马逊 DynamoDB、亚马逊 EBS、亚马逊 EC2、亚马逊 EFS、亚马逊（Lustre、ONTAP、OpenZFS、Windows）、 FSx 亚马逊 Neptune、亚马逊 RDS 和亚马逊 S3。 | 所有资源均可还原。 | 
| **结果** | 还原测试作业完成后，将在[还原测试验证](restore-testing-validation.md)时段结束后删除还原的资源。 | 还原作业完成后，资源的还原版本将保留。 | 
| **标签** | 对于在还原时支持标签的资源类型，测试功能会在还原时应用标签。 | 对于支持的资源，标签是可选的。 | 

## 还原测试管理
<a name="restore-testing-management"></a>

您可以在 [AWS Backup 控制台](https://console.aws.amazon.com/backup/)中创建、查看、更新或删除还原测试计划。

您可以使用 [AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/index.html#cli-aws-backup) 以编程方式执行还原测试计划的操作。每个 CLI 都特定于其来源的 AWS 服务。命令应前缀 `aws backup`。

### 数据删除
<a name="restore-testing-data-deletion"></a>

恢复测试完成后， AWS Backup 开始删除测试中涉及的资源。此删除操作不会即时完成。每种资源都有一种底层配置，用于确定这些资源的存储方式和生命周期过程。例如，如果 Amazon S3 存储桶是还原测试的一部分，[则会将生命周期规则添加到存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html)。执行规则和完全删除存储桶及其对象最多可能需要几天时间，但对于这些资源，只会在生命周期规则启动日之前（默认情况下为 1 天）收费。删除速度将取决于资源类型。

作为还原测试计划一部分的资源包含一个名为 `awsbackup-restore-test` 的标签。如果用户删除了此标签，则 AWS Backup 无法在测试期结束时删除该资源，用户必须手动将其删除。

要检查未按预期删除资源的原因，可以在控制台中搜索失败的作业，或者使用命令行界面调用 API 请求 `DescribeRestoreJob` 来检索删除状态消息。

备份计划（非还原测试计划）会忽略通过还原测试创建的资源（带有标签 `awsbackup-restore-test` 或名称以 `awsbackup-restore-test` 开头的资源）。

### 成本控制
<a name="restore-testing-cost-control"></a>

对于还原测试，按每次还原测试收费。根据您的还原测试计划中包含的资源，作为计划一部分的还原作业也可能产生费用。有关详细信息，请参阅 [AWS Backup 定价](https://aws.amazon.com/backup/pricing/)。

首次设置还原测试计划时，您可能会发现包括最少数量的资源类型和受保护资源会很有用，这样可以熟悉相关的功能、流程和平均成本。您可以在创建计划后对其进行更新，以添加更多资源类型和受保护的资源。

## 创建还原测试计划
<a name="restore-testing-create"></a>

还原测试计划分为两个部分：创建计划和分配资源。

使用控制台时，这些部分是按顺序进行的。在第一部分中，您将要设置名称、频率和开始时间。在第二部分中，您将要为测试计划分配资源。

使用 AWS CLI 和 API 时，请先使用[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html)。收到成功响应且已创建计划后，请针对要包含在计划中的每种资源类型使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html)。

当您创建还原测试计划时，我们会为您创建服务相关角色。有关更多信息，请参阅 [使用角色进行还原测试](using-service-linked-roles-AWSServiceRoleForBackupRestoreTesting.md)。

------
#### [ Console ]

**第 I 部分：使用控制台创建还原测试计划**

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在左侧导航窗格中，找到**还原测试**并将其选中。

1. 选择**创建还原测试计划**。

1. **一般性问题**

   1. **名称：**键入新还原测试计划的名称。名称一经创建便无法更改。名称只能包含字母数字字符和下划线。

   1. **测试频率：**选择还原测试的运行频率。

   1. **开始时间：**设置您希望开始测试的时间（以小时和分钟为单位）。您还可以设置本地时区以运行还原测试计划。

   1. **开始时间：**此值（以小时为单位）是指定开始恢复测试的时间段。 AWS Backup 尽最大努力在一定时间内开始所有指定的恢复作业，并在此时间段内随机安排开始时间。

1. **恢复点选择：**在这里，您可以设置源保管库、恢复点范围以及对要在计划中包含的恢复点（备份）的选择标准。

   1. **源保管库：**选择是包含所有可用的保管库，还是仅包含特定保管库，以帮助筛选您的计划中可以包含哪些恢复点。如果您选择**特定保管库**，请从下拉菜单中选择要包含的保管库。

   1. **符合条件的恢复点：**指定将从中选择恢复点的时间范围。您可以选择 1 到 365 天、1 到 52 周、1 到 12 个月或 1 年。

   1. **选择标准：**指定恢复点的日期范围后，您可以选择是将最新的恢复点还是随机选择的恢复点包含在计划中。您可能希望随机选择一个来以更规则的频率衡量恢复点的总体运行状况，以防需要还原到旧版本。

   1. **Point-in-time 恢复点：**如果您的计划包括具有连续备份 (point-in-time-restore/PITR) 点的资源，则可以选中此复选框，让您的测试计划包括连续备份作为符合条件的恢复点（请参阅[按资源类型划分的功能可用性，哪些资源](backup-feature-availability.md#features-by-resource)类型具有此功能）。

1. *（可选）***已添加到还原测试计划的标签：**您最多可以选择在还原测试计划中添加 50 个标签。每个标签必须单独添加。要添加新标签，请选择**添加新标签**。

**第 II 部分：使用控制台为计划分配资源**

在本节中，您可以选择已备份的资源以包含在还原测试计划中。您将选择资源分配的名称，选择用于还原测试的角色，并设置清理前的保留期。然后，您将要选择资源类型，选择范围，并有选择地使用标签来细化选择。
**提示**  
要返回到要向其中添加资源的还原测试计划，您可以转到 [AWS Backup 控制台](https://console.aws.amazon.com/backup)，选择**还原测试**，然后找到您的首选测试计划并将其选中。

1. **一般性问题**

   1. **资源分配名称：**使用一串字母数字字符和下划线输入此资源分配的名称，不要含空格。

   1. **还原 IAM 角色：**测试必须使用您指定的 Identity and Access Management（IAM）角色。您可以选择 AWS Backup 默认角色或其他角色。如果在您完成此过程时 AWS Backup 默认值尚不存在，则 AWS Backup 将使用必要的权限自动为您创建默认值。您为还原测试选择的 IAM 角色必须包含在 [https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#aws-managed-policies](https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#aws-managed-policies) 中找到的权限。

   1. **清理前的保留期：**在还原测试期间，会临时还原备份数据。默认情况下，将在测试完成后删除这些数据。如果您希望在还原时运行验证，则可以选择延迟删除这些数据。

      如果您计划运行验证，请选择**保留特定的小时数**，然后输入一个介于 1 到 168 小时（含）之间的值。请注意，验证可以通过编程方式运行，但不能从 AWS Backup 控制台运行。

1. **受保护的资源：**

   1. **选择资源类型：**选择要包含在资源测试计划中的资源类型以及这些类型的备份的范围。每个计划可以包含多种资源类型，但必须将每种类型的资源单独分配给计划。

   1. **资源选择范围：**选择类型后，选择是要包括该类型的所有可用受保护资源，还是只想包括特定的受保护资源。

   1. *（可选）***使用标签优化资源选择：**如果您的备份具有标签，则可以按标签筛选以**选择特定的受保护资源**。输入标签键、包含或不包含此键的条件以及该键的值。然后，选择**添加标签**按钮。

      通过检查包含受保护资源的备份保管库中最新恢复点上的标签来评估受保护资源上的标签。

1. **还原参数：**某些资源需要指定参数以便为执行还原作业做好准备。在大多数情况下， AWS Backup 将根据存储的备份推断出值。

   在大多数情况下，建议保留这些参数；但是，您可以通过从下拉菜单中选择不同的选项来更改这些值。更改值可能最优的示例包括覆盖加密密钥、无法推断数据的 Amazon FSx 设置以及子网的创建。

   例如，如果 RDS 数据库是您分配给还原测试计划的资源类型之一，则可用区、数据库名称、数据库实例类和 VPC 安全组等参数将显示并带有推断出的值，您可以根据情况对其进行更改。

------
#### [ AWS CLI ]

CLI 命令 `CreateRestoreTestingPlan` 用于制定还原测试计划。

测试计划必须包含：
+ `RestoreTestingPlan`，它必须包含一个唯一的 `RestoreTestingPlanName`
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpression](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpression) cron 表达式
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html) 

  尽管命名类似，但这与 `RestoreTestingSelection` **不**一样。

  [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingRecoveryPointSelection.html) 有五个参数（三个必需参数和两个可选参数）。您指定的值决定了要在还原测试中包括的恢复点。您必须使用 `Algorithm` 指明是想要 `SelectionWindowDays` 内的最新恢复点，还是想要一个随机恢复点，并且您必须通过 `IncludeVaults` 指明可以从哪些保管库中选择恢复点。

一个选择可以有一个或多个受保护的资源 ARNs ，也可以有一个或多个条件，但不能同时具有两个条件。

您也可以添加：
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpressionTimeZone](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_RestoreTestingPlanForCreate.html#Backup-Type-RestoreTestingPlanForCreate-ScheduleExpressionTimeZone)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#Backup-CreateRestoreTestingPlan-request-Tags](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#Backup-CreateRestoreTestingPlan-request-Tags)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax)
+ [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_CreateRestoreTestingPlan.html#API_CreateRestoreTestingPlan_RequestSyntax)

使用 CLI 命令 [`create-restore-testing-plan`。](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-plan.html)

成功创建计划后，您需要使用 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/create-restore-testing-selection.html) 为其分配资源。

它包括 `RestoreTestingSelectionName`、`ProtectedResourceType` 和以下项之一：

**注意**  
**RestoreTestingSelectionName 命名要求：**  
长度必须为 1-256 个字符
可以包含字母（a-z，A-Z）、数字（0-9）、连字符（-）和下划线（\$1）
必须以字母或数字开头
不得以连字符或下划线结尾
在还原测试计划中必须是唯一的
+ `ProtectedResourceArns`
+ `ProtectedResourceConditions`

每种受保护的资源类型可以具有一个单一值。还原测试选择可以包括带通配符值（“\$1”）的 `ProtectedResourceArns` 以及 `ProtectedResourceConditions`。或者，您最多可以在其中包含 30 个特定的受保护资源 ARNs `ProtectedResourceArns`。

------

**恢复测试频率**

AWS Backup 在 00:00 到 23:59 之间评估 cron 表达式。如果您创建了 “每 12 小时” 的恢复测试计划，但提供的开始时间晚于 11:59，则该计划每天只运行一次。

**恢复点确定**

每次运行测试计划（根据您指定的频率和开始时间）时，还原测试都会为所选的每个受保护资源还原一个符合条件的恢复点。如果某个资源的恢复点不符合恢复点选择标准，该资源将不包括在测试中。

测试选择中受保护资源的恢复点如果满足指定时间范围标准，并在还原测试计划中包含了保管库，则符合条件。

如果资源测试选择包括资源类型，并且满足以下任一条件，则会选择受保护的资源：
+ 在该选择中指定资源 ARN；或者，
+ 该选择的标签条件与资源最新恢复点的标签相匹配

## 更新还原测试计划
<a name="restore-testing-update"></a>

您可以通过控制台或 AWS CLI更新部分还原测试计划以及其中的资源选项。

------
#### [ Console ]

**在控制台中更新还原测试计划和选项**

在控制台中查看还原测试计划详细信息页面时，可以编辑（更新）计划的许多设置。要做到这一点，

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在左侧导航窗格中，找到**还原测试**并将其选中。

1. 选择**编辑**按钮。

1. 调整频率、开始时间，以及所选开始时间后的测试开始时间范围。

1. 保存更改。

------
#### [ AWS CLI ]

**通过更新恢复测试计划和选择 AWS CLI**

请求[UpdateRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRestoreTestingPlan.html)和[UpdateRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_UpdateRestoreTestingSelection.html)可用于向指定计划或选择发送部分更新。名称无法更改，但您可以更新其他参数。在每个请求中仅包含您想要更改的参数。

在发送更新请求之前，请使用[GetRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRestoreTestingPlan.html)和[GetRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_GetRestoreTestingSelection.html)来确定您的请求是 RestoreTestingSelection包含特定内容 ARNs 还是使用通配符和条件。

如果您的恢复测试选择已指定 ARNs （而不是通配符），并且您希望将其更改为带条件的通配符，则更新请求必须同时包含 ARN 通配符和条件。一个选区可以有受保护的资源， ARNs 也可以使用带条件的通配符，但不能两者兼而有之。
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/updated-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/updated-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/update-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/update-restore-testing-selection.html)

------

## 查看现有的还原测试计划
<a name="restore-testing-view"></a>



------
#### [ Console ]

**在控制台中查看有关现有还原测试计划和已分配资源的详细信息**

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 从左侧导航窗格中，选择**还原测试**。显示屏中显示您的还原测试计划。默认情况下，会在最后一次运行时之前显示计划。

1. 从计划中选择链接以查看其详细信息，包括计划的摘要、名称、频率、开始时间和开始时间范围值。

您还可以查看此计划中的受保护资源、此计划中包含的最近 30 天的还原测试作业，以及您可以创建的要作为此测试计划一部分的任何标签。

------
#### [ AWS CLI ]



**使用命令行获取有关现有还原测试计划和测试选项的详细信息**
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-selections.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-selections.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-testing-plan.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/get-restore-testing-selection.html)

------

## 查看还原测试作业
<a name="restore-testing-jobs"></a>

------
#### [ Console ]

**查看控制台中的现有还原测试作业**

还原测试作业包含在“还原作业”页面上。

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 导航至**作业**页面。

   或者，您可以选择**还原测试**，然后选择还原测试计划以查看其详细信息以及与该计划关联的作业。

1. 选择**还原作业**选项卡。

   在此页面上，您可以查看还原作业的状态、还原时间、还原类型、资源 ID、资源类型、作业所属的还原测试计划、创建时间和恢复点 ID。

   还原测试计划中包含的作业的还原类型为**测试**。

还原测试作业具有以下几个状态类别：
+ 需要注意的**状态**类型带有下划线；将鼠标悬停在状态上方可查看其他详细信息（如果有）。
+ 如果已对测试启动[还原测试验证](restore-testing-validation.md)（在控制台中不可用），则会显示**验证状态**。
+ 删除状态记录了还原测试生成的数据的状态。可能的删除状态有三种：**成功**、**正在删除**和**失败**。

  如果删除还原测试作业失败，则需要手动删除资源，因为还原测试流程无法自动完成该删除操作。通常，如果从资源中删除标签 `awsbackup-restore-test`，则会导致删除失败。

------
#### [ AWS CLI ]

**在命令行中查看现有还原测试作业**
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-jobs-by-protected-resource.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/list-restore-jobs-by-protected-resource.html)

------

## 删除还原测试计划
<a name="restore-testing-delete"></a>



------
#### [ Console ]

**在控制台中删除还原测试计划**

1. 转至 [查看现有的还原测试计划](#restore-testing-view) 查看您当前的还原测试计划。

1. 在还原测试计划详细信息页面上，通过选择**删除**来删除计划。

1. 选择删除后，将出现一个弹出式确认屏幕，以确保您要删除计划。在此屏幕上，您的特定还原测试计划的名称将以粗体显示。要继续，请键入测试计划的确切名称（区分大小写），其中可包括任何下划线、破折号和句点。

   如果无法选择**删除还原测试计划**选项，请重新输入名称，直到它与显示的名称相匹配。一旦它完全匹配，用于删除还原测试计划的选项将变为可选状态。

------
#### [ AWS CLI ]

**通过命令行删除还原测试计划**

CLI 命令[DeleteRestoreTestingSelection](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_DeleteRestoreTestingSelection.html)可用于删除恢复测试选项。在请求中包含 `RestoreTestingPlanName` 和 `RestoreTestingSelectionName`。

必须先删除与测试计划关联的所有测试选项，然后才能删除测试计划。删除所有测试选择后，您可以使用 API 请求[DeleteRestoreTestingPlan](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_DeleteRestoreTestingPlan.html)删除恢复测试计划。您需要包括 `RestoreTestingPlanName`。
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-selection.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-selection.html)
+ [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-plan.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/backup/delete-restore-testing-plan.html)

------

## 审核还原测试
<a name="restore-testing-audit"></a>

恢复与 Audit m AWS Backup anager 的测试集成，以帮助您评估恢复的资源是否在目标还原时间内完成。

有关更多信息，请参阅 [AWS Backup Audit Manager 控制和修复](https://docs.aws.amazon.com/aws-backup/latest/devguide/controls-and-remediation.html)中的[资源还原时间满足目标](https://docs.aws.amazon.com/aws-backup/latest/devguide/controls-and-remediation.html#restore-time-meets-target-control)控制。

## 还原测试配额和参数
<a name="restore-testing-quotas"></a>
+ 100 个还原测试计划
+ 可向每个还原测试计划中添加 50 个标签
+ 每个计划 30 个选项
+  ARNs 每个选择 30 个受保护的资源 
+ 每个选项 30 个受保护的资源条件（包括 `StringEquals` 和 `StringNotEquals` 中的条件） 
+ 每个选项 30 个保管库选择器
+ 最大选择时段天数：365 天 
+ 开始时段小时数：最短：1 小时；最长：168 小时（7 天） 
+ 计划名称的最大长度：50 个字符 
+ 选项名称的最大长度：50 个字符

有关限制的更多信息，可通过 [AWS Backup 配额](aws-backup-limits.md)进行查看。

## 还原测试失败故障排除
<a name="restore-testing-troubleshooting"></a>

如果您的还原测试作业的还原状态为 `Failed`，则以下原因可帮助您确定原因和补救措施。

[可以在 AWS Backup 控制台的任务状态详细信息页面中查看](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing.html#restore-testing-jobs)错误消息，也可以使用 CLI 命令`list-restore-jobs-by-protected-resource`或来查看`list-restore-jobs`。

1. ***错误**：`No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.`*

   **解决方案 1：**更新您的还原测试选择并[覆盖](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)参数 `SubnetId`。 AWS Backup 控制台将此参数显示为 “子网”。

   **解决方案 2：**重新创建[默认 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-vpc)。

   **受影响的资源类型：**Amazon EC2

   

1. ***错误**：`No subnets found for the default VPC [vpc]. Please specify a subnet.`*

   **解决方案 1：**更新您的还原测试选择并[覆盖](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html) `SubnetId` 还原参数。 AWS Backup 控制台将此参数显示为 “子网”。

   **解决方案 2：**在默认 VPC 中[创建默认子网](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet)。

   **受影响的资源类型：**Amazon EC2

   

1. ***错误**：`No default subnet detected in VPC. Please contact AWS 支持 to recreate default Subnets.`*

   **解决方案 1：**更新您的还原测试选择并[覆盖](https://docs.aws.amazon.com/aws-backup/latest/devguide/restore-testing-inferred-metadata.html) `DBSubnetGroupName` 还原参数。 AWS Backup 控制台将此参数显示为“子网组”。

   **解决方案 2：**在默认 VPC 中[创建默认子网](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#create-default-subnet)。

   **受影响的资源类型：**Amazon Aurora、Amazon DocumentDB、Amazon RDS、Neptune

   

1. ***错误：**`IAM Role cannot be assumed by AWS Backup`。*

   **解决方案：**还原角色必须由担任。 AWS Backup要么在 IAM 中更新角色的信任策略以允许其由 `"backup.amazonaws.com"` 代入，要么更新您的还原测试选择以使用可由 AWS Backup代入的角色。

   **受影响的资源类型：**全部

   

1. ***错误：**`Access denied to KMS key.` 或 `The specified AWS KMS key ARN does not exist, is not enabled or you do not have permissions to access it.`*

   **解决方案：**验证以下内容：

   1. 还原角色可以访问用于加密备份的 AWS KMS 密钥，以及用于加密已还原资源的 KMS 密钥（如果适用）。

   1. 上述 KMS 密钥的资源策略允许还原角色访问它们。

   如果尚未满足上述条件，请配置还原角色和资源策略以获得适当的访问权限。然后，再次运行还原测试作业。

   **受影响的资源类型：**全部

   

1. ***错误：**`User ARN is not authorized to perform action on resource because no identity based policy allows the action.` 或 `Access denied performing s3:CreateBucket on awsbackup-restore-test-xxxxxx`。*

   **解决方案：**还原角色没有足够的权限。在 IAM 中更新还原角色的权限。

   **受影响的资源类型：**全部

   

1. ***错误：**`User ARN is not authorized to perform action on resource because no resource-based policy allows the action.` 或 `User ARN is not authorized to perform action on resource with an explicit deny in a resource based policy.`*

   **解决方案：**还原角色对消息中指定的资源没有足够的访问权限。更新所述资源的资源政策。

   **受影响的资源类型：**全部

   

# 还原测试推断出的元数据
<a name="restore-testing-inferred-metadata"></a>

还原恢复点需要还原元数据。为了执行还原测试， AWS Backup 会自动推断可能有助于实现成功还原的元数据。该命令`get-restore-testing-inferred-metadata`可用于预览 AWS Backup 将推断出的内容。该命令`get-restore-job-metadata`返回由 AWS Backup推断出的元数据集。请注意，对于某些资源类型 (Amazon FSx) AWS Backup ，无法推断出完整的元数据集。

*推断出的还原元数据*是在还原测试过程中确定的。您可以通过在 `RestoreTestingSelection` 的正文中添加参数 `RestoreMetadataOverrides` 来覆盖某些还原元数据键。某些元数据覆盖在 AWS Backup 控制台中不可用。

每个支持的资源都具有推断出的还原元数据键和值，以及可覆盖的还原元数据键。只有`RestoreMetadataOverrides`键值对或标*required for successful restore*有标记的嵌套键值对才需要包含；其他是可选的。请注意，键值不区分大小写。

**重要**  
AWS Backup 可以推断资源应恢复到默认设置，例如将 Amazon EC2 实例或 Amazon RDS 集群恢复到默认 VPC。但是，如果不存在默认值，例如默认 VPC 或子网已被删除且未输入任何元数据覆盖，则还原将不会成功。


| 资源类型 | 推断出的还原元数据键和值 | 可覆盖的元数据 | 
| --- | --- | --- | 
| **DynamoDB** |  `deletionProtection`，其中值设置为 `false` `encryptionType` 设置为 `Default` `targetTableName`，其中值设置为随机值（从 `awsbackup-restore-test-` 开始）  |  `encryptionType` `kmsMasterKeyArn`  | 
| **Amazon EBS** |  `availabilityZone`，其值设置为随机可用区 `encrypted`，其值设置为 `true`  |  `availabilityZone` `iops` `kmsKeyId` `throughput` `volumesize` `volumetype`  | 
| **Amazon EC2** |  `disableApiTermination` 值设置为 `false` `instanceType` 值设置为正在还原的恢复点的实例类型 `requiredImdsV2` 值设置为 `true`  |  `iamInstanceProfileName`（空值或 `UseBackedUpValue`） `instanceType` `requireImdsV2` `securityGroupIds` `subnetId`  | 
| **Amazon EFS** |  `encrypted` 值设置为 `true` `file-system-id` 值设置为正在还原的恢复点的文件系统 ID `kmsKeyId value` 设置为 `alias/aws/elasticfilesystem` `newFileSystem` 值设置为 `true` `performanceMode` 值设置为 `generalPurpose`  |  `kmsKeyId` `performanceMode`  | 
| **亚马逊 f FSx or Lustre** |  `lustreConfiguration` 具有嵌套键。一个嵌套键是 `automaticBackupRetentionDays`，其值设置为 `0`  |  `kmsKeyId` `lustreConfiguration` 具有嵌套键 `logConfiguration` `securityGroupIds` `subnetIds`, *required for successful restore*  | 
| ** FSx 适用于 NetApp ONTAP 的 Amazon** |  `name` 设置为随机值（从 `awsbackup_restore_test_` 开始） `ontapConfiguration` 具有嵌套键，其中包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `ontapConfiguration` 具有特定的可覆盖嵌套键，其中包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  | 
| ** FSx 适用于 OpenZFS 的亚马逊** |  `openZfzConfiguration`，具有嵌套键，其中包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `kmsKeyId` `openZfsConfiguration` 具有特定的可覆盖嵌套键，其中包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html) `securityGroupIds` `subnetIds`  | 
| ** FSx 适用于 Windows 文件服务器的亚马逊** |  `windowsConfiguration`，具有嵌套键，其中包括： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  |  `kmsKeyId` `securityGroupIds` `subnetIds` *required for successful restore* `windowsConfiguration`，带有特定的可覆盖嵌套键 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/aws-backup/latest/devguide/restore-testing-inferred-metadata.html)  | 
| **Amazon RDS、Aurora、Amazon DocumentDB、Amazon Neptune 集群** |  `availabilityZones`，其值设置为列有多达三个随机可用区的列表 `dbClusterIdentifier`，从 `awsbackup-restore-test` 开始的随机值 `engine`，其值设置为正在还原的恢复点的引擎  |  `availabilityZones` `databaseName` `dbClusterParameterGroupName` `dbSubnetGroupName` `enableCloudwatchLogsExports` `enableIamDatabaseAuthentication` `engine` `engineMode` `engineVersion` `kmskeyId` `port` `optionGroupName` `scalingConfiguration` `vpcSecurityGroupIds`  | 
| **Amazon RDS 实例** |  `dbInstanceIdentifier`，从 `awsbackup-restore-test-` 开始的随机值 `deletionProtection`，其值设置为 `false` `multiAz`，其值设置为 `false` `publiclyAccessible`，其值设置为 false  |  `allocatedStorage` `availabilityZones` `dbInstanceClass` `dbName` `dbParameterGroupName` `dbSubnetGroupName` `domain` `domainIamRoleName` `enableCloudwatchLogsExports` `enableIamDatabaseAuthentication` `iops` `licensemodel` `multiAz` `optionGroupName` `port` `processorFeatures` `publiclyAccessible` `storageType` `vpcSecurityGroupIds`  | 
| **Amazon Simple Storage Service（Amazon S3）** |  `destinationBucketName`，从 `awsbackup-restore-test-` 开始的随机值 `encrypted `，其值设置为 `true` `encryptionType`，其值设置为 `SSE-S3` `newBucket`，其值设置为 `true`  |  `encryptionType` `kmsKey`  | 

# 还原测试验证
<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 SDK 获得）。

   示例如下：

   ```
   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 规则**

   [创建监听还原作业[`COMPLETED`事件](https://docs.aws.amazon.com/aws-backup/latest/devguide/eventbridge.html#monitoring-events-in-eventbridge)的 EventBridge 规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html#eb-gs-create-rule)。

   或者，您可以按资源类型或还原测试计划 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`）进行查看。

   一旦设置了验证状态，就无法对其进行更改。