

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

# 使用 AWS Resilience Hub
<a name="using-resilience-hub"></a>

AWS Resilience Hub 可帮助您提高应用程序的弹性， AWS 并缩短应用程序中断时的恢复时间。

**Topics**
+ [AWS Resilience Hub 摘要](view-arh-summary-ug.md)
+ [AWS Resilience Hub 仪表板](view-app-dashboard.md)
+ [描述和管理 AWS Resilience Hub 应用程序](applications.md)
+ [管理弹性策略](resiliency-policies.md)
+ [在中运行和管理弹性评估 AWS Resilience Hub](resil-assessments.md)
+ [通过 “弹性” 小组件运行和管理弹性评估](resil-assessments-resiliency-widget.md)
+ [管理警报](alarms.md)
+ [管理标准操作程序](sops.md)
+ [管理 AWS Fault Injection Service 实验](testing.md)
+ [了解弹性分数](resil-score.md)
+ [将操作建议集成到您的应用程序中 CloudFormation](cfn-integration.md)

# AWS Resilience Hub 摘要
<a name="view-arh-summary-ug"></a>

AWS Resilience Hub 提供了带有图表和图形的可视化摘要，使您可以 at-a-glance查看应用程序在多个 AWS 服务和资源中的弹性状况。这份全面而简洁的直观摘要使您能够快速识别潜在的弹性差距，确定操作的优先顺序，并跟踪增强应用程序从中断中恢复能力方面的进展。当您选择**导出**时，如果您是首次导出指标，则会在您访问的区域中 AWS Resilience Hub 创建一个新的 Amazon S3 存储桶 AWS Resilience Hub。此 Amazon S3 存储桶仅为首次创建，成功完成后将用于保存导出的指标。在 Amazon S3 中存储导出的数据需要支付额外费用。有关这些费用的更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

小组件中的图表和图形可帮助您理解以下内容：
+ 应用程序的总体弹性分数和当前运行状态概述。
+ 突出显示不符合既定策略或偏离推荐配置的应用程序，从而可能违反策略或偏离最佳实践。此外，它还会突出显示特定领域，使您能够确定优先顺序并解决这些问题。
+ 需要立即关注的关键资源或应用程序。
+ 关于加强弹性实践的建议，例如实施警报、进行 AWS Fault Injection Service (AWS FIS) 实验和制定标准操作程序。这些建议会随着时间的推移进行跟踪，使您可以监控实施进度并衡量对应用程序整体弹性状况的影响。

**Topics**
+ [应用程序状态](#arh-summary-app-status-ug)
+ [按资源类型划分的热门基础架构建议](#arh-summary-infra-top-recommendation-ug)
+ [基础设施建议](#arh-summary-infra-recommendation-ug)
+ [未执行的业务建议](#arh-summary-ops-recommendation-ug)
+ [警报推荐](#arh-summary-alarms-overtime-recommendation-ug)
+ [SOP 建议](#arh-summary-sop-overtime-recommendation-ug)
+ [AWS FIS 实验建议](#arh-summary-fis-exp-overtime-recommendation-ug)
+ [有漂移的应用程序](#arh-summary-app-drifts-ug)
+ [弹性得分](#arh-summary-res-score-overtime-recommendation-ug)
+ [弹性评分排名前 10 的应用程序](#arh-summary-res-score-bottom-ten-app-ug)
+ [按策略划分的应用程序状态](#arh-summary-app-state-policy-ug)

## 应用程序状态
<a name="arh-summary-app-status-ug"></a>

此控件可显示您的应用程序是否符合弹性策略。在弹出窗口中选择**应用程序计**数旁边的数字，即可在 “应用程序” 窗格中查看所有关联的**应用程序**。要查看您创建的所有应用程序，请选择**查看应用程序**。有关在中管理应用程序的更多信息 AWS Resilience Hub，请参阅[查看 AWS Resilience Hub 应用程序摘要](view-app-summary.md)。

## 按资源类型划分的热门基础架构建议
<a name="arh-summary-infra-top-recommendation-ug"></a>

此小组件显示上次成功评估中针对您的 AWS 每种资源类型提供的基础设施建议数量，以改善其弹性状况。您可以通过将鼠标悬停在详细信息上方或导航到详细信息来识别详细信息。要查看您创建的所有应用程序，请选择**查看应用程序**。有关基础设施建议的更多信息，请参阅[查看弹性建议](resil-recs.md)。

## 基础设施建议
<a name="arh-summary-infra-recommendation-ug"></a>

此小组件列出了最多 10 个应用程序，这些应用程序的基础设施建议数量达到上次成功评估中为改善其弹性状况而提供的最大数量。要查看您创建的所有应用程序，请选择**查看应用程序**。有关基础设施建议的更多信息，请参阅[查看弹性建议](resil-recs.md)。

您可以使用以下方法识别详细信息：
+ **应用程序名称**-您在中定义应用程序时提供的应用程序的名称 AWS Resilience Hub。
+ **计数** — 表示上次成功评估 AWS Resilience Hub 中提供的基础架构建议数量。选择数字即可查看评估报告中提供的所有基础架构建议。
+ **上次评估**-表示上次成功评估您的申请的日期和时间。

## 未执行的业务建议
<a name="arh-summary-ops-recommendation-ug"></a>

此小组件列出了最多 10 个应用程序，这些应用程序在上次成功评估中提供了最大数量的未实施操作建议，以改善其弹性状况。要查看您创建的所有应用程序，请选择**查看应用程序**。有关操作建议的更多信息，请参阅[审查操作建议](ops.reqs.md)。

您可以使用以下方法识别详细信息：
+ **应用程序名称**-您在中定义应用程序时提供的应用程序的名称 AWS Resilience Hub。
+ **计数**-表示上次成功评估 AWS Resilience Hub 中提供的操作建议数量。选择数字即可查看评估报告中所有未执行的操作建议。
+ **上次评估时间**-表示上次成功评估您的申请的日期和时间。

## 警报推荐
<a name="arh-summary-alarms-overtime-recommendation-ug"></a>

此小组件列出了为在选定时间段内改善弹性状况而提供的所有 Amazon CloudWatch 警报建议。不同的类别（“**已实施**”、“**未实现**” 和 “已**排除**”）表示它们在您的应用程序中的实现状态。您可以通过将鼠标悬停在每个类别的Amazon CloudWatch 警报推荐上方或导航到它们来查看这些建议的数量。要查看您创建的所有应用程序，请选择**查看应用程序**。有关警报建议的更多信息，请参阅[审查操作建议](ops.reqs.md)。

## SOP 建议
<a name="arh-summary-sop-overtime-recommendation-ug"></a>

此小组件列出了为在选定时间段内改善弹性状况而提供的所有标准操作程序 (SOP) 建议。不同的类别（“**已实施**”、“**未实现**” 和 “已**排除**”）表示它们在您的应用程序中的实现状态。您可以通过将鼠标悬停在每个类别的 SOP 建议上方或导航到它们来查看这些建议的数量。要查看您创建的所有应用程序，请选择**查看应用程序**。有关操作建议的更多信息，请参阅[审查操作建议](ops.reqs.md)。

## AWS FIS 实验建议
<a name="arh-summary-fis-exp-overtime-recommendation-ug"></a>

此控件列出了为在选定时间段内改善弹性姿势而提供的所有 AWS FIS 实验建议。不同的类别（“**已实施**”、“**未实施**”、“**部分实施**” 和 “已**排除**”）表示它们在您的应用程序中的实现状态。您可以通过将鼠标悬停在每个类别的 AWS FIS 实验推荐上方或导航到它们来查看这些建议的数量。要查看您创建的所有应用程序，请选择**查看应用程序**。有关 AWS FIS 实验建议的更多信息，请参阅[管理标准操作程序](sops.md)。

## 有漂移的应用程序
<a name="arh-summary-app-drifts-ug"></a>

此小组件列出了所有在上次成功评估中偏离先前合规状态的应用程序。要查看您创建的所有应用程序，请选择**查看应用程序**。有关在中管理应用程序的更多信息 AWS Resilience Hub，请参阅[查看 AWS Resilience Hub 应用程序摘要](view-app-summary.md)。

您可以使用以下方法识别详细信息：
+ **应用程序名称**-您在中定义应用程序时提供的应用程序的名称 AWS Resilience Hub。
+ **政策偏差** — 选择应用程序名称旁边的数字，以查看在上一次评估中符合策略但在当前评估中未遵守政策的所有应用程序组件。
+ **资源漂移** — 选择下面的数字，查看最新导入中与其配置相比的所有资源。

## 弹性得分
<a name="arh-summary-res-score-overtime-recommendation-ug"></a>

此小组件显示选定时间段内最多五个应用程序的应用程序弹性分数趋势。您可以查看应用程序的弹性分数，方法是将鼠标悬停在与应用程序名称关联的行上，或者导航到该行，然后选择应用程序名称以查看应用程序摘要。要查看您创建的所有应用程序，请选择**查看应用程序**。有关弹性分数的更多信息，请参阅[了解弹性分数](resil-score.md)。

## 弹性评分排名前 10 的应用程序
<a name="arh-summary-res-score-bottom-ten-app-ug"></a>

此控件列出了最近评估中弹性得分最低的 10 个应用程序，重点介绍了需要立即关注以提高其弹性的应用程序。要查看您创建的所有应用程序，请选择**查看应用程序**。有关弹性分数的更多信息，请参阅[了解弹性分数](resil-score.md)。

您可以使用以下方法识别详细信息：
+ **应用程序名称**-您在中定义应用程序时提供的应用程序的名称 AWS Resilience Hub。
+ **弹性分数**-运行评估后由 AWS Resilience Hub 您的应用程序确定的总体弹性分数。
+ **上次评估时间**-表示上次成功评估您的申请的日期和时间。

## 按策略划分的应用程序状态
<a name="arh-summary-app-state-policy-ug"></a>

此小组件列出了您的所有政策，以及已违反、符合或尚未根据这些政策进行评估的应用程序数量。要查看您创建的所有策略，请选择**查看策略**。有关弹性分数的更多信息，请参阅[管理弹性策略](resiliency-policies.md)。

您可以使用以下方法识别详细信息：
+ **策略名称**-表示您在中定义策略时提供的策略名称 AWS Resilience Hub。
+ **类型**-表示附加到应用程序的策略（**弹性策略**）的类型。
+ **策略名称**-表示违反弹性策略中定义的 RTO 和 RPO 目标的应用程序数量。
+ **满足的应用程序**-表示符合弹性策略的应用程序数量。
+ **未评估的应用程序**-表示尚未根据弹性策略进行评估的应用程序数量。
+ **弹性分数**-运行评估后由 AWS Resilience Hub 您的应用程序确定的总体弹性分数。
+ **上次评估时间**-表示上次成功评估您的申请的日期和时间。

# AWS Resilience Hub 仪表板
<a name="view-app-dashboard"></a>

仪表板提供了应用程序组合弹性状态的全面视图。仪表板汇总和组织弹性事件（例如，数据库不可用或弹性验证失败）、警报以及来自 CloudWatch 和 AWS Fault Injection Service (AWS FIS) 等服务的见解。

仪表板还会为每个经过评估的应用程序生成弹性分数。该分数表示在根据推荐的弹性策略、警报、恢复标准操作程序 (SOPs) 和测试进行评估时，您的应用程序的性能如何。您可以使用此分数来衡量随时间推移而提高的韧性。

要查看 AWS Resilience Hub 仪表板，请从导航菜单中选择 “**控制**面板”。“**控制面板**” 页面显示以下部分：

## 应用程序状态
<a name="app-dash"></a>

应用程序状态表明是否已评估应用程序是否符合其所附的弹性政策。此外，评估完成后，状态还会显示您的应用程序的输入源是否已被修改。在以下每种状态下选择一个数字，即可在 “应用程序” 页面中查看所有具有相同状态的**应用程序**：
+ **策略中的应用程序**-表示所有符合其所附弹性策略的应用程序。
+ **违反策略的应用程序**-表示所有不符合其所附弹性策略的应用程序。
+ **未评估的应用程序**-表示尚未评估或跟踪其合规性的所有应用程序。
+ **应用程序漂移** — 表示所有已偏离其弹性策略或其资源是否已转移的应用程序。

## 随着时间的推移应用程序弹性得分
<a name="view-app-resiliency-over-time"></a>

通过随时间推移的应用程序弹性分数，您可以查看过去 30 天内应用程序的弹性图表。虽然下拉菜单可以列出 10 个应用程序，但一次 AWS Resilience Hub 只能显示最多四个应用程序的图表。有关弹性分数的更多信息，请参阅[了解弹性分数](resil-score.md)。

**注意**  
AWS Resilience Hub 不会同时运行预定评估。因此，您可能需要稍后返回到随时间推移的弹性得分图表，以查看应用程序的每日评估情况。

AWS Resilience Hub 还使用 Amazon CloudWatch 生成这些图表。选择 “**查看指标” CloudWatch，在**控制面板中创建和查看有关应用程序弹性的更精细信息。 CloudWatch 有关更多信息 CloudWatch，请参阅 *Amazon CloudWatch 用户指南*中的[使用控制面板](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create_dashboard.html)。

## 已实现警报
<a name="view-app-alarms-dashboard"></a>

本部分列出了您在 Amazon 中为监控所有应用程序 CloudWatch 而设置的所有警报。有关更多信息，请参阅 [查看警报](view-alarm.md)。

## 已实施的实验
<a name="view-app-experiments-dashboard"></a>

本节列出了您在所有应用程序中实现的所有故障注入实验。有关更多信息，请参阅 [查看 AWS FIS 实验](view-fis-experiment.md)。

# 描述和管理 AWS Resilience Hub 应用程序
<a name="applications"></a>

 AWS Resilience Hub 应用程序是一组 AWS 资源，其结构旨在防止和恢复 AWS 应用程序中断。

要描述 AWS Resilience Hub 应用程序，您需要提供应用程序名称、来自一个或多个 CloudFormation 堆栈的资源以及相应的弹性策略。您也可以使用任何现有的 AWS Resilience Hub 应用程序作为模板来描述您的应用程序。

描述 AWS Resilience Hub 应用程序后，必须发布该应用程序，这样才能对其进行弹性评估。然后，您可以使用评估建议来提高弹性，方法是运行另一项评估，将两项评估的结果进行比较，然后重复该流程，直到估计的工作负载 RTO 和估计的工作负载 RPO 达到 RTO 和 RPO 目标为止。

要查看 “**应用程序**” 页面，请从导航窗格中选择 “**应用程序**”。您可以通过以下方式在 “**应用程序**” 页面中识别您的应用程序：
+ **名称** — 您在 AWS Resilience Hub中指定应用程序名称时所提供的名称。
+ **描述** — 您在 AWS Resilience Hub中指定应用程序描述时所提供的描述。
+ **合规性状态**- AWS Resilience Hub 将应用程序状态设置为 “已**评估**”、“**未评估**”、“**违反策略**” 或 “**检测到更改**”。
  + 已@@ **评估**- AWS Resilience Hub 已评估您的申请。
  + **未评估**- AWS Resilience Hub 尚未评估您的申请。
  + **违反策略**- AWS Resilience Hub 已确定您的应用程序未达到弹性策略的恢复时间目标 (RTO) 和恢复点目标 (RPO) 目标。在重新评估您的弹性申请 AWS Resilience Hub 之前，请查看并使用提供的建议。有关建议的更多信息，请参阅 [将应用程序添加到 AWS Resilience Hub](describe-applicationlication.md)。
  + **检测到的更改**- AWS Resilience Hub 已检测到对与您的应用程序关联的弹性策略所做的更改。您必须重新评估您的应用程序 AWS Resilience Hub ，以确定您的应用程序是否符合弹性策略的目标。
+ **按时间表评估** — 资源类型标识了应用程序的组件资源。有关按时间表评估的更多信息，请参阅 [应用程序弹性](view-app-summary.md)。
  + **处于活动状态** — 表示 AWS Resilience Hub每天自动评估您的应用程序。
  + **已禁用**-这表示不会每天自动评估您的应用程序 AWS Resilience Hub ，您必须手动评估您的应用程序。
+ **偏移状态** - 指示您的应用程序是否偏离了上一次成功的评测，并设置以下状态之一：
  + **已偏差** — 表示应用程序在之前的成功评估中符合其弹性策略，但现在已经违反了弹性策略，该应用程序目前存在风险。此外，它还表明是否添加或移除了当前应用程序版本中包含的输入源中的资源。
  + **未偏差** — 表示预计应用程序仍能达到策略中定义的 RTO 和 RPO 目标。此外，它还表明未添加或移除当前应用程序版本中包含的输入源中的资源。
+ **估计的工作负载 RTO** — 表示应用程序可能的最大估计的工作负载 RTO。此值是自上次成功评估以来所有中断类型的最大估计的工作负载 RTO。
+ **估计的工作负载 RPO** — 表示应用程序可能的最大估计的工作负载 RPO。此值是自上次成功评估以来所有中断类型的最大估计的工作负载 RTO。
+ **上次评估时间** — 指示上次成功评估您的应用程序的日期和时间。
+ **创建时间** — 创建应用程序的日期和时间。
+ **ARN** — 应用程序的 Amazon 资源名称（ARN）。有关更多信息 ARNs，请参阅《*AWS 一般参考*》中的 [Amazon 资源名称 (ARNs)](https://docs.aws.amazon.com//general/latest/gr/aws-arns-and-namespaces.html)。

**注意**  
AWS Resilience Hub 只有当您将 Amazon ECR 用于映像存储库时，才能全面评估跨区域 Amazon ECS 资源的弹性。

此外，您还可以使用**应用程序**页面中的以下选项之一来筛选应用程序列表：
+ **查找应用程序** — 输入您的应用程序名称，以按应用程序名称筛选结果。
+ **按日期和时间范围筛选上次评估时间** — 要应用此筛选条件，请选择日历图标并选择以下选项之一，以按与时间范围匹配的结果进行筛选：
  + **相对范围** — 选择可用选项之一，然后选择**应用**。

    如果选择**自定义范围**选项，请在**输入持续时间**框中输入持续时间，然后从**时间单位**下拉列表中选择相应的时间单位，然后选择**应用**。
  + **绝对范围** — 要指定日期和时间范围，请提供开始时间和结束时间，然后选择**应用**。

以下主题显示了描述 AWS Resilience Hub 应用程序的不同方法以及如何管理它们。

**Topics**
+ [查看 AWS Resilience Hub 应用程序摘要](view-app-summary.md)
+ [编辑 AWS Resilience Hub 应用程序资源](application-resources.md)
+ [管理应用程序组件](AppComponent.md)
+ [发布新的 AWS Resilience Hub 应用程序版本](applications-publish.md)
+ [查看所有 AWS Resilience Hub 应用程序版本](view-application-version.md)
+ [查看 AWS Resilience Hub 应用程序的资源](view-resources.md)
+ [删除 AWS Resilience Hub 应用程序](applications-delete.md)
+ [应用程序配置参数](app-config.md)

# 查看 AWS Resilience Hub 应用程序摘要
<a name="view-app-summary"></a>

 AWS Resilience Hub 控制台中的应用程序摘要页面概述了您的应用程序信息和弹性运行状况。

**查看应用程序摘要**

1. 从导航窗格中选择 “**应用程序**”。

1. 在**应用程序**页面上，选择要查看的应用程序的名称。

应用程序摘要页面包含以下部分。

**Topics**
+ [评估摘要](#view-assessment-summary-resiliency)
+ [摘要](#view-app-summary-resiliency)
+ [应用程序弹性](#view-app-resiliency)
+ [已实施的警报](#view-app-alarms)
+ [已实施的实验](#view-app-experiments)

## 评估摘要
<a name="view-assessment-summary-resiliency"></a>

本节概述了上次成功的评估，并重点介绍了作为可操作见解的关键建议。 AWS Resilience Hub 使用 Amazon Bedrock 生成式 AI 功能来帮助用户将注意力集中在由 AWS Resilience Hub提供的最关键的弹性建议上。通过关注关键项目，您可以专注于提高应用程序弹性状况的最关键建议。选择一项建议以查看其摘要，然后选择**查看详细**信息以在评估报告的相关部分中查看有关建议的更多详细信息。有关审阅评估报告的更多信息，请参阅[查看评估报告](review-assessment.md)。

**注意**  
此评估摘要仅在美国东部（弗吉尼亚北部）地区提供。
由 Amazon Bedrock 上的大型语言模型 (LLMs) 生成的评估摘要只是建议。当前的生成式人工智能技术水平并不完美，也不是万无一失 LLMs 的。偏见和错误答案虽然很少见，但应该预料到。在使用法学硕士的输出之前，请先查看**评估摘要**中的每项建议。

## 摘要
<a name="view-app-summary-resiliency"></a>

本节在以下各节中提供了所选应用程序的摘要：
+ **应用程序信息**-本节提供有关所选应用程序的以下信息：
  + **应用程序状态**-表示应用程序的状态。
  + **描述**-应用程序的描述。
  + **版本**-表示应用程序当前评估的版本。
  + **弹性策略**-表示附加到应用程序的弹性策略。有关弹性策略的更多信息，请参阅 [管理弹性策略](resiliency-policies.md)。
+ **应用程序漂移** — 本节重点介绍在对所选应用程序进行评估以检查其是否符合其弹性策略时检测到的偏差。此外，它还会检查自上次发布应用程序版本以来是否添加或删除了任何资源。此部分显示以下信息：
  + **政策偏差** — 选择下面的数字可查看在上一次评估中符合政策但在当前评估中未符合政策的所有应用程序组件。
  + **资源漂移** — 选择下面的数字以查看最新评估中的所有漂移资源。

## 应用程序弹性
<a name="view-app-resiliency"></a>

**弹性分数**部分中显示的指标来自该应用程序的最新弹性评估。

**弹性得分**

弹性得分可帮助您对是否准备好应对潜在中断进行量化。该分数反映了您的应用程序对满足应用程序弹性策略、警报、标准操作程序 (SOPs) 和测试的 AWS Resilience Hub 建议的遵守程度。

您的应用程序可以达到的最大弹性得分为 100%。评分代表了预定义的时间段内运行的所有建议测试。它表示测试正在启动正确的警报，并且警报启动了正确的 SOP。

例如，假设 AWS Resilience Hub 建议使用一个警报和一个 SOP 进行一次测试。当测试运行时，警报会启动关联的 SOP，则表示运行成功。有关弹性得分的更多信息，请参阅 [了解弹性分数](resil-score.md)。

## 已实施的警报
<a name="view-app-alarms"></a>

应用程序摘要**已实施警报**部分列出了您在 Amazon 中 CloudWatch 为监控应用程序而设置的警报。有关警报的更多信息，请参阅 [管理警报](alarms.md)。

## 已实施的实验
<a name="view-app-experiments"></a>

应用程序摘要中的**错误注入实验**部分显示了错误注入实验的列表。有关错误注入实验的更多信息，请参阅 [管理 AWS Fault Injection Service 实验](testing.md)。

# 编辑 AWS Resilience Hub 应用程序资源
<a name="application-resources"></a>

要获得准确而有用的弹性评估，请确保更新您的应用程序描述并与您的实际 AWS 应用程序和资源相匹配。评测报告、验证和建议均基于列出的资源。如果您在 AWS 应用程序中添加或移除资源，则应在中反映这些更改 AWS Resilience Hub。

AWS Resilience Hub 提供有关应用程序来源的透明度。您可以识别和编辑应用程序中的资源和应用程序源。

**注意**  
编辑资源只会修改应用程序的 AWS Resilience Hub 引用。不会对您的实际资源进行任何更改。

您可以添加缺失的资源、修改现有资源或移除不需要的资源。资源分组为逻辑应用程序组件 (AppComponents)。您可以编辑 AppComponents 以更好地反映应用程序的结构。

通过编辑应用程序的草稿版本并将更改发布到新（发布）版本来添加或更新您的应用程序资源。 AWS Resilience Hub 使用应用程序的发布版本（包括更新的资源）来运行弹性评估。

**评测应用程序的弹性**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择您要编辑的应用程序的名称。

1. 从**操作**菜单中选择**评测弹性**。

1. 在**运行弹性评测**对话框中，输入报告的唯一名称或使用**报告名称**框中生成的名称。

1. 选择**运行**。

1. 收到评测报告已生成的通知后，选择**评测**选项卡和您的评测以查看报告。

1. 选择**查看**选项卡以查看您的应用程序的评测报告。

**启用预设评估**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要为其启用预设评估的应用程序。

1. 打开 “**每天自动评估**”。

**禁用预设评估**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要为其启用预设评估的应用程序。

1. 关闭 “**每天自动评估**”。
**注意**  
禁用预定评估将禁用偏差通知。

1. 选择**关闭**。

**为您的应用程序启用漂移通知**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要为其启用偏差通知或编辑漂移通知设置的应用程序。

1. 您可以通过选择以下选项之一来编辑漂移通知：
   + 从 “**操作**” 中选择 “**启用偏移通知**”。
   + 在 “**应用程序漂移**” 部分中选择 “**启用通知**”。

1. 完成中的步骤[设置预定评测和偏移通知](scheduled-assessment.md)，然后返回此过程。

1. 请选择**启用**。

   启用漂移通知也将启用预定评估。

**编辑应用程序的偏移通知**
**注意**  
如果您启用了计划评估（开启了**每日自动评估**）和偏差通知，则此程序适用。

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要为其启用偏差通知或编辑漂移通知设置的应用程序。

1. 您可以通过选择以下选项之一来编辑漂移通知：
   + 在**操作**中，选择**编辑偏移通知**。
   + 在 “**应用程序漂移**” 部分中选择 **“编辑通知**”。

1. 完成中的步骤[设置预定评测和偏移通知](scheduled-assessment.md)，然后返回此过程。

1. 选择**保存**。

**更新应用程序的安全权限**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要更新其安全权限的应用程序。

1. 从**操作**中，选择**更新权限**。

1. 要更新安全权限，请完成 [设置权限](setup-permissions.md) 中的步骤，然后返回到此过程。

1. 选择**保存并更新**。

**要将弹性策略附加到您的应用程序**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择您要编辑的应用程序的名称。

1. 从**操作**菜单中，选择**附加弹性策略**。

1. 在**附加策略**对话框中，从**选择弹性策略**下拉列表中选择弹性策略。

1. 选择 **附加**。

**编辑输入源、资源和应用程序 AppComponents 的输入源**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择您要编辑的应用程序的名称。

1. 选择**应用程序结构**选项卡。

1. 在**版本**前选择加号 **\$1**，然后选择处于**草稿**状态的应用程序版本。

1. 要编辑输入源、资源和应用程序 AppComponents 的输入源，请完成以下过程中的步骤。

**要编辑应用程序的输入源**

1. 要编辑应用程序的输入源，请选择**输入源**选项卡。

   **输入源**部分列出了您的应用程序资源的所有输入源。您可以通过以下方式识别输入源：
   + **源名称** – 输入源的名称。选择源名称以在相应的应用程序中查看其详细信息。对于手动添加的输入源，该链接将不可用。例如，如果您选择从 AWS CloudFormation 堆栈导入的源名称，您将被重定向到 AWS CloudFormation 控制台上的堆栈详细信息页面。
   + **源 ARN** – 输入源的 Amazon 资源名称（ARN）。选择 ARN 以在相应的应用程序中查看其详细信息。对于手动添加的输入源，该链接将不可用。例如，如果您选择从 AWS CloudFormation 堆栈导入的 ARN，您将被重定向到 AWS CloudFormation 控制台上的堆栈详情页面。
   + **源类型** - 输入源的类型。输入源包括 Amazon EKS 集群、 AWS CloudFormation 堆栈、MyApplications 应用程序 AWS Resource Groups、Terraform 状态文件和手动添加的资源。
   + **关联资源** - 与输入源关联的资源数量。在**资源**选项卡中选择一个数字，即可查看输入源的所有关联资源。

1. 要向应用程序添加输入源，请从**输入源**部分中选择**添加输入源**。有关添加社交 IdP 的更多信息，请参阅[添加资源集合](discover-structure.md)。

1. 要编辑输入源，请选择“输入源”，然后从**操作**中选择以下选项之一：
   + **重新导入输入源（最多 5 个）** - 最多重新导入五个选定的输入源。
   + **删除输入源** - 删除选定的输入源。

     要发布应用程序，则应用程序必须至少包含一个输入源。如果删除所有输入源，则将禁用**发布新版本**。

**编辑应用程序的资源**

1. 要编辑应用程序的资源，请选择**资源**选项卡。
**注意**  
要查看未评测的资源列表，请选择**查看未评测的资源**。

   **资源**部分列出了您选择用作应用程序描述模板的应用程序资源。为了增强您的搜索体验，我们根据多个搜索条件对资源 AWS Resilience Hub 进行了分组。这些搜索条件包括 AppComponent 类型、**不支持的**资源和**排除**的资源。要根据资源表中的搜索条件筛选**资源**，请选择每个搜索条件下方的数字。

   您可以按前缀识别这些资源：
   + **逻辑 ID** — 逻辑 ID 是用于识别 AWS CloudFormation 堆栈、Terraform 状态文件、手动添加的应用程序、MyApplications 应用程序或中的资源的名称。 AWS Resource Groups
**注意**  
Terraform 允许您对不同的资源类型使用相同的名称。因此，对于共享相同名称的资源，您会在逻辑 ID 的末尾看到“*- 资源类型*”。
要查看所有应用程序资源的实例，请选择**逻辑 ID** 前的加号（**\$1**）。要查看应用程序资源的所有实例，请选择每个资源的“逻辑 ID”前的加号（**\$1**）。  
有关支持的资源类型的更多信息，请参阅 [AWS Resilience Hub 支持的资源](supported-resources.md)。
   + **资源类型** - 资源类型标识应用程序的组件资源。例如，`AWS::EC2::Instance`声明一个 Amazon EC2 实例。有关对 AppComponent 资源进行分组的更多信息，请参阅[在应用程序组件中对资源进行分组](AppComponent.grouping.md)。
   + **源名称** – 输入源的名称。选择源名称以在相应的应用程序中查看其详细信息。对于手动添加的输入源，该链接将不可用。例如，如果您选择从 AWS CloudFormation 堆栈导入的源名称，则系统会将您重定向到上的堆栈详细信息页面 AWS CloudFormation。
   + **源类型** - 输入源的类型。输入源包括 AWS CloudFormation 堆栈、MyApplications 应用程序 AWS Resource Groups、Terraform 状态文件和手动添加的资源。
**注意**  
要编辑您的 Amazon EKS 集群，请完成**要编辑 AWS Resilience Hub 应用程序的输入源**过程中的步骤。
   + **源堆栈**-包含资源的 AWS CloudFormation 堆栈。此列取决于您选择的应用程序结构的类型。
   + **物理 ID** — 为该资源实际分配的标识符，例如 Amazon EC2 实例 ID 或 S3 存储桶名称。
   + **已包含** — 指示 AWS Resilience Hub 是否将这些资源包含在应用程序中。
   + **可评测** – 这表示 AWS Resilience Hub 是否会评测您的资源的弹性。
   + **AppComponents**— 在发现该资源的应用程序结构时分配给该资源的 AWS Resilience Hub 组件。
   + **名称** — 应用程序资源的名称。
   + **帐户**-拥有物理资源的 AWS 帐户。

1. 要查找未列出的资源，请在搜索框中输入资源逻辑 ID。

1. 要从应用程序中删除资源，请选择该资源，然后从**操作**中选择**排除资源**。

1. 要解析应用程序上的资源，请选择**刷新资源**。

1. 要修改现有的应用程序资源，请完成以下步骤：

   1. 选择资源，然后从**操作**中选择**更新堆栈**。

   1. 在**更新堆栈**页面中，要更新您的资源，请完成 [添加资源集合](discover-structure.md) 中的相应步骤，然后返回到此过程。

   1. 选择**保存**。

1. 要向应用程序添加资源，请从**操作**中选择**添加资源**，然后完成以下步骤：

   1. 从**资源类型**下拉列表中，选择至少一种资源类型。

   1.  AppComponent 从下**AppComponent**拉列表中选择一个。

   1. 在**资源名称**框中输入资源逻辑 ID。

   1. 在**资源标识符**框中输入物理资源 ID、资源名称或资源 ARN。

   1. 选择 **添加**。

1. 要编辑资源名称，请选择一个资源，从**操作**中选择**编辑资源名称**，然后完成以下步骤：

   1. 在**资源名称**框中输入资源逻辑 ID。

   1. 选择**保存**。

1. 要编辑资源标识符，请选择一个资源，从**操作**中选择**编辑资源标识符**，然后完成以下步骤：

   1. 在**资源标识符**框中输入物理资源 ID、资源名称或资源 ARN。

   1. 选择**保存**。

1. 要更改 AppComponent，请选择资源， AppComponent从 “**操作**” 中选择 “**更改**”，然后完成以下步骤：

   1.  AppComponent 从下**AppComponent**拉列表中选择一个。

   1. 选择 **添加**。

1. 要删除资源，请选择一个资源，然后从**操作**中选择**删除资源**。

1. 要包含资源，请选择资源，然后从**操作**中选择**包含资源**。

**编辑您的应用程序的 AppComponents**

1. 要编辑您的应用程序，请选择该**AppComponents**选项卡。 AppComponents 
**注意**  
有关对 AppComponent 资源进行分组的更多信息，请参阅[在应用程序组件中对资源进行分组](AppComponent.grouping.md)。

   该**AppComponents**部分列出了资源归入的所有逻辑组件。您可以 AppComponents 通过以下方式识别：
   + **AppComponent nam** e — 在发现该资源的应用程序结构时分配给该资源的 AWS Resilience Hub 组件的名称。
   + **AppComponent t** ype — AWS Resilience Hub 组件的类型。
   + **源名称** – 输入源的名称。选择源名称以在相应的应用程序中查看其详细信息。例如，如果您选择了从 AWS CloudFormation 堆栈导入的源名称，系统会将您重定向到 AWS CloudFormation上的堆栈详细信息页面。
   + **资源计数** - 与输入源关联的资源数量。在**资源**选项卡中选择一个数字，即可查看输入源的所有关联资源。

1. 要创建 AppComponent，请从 “**操作**” 菜单中选择 “**新建**”， AppComponent然后完成以下步骤：

   1. 在名称框 AppComponent 中输入的**AppComponent名称**。作为参考，我们在此字段中预先填充了示例名称。

   1. 从 “类型” 下拉列表中选择**AppComponent类型**。 AppComponent 

   1. 选择**保存**。

1. 要编辑 AppComponent，请选择一个 AppComponent，然后 AppComponent从 “**操作**” 中选择 **“编辑”**。

1. 要删除 AppComponent，请选择一个 AppComponent，然后选择 AppComponent从**操作**中**删除**。

对资源列表进行更改后，您将收到一条警报，表明已对您的应用程序的草稿版本进行了更改。要运行准确的弹性评测，您必须发布新版本的应用程序。有关如何发布新版本的更多信息，请参阅 [发布新的 AWS Resilience Hub 应用程序版本](applications-publish.md)。

# 管理应用程序组件
<a name="AppComponent"></a>

应用程序组件 (AppComponent) 是一组相关 AWS 资源，它们作为一个单元起作用和失败。例如，如果您有主数据库和副本数据库，则这两个数据库属于同一个数据库 AppComponent。 AWS Resilience Hub 有管理哪些 AWS 资源可以属于哪 AppComponent 种类型的规则。例如，`DBInstance`可以属于`AWS::ResilienceHub::DatabaseAppComponent`而不是`AWS::ResilienceHub::ComputeAppComponent`。

它们 AWS Resilience Hub AppComponents 支持以下资源：
+ `AWS::ResilienceHub::ComputeAppComponent`
  + `AWS::ApiGateway::RestApi`
  + `AWS::ApiGatewayV2::Api`
  + `AWS::AutoScaling::AutoScalingGroup`
  + `AWS::EC2::Instance`
  + `AWS::ECS::Service`
  + `AWS::EKS::Deployment`
  + `AWS::EKS::ReplicaSet`
  + `AWS::EKS::Pod`
  + `AWS::Lambda::Function`
  + `AWS::StepFunctions::StateMachine`
+ `AWS::ResilienceHub::DatabaseAppComponent`
  + `AWS::DocDB::DBCluster`
  + `AWS::DynamoDB::Table`
  + `AWS::ElastiCache::CacheCluster`
  + `AWS::ElastiCache::GlobalReplicationGroup`
  + `AWS::ElastiCache::ReplicationGroup`
  + `AWS::ElastiCache::ServerlessCache`
  + `AWS::RDS::DBCluster`
  + `AWS::RDS::DBInstance`
+ `AWS::ResilienceHub::NetworkingAppComponent`
  + `AWS::EC2::NatGateway`
  + `AWS::ElasticLoadBalancing::LoadBalancer`
  + `AWS::ElasticLoadBalancingV2::LoadBalancer`
  + `AWS::Route53::RecordSet`
+ `AWS:ResilienceHub::NotificationAppComponent`
  + `AWS::SNS::Topic`
+ `AWS::ResilienceHub::QueueAppComponent`
  + `AWS::SQS::Queue`
+ `AWS::ResilienceHub::StorageAppComponent`
  + `AWS::Backup::BackupPlan`
  + `AWS::EC2::Volume`
  + `AWS::EFS::FileSystem`
  + `AWS::FSx::FileSystem`
**注意**  
目前，仅 AWS Resilience Hub 支持 Amazon FSx for Windows 文件服务器。
  + `AWS::S3::Bucket`

**Topics**
+ [在应用程序组件中对资源进行分组](AppComponent.grouping.md)

# 在应用程序组件中对资源进行分组
<a name="AppComponent.grouping"></a>

将应用程序及其资源导入 AWS Resilience Hub 时，在导入应用程序 AppComponent 时 AWS Resilience Hub 会尽最大努力将相关资源分组为相同的资源，但是分组可能并不总是百分之百准确。由于这些服务具有严格的依赖关系，需要特定的分组配置，因此某些资源会被阻止进行手动分组，因此在适用时会自动进行分组。有关被阻止进行手动分组的服务的完整列表，请参阅[已屏蔽用于手动分组的服务](blocked-services-for-manual-grouping.md)。

AWS Resilience Hub 成功导入应用程序及其资源后，将执行以下活动：
+ 扫描您的资源以检查是否可以将其重新分组为新资源 AppComponents以提高评估的准确性。
+ 如果 AWS Resilience Hub 确定了可以重新分组为新资源的资源 AppComponents，则它会显示与推荐相同的资源，并允许您接受或拒绝相同的资源。在中 AWS Resilience Hub，分配给分组建议的置信度表示应根据资源的属性和元数据对资源进行分组的确定程度。**高置信度**表示 AWS Resilience Hub 置信度为 90% 或以上，表示该组中的资源是相关的，应组合在一起。中**等置信度表示 AWS Resilience Hub 置信度介**于 70% 和 90% 之间，表示该组中的资源是相关的，应组合在一起。

**注意**  
AWS Resilience Hub 需要正确的分组，以便它可以计算估计的工作负载 RTO 和估计的工作负载 RPO 以生成建议。

以下是正确分组的示例：
+ 将主数据库和副本分组到一个 AppComponent数据库下。
+ 将运行相同应用程序的 Amazon EC2 实例分组到一个实例下 AppComponent。
+ 将一个区域的 Amazon ECS 服务分组到一个区域，将另一个区域的 Amazon ECS 服务故障转移到一个区域下 AppComponent。

有关通过查看和包括资源分组建议的更多信息 AWS Resilience Hub，请参阅以下主题：
+ [AWS Resilience Hub 资源分组建议](grouping-recommendation.md)
+ [手动将资源分组为 AppComponent](AppComponent-manual-grouping.md)

# 已屏蔽用于手动分组的服务
<a name="blocked-services-for-manual-grouping"></a>

AWS Resilience Hub 阻止您手动对某些 AWS 服务的资源进行分组，以防止出现可能影响应用程序弹性评估和建议的配置错误。这些服务会根据其依赖关系和配置自动分组。当您定义包含这些资源的应用程序时 AWS Resilience Hub，它会分析它们的关系、依赖关系和弹性要求，以创建最佳分组，从而确保准确的评估结果。

因手动分组而被屏蔽的 AWS 服务列表：
+ Amazon API Gateway
+ Amazon DocumentDB
+ Amazon DynamoDB
+ Amazon Elastic Block Store
+ Amazon Elastic File System
+ Amazon Relational Database Service
+ Amazon S3
+ Amazon Simple Queue Service
+ FSx 适用于 Windows 文件服务器
+ NAT 网关

# AWS Resilience Hub 资源分组建议
<a name="grouping-recommendation"></a>

本节介绍如何在中生成和查看资源分组建议 AWS Resilience Hub。

**注意**  
您可以使用`AWSResilienceHubAsssessmentExecutionPolicy` AWS 托管策略授予使用所需的必要 IAM 权限。 AWS Resilience Hub 有关 AWS 托管策略的更多信息，请参阅[AWSResilienceHubAsssessmentExecutionPolicy](security-iam-awsmanpol.md#security_iam_aws-assessment-policy)。<a name="view-resource-grouping"></a>

**查看资源分组建议**

1. 在导航窗格中，选择 **应用程序**。

1. 选择**添加应用程序**页面，选择要查看其资源分组建议的应用程序名称。

1. 选择**应用程序结构**选项卡。

1. 如果 AWS Resilience Hub 显示信息提醒，请选择**查看建议**以查看所有资源分组建议。否则，请完成以下步骤以手动生成资源分组建议：

   1. 选择**资源**。

   1. 从 “**操作**” 菜单中选择 “**获取分组建议**”。

      AWS Resilience Hub 扫描您的资源，以检查如何以最佳方式将其分组为相关资源 AppComponents ，从而提高评估的准确性。如果 AWS Resilience Hub 得知您的资源可以分组在一起，则会显示相同资源的信息提醒。

   1. 如果显示信息警报，请选择**查看建议**以查看所有资源分组建议。

   您可以使用以下方法 AppComponents 在 “**查看资源分组建议**” 部分中标识：
   + **AppComponent 名称**-将在其中 AppComponent 对资源进行分组的名称。
   + **置信度** — 表示分组建议中 AWS Resilience Hub 的置信度。
   + **资源计数**-表示将在中分组的资源数量 AppComponent。
   + **AppComponent t** ype — 表示的类型 AppComponent。

**查看将要分组的资源 AppComponents**

1. 完成**[查看资源分组建议](#view-resource-grouping)**过程中的步骤，然后返回到此过程。

1. 在 “**查看资源分组建议**” 部分，选中复选框（**AppComponent 名称**旁边）以查看将在选定资源内分组的所有资源 AppComponent。如果选中多个复选框，则 AWS Resilience Hub 会显示动态生成的**已选推荐部分，该部分将所选建议** AppComponents 按各自的 AppComponent类型进行分组。选择每 AppComponent 种类型下方的数字，以查看将在所选类型中组合在一起的所有资源 AppComponent。

   您可以使用以下方法确定将在 “资源” 部分所选**资源 AppComponent **中进行分组的资源：
   + **逻辑 ID** - 指示资源的逻辑 ID。逻辑 ID 是用于识别 AWS CloudFormation 堆栈、Terraform 状态文件、MyApplications 应用程序或中的资源的名称。 AWS Resource Groups
   + **物理 ID** — 为资源分配的实际标识符，例如 Amazon EC2 实例 ID 或 Amazon S3 存储桶名称。
   + **类型**-表示资源的类型。
   + ** AWS 区域**-资源所在的区域。

**接受资源分组建议**

1. 完成**[查看资源分组建议](#view-resource-grouping)**过程中的步骤，然后返回到此过程。

1. 在 “**查看资源分组建议**” 部分，选中**AppComponent名称**旁边的所有复选框。要查找特定的 AppComponent，请在 “**查找 AppComponents**” 框中输入 AppComponent名称。
**注意**  
默认情况下， AWS Resilience Hub 显示所有资源分组建议。要使用以前拒绝的资源分组建议筛选表格，请从 “**查找**” AppComponents 框旁边的下拉菜单中选择 “**以前已拒绝**”。

1. 选择 **Accept (接受)**。

1. 在 “**接受****资源分组建议**” 对话框中选择 “接受”。

   AWS Resilience Hub 如果资源分组成功，则会显示信息警报。如果您只接受了资源分组建议的子集，则**查看资源分组建议**部分会显示您尚未接受的所有资源分组建议。

**拒绝资源分组建议**

1. 完成**[查看资源分组建议](#view-resource-grouping)**过程中的步骤，然后返回到此过程。

1. 在 “**查看资源分组建议**” 部分，选中**AppComponent名称**旁边的所有复选框。要查找特定的 AppComponent，请在 “**查找 AppComponents**” 框中输入 AppComponent名称。
**注意**  
默认情况下， AWS Resilience Hub 显示所有资源分组建议。要使用以前拒绝的资源分组建议筛选表格，请从 “**查找**” AppComponents 框旁边的下拉菜单中选择 “**以前已拒绝**”。

1. 选择 **Reject (拒绝)**。

1. 选择拒绝资源分组建议的原因之一，然后在 “**拒绝**资源分**组建议” 对话框中选择 “拒绝**”。

   AWS Resilience Hub 显示确认相同内容的信息警报。如果您只拒绝了资源分组建议的子集，则**查看资源分组建议**部分会显示您尚未接受的所有资源分组建议。

# 手动将资源分组为 AppComponent
<a name="AppComponent-manual-grouping"></a>

本节介绍如何手动将资源分组到中， AppComponent 并 AppComponent 向中的资源分配不同的资源 AWS Resilience Hub。

**对资源进行分组**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择包含要分组的资源的应用程序名称。

1. 选择**应用程序结构**选项卡。

1. 在**版本**选项卡下，选择处于**草稿**状态的应用程序版本。

1. 选择**资源**选项卡。

1. 选中 “**逻辑 ID**” 旁边的复选框以选择要分组的所有资源。
**注意**  
您不能选择手动添加的资源。

1. 选择**操作**，然后选择**对资源进行分组**。

1.  AppComponent 从 “选择**” AppComponent** 下拉列表中选择要对资源进行分组的。

1. 选择**保存**。

1. 选择 **새 버전 발행**。

1. 选择**应用程序结构**选项卡。

1. 要查看应用程序的已发布版本，请完成以下步骤：

   1. 在**版本**选项卡下，选择处于**当前版本**状态的应用程序版本。

   1. 选择**资源**选项卡。

**将资源分配给 AppComponent**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择含有要重新分组的资源的应用程序名称。

1. 选择**应用程序结构**选项卡。

1. 在**版本**下，选择处于**草稿**状态的应用程序版本。

1. 选择**资源**选项卡。

1. 选中**逻辑 ID** 旁边的复选框以选择资源。

1.  AppComponent从 “**操作**” 菜单中选择 “**更改**”。

1. 要 AppComponent 从分**AppComponent**区中删除当前，请在显示您当前 AppComponent 姓名的标签的右上角选择 **X**。

1. 要将资源分组为不同的资源 AppComponent，请 AppComponent从 “选择” AppComponent 下拉列表**中选择**不同的资源。

1. 选择**添加**。

1.  AppComponents 从**AppComponents**选项卡中删除所有空白。

1. 选择 **새 버전 발행**。

1. 选择**应用程序结构**选项卡。

1. 要查看应用程序的已发布版本，请完成以下步骤：

   1. 在**版本**选项卡下，选择处于**当前版本**状态的应用程序版本。

   1. 选择**资源**选项卡。

# 发布新的 AWS Resilience Hub 应用程序版本
<a name="applications-publish"></a>

按照中所述对 AWS Resilience Hub 应用程序资源进行更改后[编辑 AWS Resilience Hub 应用程序资源](application-resources.md)，必须发布应用程序的新版本才能进行准确的弹性评估。此外，如果您在应用程序中添加了新的推荐警报和测试 SOPs，则可能需要发布应用程序的新版本。

**发布应用程序的新版本**

1.  在导航窗格中，选择 **应用程序**。

1.  在**应用程序**页面上，选择应用程序名称。

1. 选择**应用程序结构**选项卡。

1. 选择 **새 버전 발행**。

1. 在 “**发布版本**” 对话框的 “**名称**” 框中，输入应用程序版本的名称，也可以使用建议的默认名称 AWS Resilience Hub。

1. 选择**发布**。

   在发布应用程序的新版本时，该版本将成为您运行弹性评估时所评估的版本。此外，在您进行任何更改之前，草稿版本将与已发布版本相同。

在您发布应用程序的新版本后，我们建议您运行新的弹性评估报告，以确认您的应用程序仍然符合您的弹性策略。有关运行评估的信息，请参阅 [在中运行和管理弹性评估 AWS Resilience Hub](resil-assessments.md)。

# 查看所有 AWS Resilience Hub 应用程序版本
<a name="view-application-version"></a>

为了帮助跟踪应用程序的更改， AWS Resilience Hub 显示应用程序自创建之日起的先前版本 AWS Resilience Hub。

**查看应用程序的所有版本**

1.  在导航窗格中，选择 **应用程序**。

1.  在**应用程序**页面上，选择应用程序名称。

1. 选择**应用程序结构**选项卡。

1. 要查看应用程序的所有先前版本，请在**查看所有版本**之前选择加号 (**\$1**)。 AWS Resilience Hub 分别使用 “草稿” 和 “**当前版本” 状态表示应用程序的**草**稿**版本和最近发布的版本。您可以选择应用程序的任何版本来查看其资源 AppComponent、输入源和其他相关信息。

   此外，您还可以使用以下选项之一来筛选列表：
   + **按版本名称筛选** — 输入名称以按应用程序版本名称筛选结果。
   + **按日期和时间范围筛选** — 要应用此筛选条件，请选择日历图标并选择以下选项之一，以按与时间范围匹配的结果进行筛选：
     + **相对范围** — 选择可用选项之一，然后选择**应用**。

       如果选择**自定义范围**选项，请在**输入持续时间**框中输入持续时间，然后从**时间单位**下拉列表中选择相应的时间单位，然后选择**应用**。
     + **相对范围** — 要指定日期和时间范围，请提供开始时间和结束时间，然后选择**应用**。

# 查看 AWS Resilience Hub 应用程序的资源
<a name="view-resources"></a>

**查看应用程序资源**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要更新其安全权限的应用程序。

1. 从**操作**中选择**查看资源**。

   在**资源**选项卡中，您可以通过以下方式在**资源**表中标识资源：
   + **逻辑 ID** — 逻辑 ID 是用于识别 AWS CloudFormation 堆栈、Terraform 状态文件、MyApplications 应用程序或中的资源的名称。 AWS Resource Groups
**注意**  
Terraform 允许您对不同的资源类型使用相同的名称。因此，对于共享相同名称的资源，您会在逻辑 ID 的末尾看到“*- 资源类型*”。
要查看所有应用程序资源的实例，请选择**逻辑 ID** 前的加号（**\$1**）。要查看应用程序资源的所有实例，请选择每个资源的“逻辑 ID”前的加号（**\$1**）。  
有关支持的资源类型的更多信息，请参阅 [AWS Resilience Hub 支持的资源](supported-resources.md)。
   + **状态** — 指示 AWS Resilience Hub 是否会评估您的资源弹性。
   + **资源类型** - 资源类型标识应用程序的组件资源。例如，`AWS::EC2::Instance` 声明 Amazon EC2 实例。有关对 AppComponent 资源进行分组的更多信息，请参阅[在应用程序组件中对资源进行分组](AppComponent.grouping.md)。
   + **源名称** – 输入源的名称。选择源名称以在相应的应用程序中查看其详细信息。对于手动添加的输入源，该链接将不可用。例如，如果您选择从 AWS CloudFormation 堆栈导入的源名称，则系统会将您重定向到上的堆栈详细信息页面 AWS CloudFormation。
   + **源类型** — 输入源的类型。
   + **AppComponent t** ype — 输入源的类型。输入源包括 AWS CloudFormation 堆栈、MyApplications 应用程序 AWS Resource Groups、Terraform 状态文件和手动添加的资源。
**注意**  
要编辑您的 Amazon EKS 集群，请完成**要编辑 AWS Resilience Hub 应用程序的输入源**过程中的步骤。
   + **物理 ID** — 分配给资源的实际标识符，如 Amazon EC2 实例 ID 或 S3 存储桶名称。
   + **已包含** — 指示 AWS Resilience Hub 是否将这些资源包含在应用程序中。
   + **AppComponents**— 在发现该资源的应用程序结构时分配给该资源的 AWS Resilience Hub 组件。
   + **名称** — 应用程序资源的名称。
   + **帐户**-拥有物理资源的 AWS 帐户。

1. 选择**保存并更新**。

# 删除 AWS Resilience Hub 应用程序
<a name="applications-delete"></a>

在达到 50 个应用程序的最大限制后，必须先删除一个或多个应用程序，然后才能添加更多应用程序。

**删除 应用程序**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择要删除的应用程序。

1. 选择 **Actions （操作)**，然后选择 **Delete application （删除应用程序)**。

1. 要确认删除，请在**删除**框中输入**删除**，然后选择**删除**。

# 应用程序配置参数
<a name="app-config"></a>

AWS Resilience Hub 提供了一种输入机制，用于收集有关与您的应用程序关联的资源的其他信息。利用这些信息， AWS Resilience Hub 将更深入地了解您的资源并提供更好的弹性建议。

**应用程序配置参数**章节列出了对 AWS Elastic Disaster Recovery提供跨区域失效转移支持的所有配置参数。您可以通过以下方式标识配置参数：
+ **主题** — 指出已配置的应用程序区域。例如，故障转移配置。
+ **目的**-指明 AWS Resilience Hub 要求提供信息的原因。
+ **参数**-表示特定于应用领域的详细信息，这些详细信息 AWS Resilience Hub 将用于为您的应用程序提供建议。当前，此参数仅使用一个故障转移区域和一个关联账户的键值。

# 更新应用程序配置参数
<a name="update-app-config"></a>

本部分允许您更新您的配置参数 AWS Elastic Disaster Recovery 并发布应用程序，以包含更新的弹性评估参数。

**更新应用程序配置参数**

1. 在导航窗格中，选择 **应用程序**。

1. 在**应用程序**页面上，选择您要编辑的应用程序的名称。

1. 选择**应用程序配置参数**选项卡。

1. 选择**更新**。

1. 在**帐户 ID** 框中输入失效转移帐户 ID。

1. 从**区域**下拉列表中选择失效转移区域。
**注意**  
如果要禁用此功能，请从下拉列表中选择“**-**”。

1. 选择**更新并发布**。

# 管理弹性策略
<a name="resiliency-policies"></a>

本部分介绍如何为您的应用程序创建弹性策略。正确设置弹性策略使您能够了解应用程序的弹性状态。弹性策略包含信息和目标，您可以使用这些信息和目标来评估您的应用程序是否可以从中断类型（例如软件、硬件、可用区或 AWS 区域）中恢复。这些策略不会更改或影响实际应用程序。多个应用程序可以具有相同的弹性策略。

创建弹性策略时，您可定义目标：恢复时间目标（RTO）和恢复点目标（RPO）。这些目标决定了应用程序是否符合弹性策略。将策略附加到您的应用程序并运行弹性评测。您可以为您的组合中不同类型的应用程序创建不同的策略。例如，实时交易应用程序的弹性策略将与月度报告应用程序不同。

**注意**  
AWS Resilience Hub 允许您在弹性策略的 R **TO** 和 **RPO** 字段中输入零值。但是，在评估您的申请时，可能的最低评估结果接近于零。因此，如果您在 **RTO** 和 **RPO** 字段中输入零值，则估计工作负载 RTO 和估计工作负载 RPO 结果将接近零，并且您的应用程序的**合规性状态**将设置为**违反策略**。

该评测会根据附加的弹性策略评估您的应用程序配置。在流程结束时， AWS Resilience Hub 评估您的应用程序如何根据弹性策略中的恢复目标进行衡量。

您可以在“应用程序”中创建弹性策略，也可以在“弹性策略”中创建。您可以访问有关您的策略的相关详细信息，也可以对其进行修改和删除。

AWS Resilience Hub 使用您的 RTO 和 RPO 目标来衡量针对以下潜在中断类型的弹性：
+ **应用程序** – 丢失所需的软件服务或进程。
+ **云基础设施** – 丢失硬件，例如 EC2 实例。
+ **云基础设施可用区（AZ）** – 一个或多个可用区不可用。
+ **云基础设施区域** - 一个或多个区域不可用。

AWS Resilience Hub 使您能够创建自定义的弹性策略或使用我们推荐的开放标准弹性策略。创建自定义策略时，请命名和描述您的策略，并选择定义您的策略的相应级别或层级。这些层级包括：基础 IT 核心服务、关键任务、关键、重要和非关键。

选择适合您的应用程序类别的层级。例如，您可以将实时交易系统归类为关键系统，而将月度报告应用程序归类为非关键应用程序。使用我们的标准策略时，您可以选择具有预配置层级的弹性策略以及按中断类型划分的 RTO 和 RPO 目标值。如有必要，您可以更改层级以及 RTO 和 RPO 目标。

您可以在“弹性策略”中创建弹性策略，也可以在描述新应用程序时创建弹性策略。

# 创建弹性策略
<a name="create-policy"></a>

在中 AWS Resilience Hub，您可以创建弹性策略。弹性策略包含信息和目标，用于评估您的应用程序能否从中断类型（例如软件、硬件、可用区或 AWS 区域）中恢复。这些策略不会更改或影响实际应用程序。多个应用程序可以具有相同的弹性策略。

创建弹性策略时，您可定义恢复时间目标（RTO） 和恢复点目标（RPO） 目标。在运行评估时， AWS Resilience Hub 确定估计应用程序是否符合弹性策略中定义的目标。

该评测会根据附加的弹性策略评估您的应用程序配置。在流程结束时， AWS Resilience Hub 评估您的应用程序如何根据弹性策略中的目标进行衡量。

**注意**  
AWS Resilience Hub 允许您在弹性策略的 R **TO** 和 **RPO** 字段中输入零值。但是，在评估您的申请时，可能的最低评估结果接近于零。因此，如果您在 **RTO** 和 **RPO** 字段中输入零值，则估计工作负载 RTO 和估计工作负载 RPO 结果将接近零，并且您的应用程序的**合规性状态**将设置为**违反策略**。

您可以在“应用程序”中创建弹性策略，也可以在“弹性策略”中创建。您可以访问有关您的策略的相关详细信息，也可以对其进行修改和删除。

**在“应用程序”中创建弹性策略**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 通过 [添加标签](add-tags.md)，从 [从添加应用程序开始](describe-app-intro.md) 完成这些过程。

1. 在**弹性策略**部分，选择**创建弹性策略**。

   **创建弹性策略**页面将显示。

1. 在**选择创建方法**部分，选择**创建策略**。

1. 输入策略的名称。

1. （可选）输入策略的描述。

1. Master key （主密钥）从下拉列表中选择以下**选项**之一：
   + **基础 IT 核心服务** 
   + **关键任务**
   + **重大** 
   + **重要提示 **
   + **非关键** 

1. 对于 **RTO** 和 **RPO** 目标，在**客户应用程序 RTO 和 RPO** 下，在框中输入一个数值，然后选择该值所代表的时间单位。

   在**基础设施**和**可用区**的**基础设施 RTO 和 RPO** 下重复这些条目。

1. （可选）如果您有多区域应用程序，则可能需要定义区域的 RTO 和 RPO 目标。

   启用**区域**。对于区域 **RTO** 和 **RPO** 目标，在**客户应用程序 RTO和 RPO** 下，在框中输入一个数值，然后选择该值表示的时间单位。

1. （可选）如果要添加标签，则可以在稍后继续创建策略时执行此操作。有关标签的更多信息，请参阅*AWS 一般参考指南*中的[标记资源](https://docs.aws.amazon.com//general/latest/gr/aws_tagging.html)。

1. 选择 **Create**（创建）以创建策略。

**在“弹性策略”中创建弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**弹性策略**部分，选择**创建弹性策略**。

   **创建弹性策略**页面将显示。

1. 输入策略的名称。

1. （可选）输入策略的描述。

1. 请选择以下**选项**之一。
   + **基础 IT 核心服务** 
   + **关键任务**
   + **重大** 
   + **重要提示 **
   + **非关键** 

1. 对于 **RTO** 和 **RPO** 目标，在**客户应用程序 RTO 和 RPO**下，在框中输入一个数值，然后选择该值所代表的时间单位。

   在**基础设施**和**可用区**的**基础设施 RTO 和 RPO** 下重复这些条目。

1. （可选）如果您有多区域应用程序，则可能需要定义区域的 RTO 和 RPO 目标。

   启用**区域**。对于 **RTO** 和 **RPO** 目标，在**客户应用程序 RTO 和 RPO**下，在框中输入一个数值，然后选择该值所代表的时间单位。

1. （可选）如果要添加标签，则可以在稍后继续创建策略时执行此操作。有关标签的更多信息，请参阅*AWS 一般参考指南*中的[标记资源](https://docs.aws.amazon.com//general/latest/gr/aws_tagging.html)。

1. 选择 **Create**（创建）以创建策略。

**根据建议的策略创建弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**选择创建方法**部分，选择**根据建议的策略选择策略**。

1. 在**弹性策略**部分，选择**创建弹性策略**。

   **创建弹性策略**页面将显示。

1. 输入弹性策略的名称。

1. （可选）输入策略的描述。

1. 在**建议的弹性策略**部分下，查看并选择以下预先确定的弹性策略层级之一：
   + **非关键应用程序** 
   + **重要应用程序**
   + **关键应用程序** 
   + **全局关键应用程序**
   + **关键任务应用程序** 
   + **全局关键任务应用程序**
   + **基础核心服务**

1. 要创建弹性策略，请选择**创建策略**。

## 访问弹性策略的详细信息
<a name="manage-policy"></a>

当您打开弹性策略时，您会看到有关该策略的重要细节。您也可以编辑或删除队列。

弹性策略详细信息包括两个主要视图：**摘要**和**标签**。

**摘要**

*基本信息*

提供有关弹性策略的以下信息：名称、描述、层级、成本层级和创建日期。

*估计工作负载 RTO 和估计工作负载 RPO*

显示与此弹性策略相关的估计工作负载 RTO 和估计工作负载 RPO 中断类型。

**标签**

使用此视图管理、添加和删除此应用程序内部的标签。

**在“弹性策略”详细信息中编辑弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**弹性策略**中，打开弹性策略。

1. 选择**编辑**。在**基本信息**、**RTO** 和 **RPO** 字段中输入相应的更改。然后选择 **Save changes （保存更改)**。

**在“弹性策略”中编辑弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**弹性策略**中，选择一个弹性策略。

1. 选择 **Actions**，然后选择 **Edit**。

1. 在**基本信息**、**RTO** 和 **RPO** 字段中输入相应的更改。然后选择 **Save changes （保存更改)**。

**删除“弹性策略”详细信息中的弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**弹性策略**中，打开弹性策略。

1. 选择 **Delete （删除)**。选择 **Delete role（删除角色）**，然后确认删除。

**删除“弹性策略”中的弹性策略**

1. 从左侧导航菜单中，选择**策略**。

1. 在**弹性策略**中，选择一个弹性策略。

1. 选择 ** Actions （操作）**，然后选择 **Delete （删除）**。

1. 选择 **Delete role（删除角色）**，然后确认删除。

# 在中运行和管理弹性评估 AWS Resilience Hub
<a name="resil-assessments"></a>

当您的应用程序发生更改时，您应该进行弹性评估。评估会将每个应用程序组件配置与策略进行比较，并提出警报、SOP 和测试建议。这些配置建议可以加快恢复过程。

警报建议可帮助您设置用于检测中断的警报。SOP 建议提供了对常见恢复过程（例如从备份中恢复）进行管理的脚本。测试建议提供了验证您的配置是否正常运行的建议。例如，您可以测试应用程序是否在自动恢复过程（例如由于网络问题而导致的自动扩展或负载均衡）中恢复。您可以测试当资源达到限值时是否会触发应用程序警报。您还可以测试在您指定的条件下 SOPs 工作效果如何。

**Topics**
+ [在中进行弹性评估 AWS Resilience Hub](run-assessment.md)
+ [查看评估报告](review-assessment.md)
+ [删除弹性评估](delete-assessment.md)

# 在中进行弹性评估 AWS Resilience Hub
<a name="run-assessment"></a>

您可以从中的 AWS Resilience Hub多个位置进行弹性评估。有关应用程序的更多信息，请参阅 [描述和管理 AWS Resilience Hub 应用程序](applications.md)。

**从“操作”菜单中运行弹性评估**

1.  在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

1. 从**操作**菜单中选择**评估弹性**。

1. 在**运行弹性评估**对话框中，您可以为评估输入唯一的名称或使用生成的名称。

1. 选择**运行**。

   要查看评估报告，请在应用程序中选择**评估**。有关更多信息，请参阅 [查看评估报告](review-assessment.md)。

**从“评估”选项卡中运行弹性评估**

当您的应用程序或弹性策略发生更改时，您可以运行新的弹性评估。

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

1. 选择**评估**选项卡。

1. 选择**运行弹性评估**。

1. 在**运行弹性评估**对话框中，您可以为评估输入唯一的名称或使用生成的名称。

1. 选择**运行**。

   要查看评估报告，请在应用程序中选择**评估**。有关更多信息，请参阅 [查看评估报告](review-assessment.md)。

# 查看评估报告
<a name="review-assessment"></a>

您可以在应用程序的**评估**视图中找到评估报告。

**查找评估报告**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，打开一个应用程序。

1. 在 “**评估**” 选项卡中，从 “**弹性评估” 部分选择评估**报告。

打开报告时，可以看到以下内容：
+ 评估报告的总体概述
+ 提高弹性的建议。
+ 设置警报 SOPs和测试的建议
+ 如何创建和管理标签以搜索和筛选 AWS 资源

## 评测报告
<a name="review-section"></a>

本节概述了评估报告。 AWS Resilience Hub 列出了每种中断类型和相关的应用程序组件。还列出了您的实际 RTO 和 RPO 策略，并确定应用程序组件能否实现策略目标。

**概述**

显示应用程序的名称、弹性策略的名称以及报告的创建日期。

**检测到的资源漂移**

本部分列出了在最新版本的已发布应用程序中之后添加或删除的所有资源。**选择 “**重新导入输入源**”，在 “输入源” 选项卡中重新导入所有输入源（其中包含漂移的资源）。**选择 “**发布并评估**”，将更新的资源包含在应用程序中，并获得准确的弹性评估。

您可以使用以下方法识别偏移的输入源：
+ **逻辑 ID** - 指示资源的逻辑 ID。逻辑 ID 是用于识别 AWS CloudFormation 堆栈、Terraform 状态文件、MyApplications 应用程序或中的资源的名称。 AWS Resource Groups
+ **更改**-表示输入资源是**添加**还是**移除**。
+ **源名称** - 指示资源名称。选择源名称以在相应的应用程序中查看其详细信息。对于手动添加的输入源，该链接将不可用。例如，如果您选择从 AWS CloudFormation 堆栈导入的源名称，则系统会将您重定向到上的堆栈详细信息页面 AWS CloudFormation。
+ **资源类型** - 指示资源类型。
+ **帐户**-表示拥有物理资源的 AWS 帐户。
+ **区域** - 指示资源所在的 AWS 区域。

**RTO**

以图形方式显示估计应用程序能否达到弹性策略的目标。这是基于在不对组织造成重大损害的情况下可以将应用程序关闭的时间长度。该评估提供了估计的工作负载 RTO。

**RPO**

以图形方式显示估计应用程序能否达到弹性策略的目标。这是基于在对业务造成重大损害之前数据可能丢失的时间长度。该评估提供了估计的工作负载 RPO。

**详细信息**

使用**所有结果**和**应用程序合规性偏差**选项卡详细描述每种中断类型。**所有结果**选项卡显示所有中断，包括合规性偏差，而**应用程序合规性偏差**选项卡仅显示合规性偏差。中断类型包括**应用程序**、云基础设施（**基础设施**和**可用区**）和**区域**，并提供以下相关信息：
+ **AppComponent**

  构成应用程序的资源。例如，您的应用程序可能具有数据库或计算组件。
+ **估计的 RTO**

  指示您的策略配置是否符合您的策略要求。我们提供两个值，即我们的**估计的 RTO** 和您的**定向 RTO**。例如，如果您在**定向 RTO**下看到的值为 **2h**，在**估计的工作负载 RTO** 下看到的值为 **40m**，则表示我们提供的估计的工作负载 RTO 为 40 分钟，而您的应用程序的当前 RTO 为两小时。我们的估计的工作负载 RTO 计算是基于配置，而不是策略。因此，无论您选择哪种策略，多可用区数据库在可用区故障时的估计的工作负载 RTO 均相同。
+ **RTO 偏差**

  指示您的应用程序与上一次成功评估的估计的工作负载 RTO 相比的偏差持续时间。我们提供了两个值，即我们的**估计的 RTO** 和 **RTO 偏差**。例如，如果您在**估计的 RTO** 下看到的值为 **2h**，在 **RTO 偏差**下看到的值为 **40m**，则表示您的应用程序与上一次成功评估的估计的工作负载 RTO 之间偏差 40 分钟。
+ **估计的 RPO**

  显示 AWS Resilience Hub 根据您为每个应用程序组件设置的**定向 RPO** 策略而估算出的实际**估计的工作负载 RPO** 策略。例如，您可能已在弹性策略中将可用区故障的 RPO 目标设置为一小时。计算出的估计结果可能接近于零。这是假设我们提交每个事务的 Amazon Aurora 在跨越多可用区的六个节点中有四个节点成功完成。 point-in-time恢复可能需要五分钟。

  您唯一可以选择不提供的 RTO 和 RPO 目标是“区域”。对于某些应用程序，当 AWS 服务存在至关重要的依赖项时，对恢复进行计划非常有用，因为该服务可能在整个“区域”不可用。

  如果您选择此选项，例如为该“区域”设置 RTO 或 RPO 目标，您将收到此类故障的估计恢复时间和操作建议。
+ **RPO 偏差**

  指示您的应用程序与上一次成功评估的估计的工作负载 RPO 相比的偏差持续时间。我们提供了两个值，即我们的**估计的 RPO** 和 **RPO 偏差**。例如，如果您在**估计的 RPO** 下看到的值为 **2h**，在 **RPO 偏差**下看到的值为 **40m**，则表示您的应用程序与上一次成功评估的估计的工作负载 RPO 之间偏差 40 分钟。

# 查看弹性建议
<a name="resil-recs"></a>

弹性建议对应用程序组件进行评估，并根据估计的工作负载 RTO、估计的工作负载 RPO、成本和最小更改来建议如何进行优化。

使用 AWS Resilience Hub，您可以使用 “**为什么要选择此**选项” 中的以下推荐选项之一来优化弹性：

**注意**  
AWS Resilience Hub 提供了最多三个 AWS Resilience Hub 推荐选项。
如果您设置了区域 RTO 和 RPO 目标，则会在推荐选项中 AWS Resilience Hub 显示**针对区域 RTO/RPO 进行优化**。如果未设置区域 RTO 和 RPO 目标，则会显示**针对可用区 (AZ) RTO/RPO 进行优化**。有关在创建弹性策略时设定区域 RTO/RPO 目标的更多信息，请参阅[创建弹性策略](create-policy.md)。
应用程序及其配置的估计工作负载 RTO 和估计的工作负载 RPO 值是通过考虑数据量和个人 AppComponents数据量来确定的。但是，这些数值只是估算值。您应该使用自己的测试（例如 AWS Fault Injection Service）来测试应用程序的实际恢复时间。

**针对可用区 RTO/RPO 进行优化**

可用区 (AZ) 中断期间可能的最低估计工作负载恢复时间 (RTO/RPO)。如果您的配置更改不足以满足 RTO 和 RPO 目标，则系统会告知您预计的最低工作负载可用区恢复时间，以使您的配置接近达到策略的可能性。

**针对区域 RTO/RPO 进行优化**

区域性中断期间可能的最低估计工作负载恢复时间 (RTO/RPO)。如果您的配置更改不足以满足 RTO 和 RPO 目标，则系统会告知您预计的最低工作负载区域恢复时间，以使您的配置接近达到策略的可能性。

**成本优化**

这是您可能产生的最低成本，并且仍然符合您的弹性策略。如果您的配置无法进行充分的更改以实现优化目标，则系统会告知您可以花费的最低成本来使您的配置接近满足策略的可能性。

**针对最小更改进行优化**

实现政策目标所需的最低限度变动。如果您的配置无法充分更改以满足优化目标，则系统会告知您建议的更改，这些更改可以使您的配置接近满足策略的可能性。

优化类别细分中包括以下项目：
+ **描述**

  描述建议的配置 AWS Resilience Hub。
+ **更改**

  描述了切换到建议配置所需任务的文本更改列表。
+ **基本成本**

  与建议的变更相关的估计成本。
**注意**  
**基本费用**可能因使用情况而异，并且不包括企业折扣计划 (EDP) 的任何折扣或优惠。
+ **估计的工作负载 RTO 和 RPO**

  更改后的估计的工作负载 RTO 和估计的工作负载 RPO。

AWS Resilience Hub 评估应用程序组件 (AppComponent) 是否符合弹性策略。如果 AppComponent 不符合弹性政策，并且 AWS Resilience Hub 无法提出任何促进合规性的建议，则可能是因为在的限制范围内 AppComponent 无法满足所选人员的恢复时间。 AppComponent AppComponent 限制的示例包括资源类型、存储大小或资源配置。

为便于遵守弹性政策，请更改弹性策略的资源类型 AppComponent 或更新弹性策略，使其与资源所能提供的内容保持一致。 AppComponent 

# 审查操作建议
<a name="ops.reqs"></a>

操作建议包含设置警报和通过 AWS CloudFormation 模板 AWS FIS 进行实验的建议。 SOPs

AWS Resilience Hub 提供 AWS CloudFormation 模板文件供您下载并以代码形式管理应用程序的基础架构。因此，我们在 AWS CloudFormation 中提供了建议，以便您可以将其添加到应用程序代码中。如果 AWS CloudFormation 模板文件的大小超过 1 MB 且包含的资源超过 500 个，则 AWS Resilience Hub 生成多个 AWS CloudFormation 模板文件，其中每个文件的大小不超过 1 MB，最多包含 500 个资源。如果将 AWS CloudFormation 模板文件拆分为多个文件，则 AWS CloudFormation 模板文件名将附加在后面`partXofY`，其中`X`表示序列中的文件号，并`Y`表示 AWS CloudFormation 模板文件被分成的文件总数。例如，如果将模板文件 `big-app-template5-Alarm-104849185070-us-west-2.yaml` 分为四个文件，则文件名将如下所示：
+ `big-app-template5-Alarm-104849185070-us-west-2-part1of4.yaml`
+ `big-app-template5-Alarm-104849185070-us-west-2-part2of4.yaml`
+ `big-app-template5-Alarm-104849185070-us-west-2-part3of4.yaml`
+ `big-app-template5-Alarm-104849185070-us-west-2-part4of4.yaml`

但是，对于大型 AWS CloudFormation 模板，您需要提供 Amazon 简单存储服务 URI，而不是 CLI/API 使用本地文件作为输入。

在中 AWS Resilience Hub，您可以执行以下操作：
+ 您可以配置选定的警报 SOPs、和 AWS FIS 实验。要配置警报和 AWS FIS 实验，请选择相应的建议并输入一个唯一的名称。 SOPs AWS Resilience Hub 根据您选择的推荐创建模板。在**模板**中，您可以通过 Amazon Simple Storage Service（Amazon S3）URL 访问您创建的模板。
+ 您可以包括或排除在任何时间点为您的应用推荐的选定警报和 AWS FIS 实验。 SOPs有关更多信息，请参阅[包含或排除操作建议](exclude-recommend.md)。
+ 您还可以搜索、创建、添加、移除和管理应用程序的标签，并查看与应用程序关联的所有标签。

# 包含或排除操作建议
<a name="exclude-recommend"></a>

AWS Resilience Hub 提供了一个选项 SOPs，用于包含或排除为提高应用程序在任何时间点的弹性分数而推荐的警报和 AWS FIS 实验（测试）。只有在您进行新的评估后，包含和排除操作建议才会对应用程序的弹性得分产生影响。因此，我们建议您进行评估，以获取更新的弹性分数，并了解其对应用程序的影响。

有关对每个应用程序包含或排除建议的权限进行限制的更多信息，请参阅 [限制包含或排除 AWS Resilience Hub 推荐的权限](include-exclude-limit-permissions.md)。

**在应用程序中包含或排除操作建议**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，打开一个应用程序。

1. 选择**评估**，然后从**弹性评估**表中选择一项评估。如果您没有进行评估，请完成 [在中进行弹性评估 AWS Resilience Hub](run-assessment.md) 中的过程，然后返回此步骤。

1. 选择**操作建议**选项卡。

1. 要在应用程序中包含或排除操作建议，请完成以下过程：

**在应用程序中包含或排除建议的警报**

1. 要排除警报，请完成以下步骤：

   1. 在**警报**选项卡下，从**警报**表中选择要排除的所有警报（处于**未实施**状态）。您可以从**状态**列中识别警报的当前实施状态。

   1. 从**操作**中选择**排除选定项**。

   1. 从**排除建议**对话框中，选择以下原因之一（可选），然后选择**排除选定项**，将所选警报从应用程序中排除。
      + **已实施 — 如果您已经**在 Amazon 或任何其他第三方服务提供商等 AWS 服务中实现了这些警报 CloudWatch，请选择此选项。
      + **不相关** — 如果警报不符合您的业务需求，请选择此选项。
      + **实施起来太复杂** — 如果您认为这些警报太复杂而无法实施，请选择此选项。
      + **其他** — 选择此选项以指明排除该建议的任何其他原因。

1. 要包含警报，请完成以下步骤：

   1. 在**警报**选项卡下，从**警报**表中选择要包含的所有警报（处于**已排除**状态）。您可以从**状态**列中识别警报的当前实施状态。

   1. 从**操作**中选择**包含选定项**。

   1. 从**包含建议**对话框中，选择**包含选定项**，将所有选定的警报都包含在应用程序中。

**在应用程序中加入或排除推荐的标准操作程序 (SOPs)**

1. 要排除推荐项 SOPs，请完成以下步骤：

   1. **在 “**标准操作程序**” 选项卡下，从**SOPs**表中选择所有要排除的 SOPs （处于 “**已实施” 或 “未实施**” 状态）。**您可以从**状态**列中识别 SOP 的当前实施状态。

   1. 从 “**操作**” 中选择 “**排除选定项**”，将所选内容 SOPs 从应用程序中排除。

   1. 从 “**排除推荐**” 对话框中，选择以下原因之一（可选），然后选择 “**排除选定项**”，将所选内容 SOPs 从应用程序中排除。
      + **已实施 — 如果您已经**在服务或任何其他第三方 AWS 服务提供商 SOPs 中实现了这些功能，请选择此选项。
      + **不相关** — 如果 SOPs 不适合您的业务需求，请选择此选项。
      + **实施起来太复杂** — 如果您认为实施起来太复杂 SOPs ，请选择此选项。
      + **无** — 如果您不想指明原因，请选择此选项。

1. 要包含 SOPs，请完成以下步骤：

   1. 在 “**标准操作程序**” 选项卡下，从**SOPs**表中选择要包含的所有警报（处于 “**已排除**” 状态）。您可以从**状态**列中识别警报的当前实施状态。

   1. 从**操作**中选择**包含选定项**。

   1. 从 “**包括推荐**” 对话框中，选择 “**包括选定**内容”，将所有选定内容包括在应用程序 SOPs 中。

**在应用程序中包含或排除建议的测试**

1. 要排除建议的测试，请完成以下步骤：

   1. 在**错误注入实验模板**选项卡下，从**错误注入实验模板**表中，选择要排除的所有测试（处于**已实施**或**未实施**状态）。您可以从**状态**列中识别测试的当前实施状态。

   1. 从**操作**中选择**排除选定项**。

   1. 从**排除建议**对话框中，选择以下原因之一（可选），然后选择**排除选定项**，将选定的 AWS FIS 实验从应用程序中排除。
      + **已实施 — 如果您已经**在服务或任何其他第三方 AWS 服务提供商中实施了这些测试，请选择此选项。
      + **不相关** — 如果测试不符合您的业务需求，请选择此选项。
      + **实施起来太复杂** — 如果您认为这些测试太复杂而无法实施，请选择此选项。
      + **无** — 如果您不想指明原因，请选择此选项。

1. 要包含建议的测试，请完成以下步骤：

   1. 在**错误注入实验模板**选项卡下，从**错误注入实验模板**表中选择要包含的所有测试（处于**已排除**状态）。您可以从**状态**列中识别测试的当前实施状态。

   1. 从**操作**中选择**包含选定项**。

   1. 从**包括建议**对话框中，选择**包含选定项**，将所有选定的测试都包含在应用程序中。

# 删除弹性评估
<a name="delete-assessment"></a>

您可以在应用程序的**评估**视图中删除弹性评估。

**删除弹性评估**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，打开一个应用程序。

1. 在**评估**中，选择**弹性评估**表中的评估报告。

1. 要确认删除，请选择**删除**。

   该报告不再出现在**弹性评估**表中。

# 通过 “弹性” 小组件运行和管理弹性评估
<a name="resil-assessments-resiliency-widget"></a>

AWS Resilience Hub 允许您对在 “我的应用程序” 中的 “弹性” 控件中创建和管理的应用程序进行评估。无论何时对应用程序进行修改，都建议通过弹性控件或控制台运行弹性评估。 AWS Resilience Hub 在此评估期间，将根据既定策略和最佳实践对每个应用程序组件的配置进行评估。根据此评估，评估会生成有关设置警报、创建标准操作程序 (SOPs) 和实施测试策略的建议。实施这些配置建议可以提高恢复过程的速度和效率，确保更快的事件响应并最大限度地减少潜在的停机时间。

警报建议可帮助您设置用于检测中断的警报。SOP 建议提供了对常见恢复过程（例如从备份中恢复）进行管理的脚本。测试建议提供了验证您的配置是否正常运行的建议。例如，您可以测试应用程序是否在自动恢复过程（例如由于网络问题而导致的自动扩展或负载均衡）中恢复。您可以测试当资源达到限值时是否会触发应用程序警报。您还可以测试在您指定的条件下 SOPs 工作效果如何。

**Topics**
+ [通过 “弹性” 小组件运行弹性评估](run-assessment-resiliency-widget.md)
+ [在 “弹性” 控件中查看评估摘要](review-assessment-resliency-widget.md)

# 通过 “弹性” 小组件运行弹性评估
<a name="run-assessment-resiliency-widget"></a>

对于在 “**我的应用程序” 小组件中创建的应用程序**，您现在可以从 “弹性” 小组件和控制台运行**弹性**评估。 AWS Resilience Hub 有关从 AWS Resilience Hub 控制台运行弹性评估的更多信息，请参阅[在中进行弹性评估 AWS Resilience Hub](run-assessment.md)。<a name="run-res-widget-new"></a>

**首次通过 “弹性” 小组件对现有 **MyApplications 应用程序**进行**弹性**评估**

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/)。

1. 展开左侧边栏并选择 **myApplications**。

1. 选择要为其运行评估的应用程序。

   作为先决条件，请确保已在 AWS 控制台中添加了 “**弹性**” 控件。要添加此控件，请完成以下步骤。

   1. 在 C **onsole Home 控制**面板的右上角或右下方，选择 **\$1Add 微件**。

   1. 选择**拖动指示器**（由控件标题栏左上角的六个垂直点表示），然后将其拖到**控制台主页**仪表板上。

1. 选择 “**评估应用程序**”。

1. 要选择用于访问当前账户中资源的现有 IAM 角色，请选择**使用 IAM 角色**，然后从选择 IAM 角色下拉列表**中选择一个 IAM 角色**。

   如果您想使用当前 IAM 用户来发现您的应用程序资源，请在**使用当前 IAM 用户**发现应用程序资源部分中选择使用当前 IAM 用户**权限，然后在 AWS Resilience Hub“**使用当前 IAM 用户发现应用程序资源” 部分中选择我知道我必须手动配置权限才能**启用所需的功能**。

1. 选择 “**评估**”。

   或者，打开 “**每日自动评估**”， AWS Resilience Hub 即可每天评估您的申请，无需支付任何额外费用。

   AWS Resilience Hub 执行以下操作：
   + 在中创建应用程序 AWS Resilience Hub 并自动发现和映射关联的资源。
   + 创建并分配新的韧性策略，其中包含恢复时间目标（RTO）和恢复点目标（RPO）的预定义值。也就是说，RTO 为四小时，RPO 为一小时。生成评估后，您可以修改弹性策略或从 AWS Resilience Hub 控制台分配不同的策略。有关更新韧性策略和附加其它策略的更多信息，请参阅[管理韧性策略](https://docs.aws.amazon.com/resilience-hub/latest/userguide/resiliency-policies.html?icmpid=docs_resiliencehub_help_panel_resiliency_policies)。
   + 评测应用程序对于 RTO 和 RPO 的韧性，并持续监控资源和配置更改以及发布结果。
**注意**  
在开始评测之前，建议使用 AWS Resilience Hub来评估进行评测所涉及的潜在成本。有关详细的定价信息，请参阅定[AWS Resilience Hub 价](https://aws.amazon.com//resilience-hub/pricing?icmpid=docs_resiliencehub_help_panel_resiliency_policies_hp)。<a name="rerun-res-widget"></a>

****通过 “弹性” 小组件对现有 **MyApplications 应用程序**重新运行弹性评估****

1. 登录 [AWS 管理控制台](https://console.aws.amazon.com/)。

1. 展开左侧边栏并选择 **myApplications**。

1. 选择要重新评估的应用程序。

   作为先决条件，请确保已在 AWS 控制台中添加了 “**弹性**” 控件。要添加此控件，请完成以下步骤。

   1. 在 C **onsole Home 控制**面板的右上角或右下方，选择 **\$1Add 微件**。

   1. 选择**拖动指示器**（由控件标题栏左上角的六个垂直点表示），然后将其拖到**控制台主页**仪表板上。

1. 从 “**弹性**” 小组件中选择 “**重新评估**”。

   或者，打开 “**每日自动评估**”， AWS Resilience Hub 即可每天评估您的申请，无需支付任何额外费用。

# 在 “弹性” 控件中查看评估摘要
<a name="review-assessment-resliency-widget"></a>

**弹性**小组件显示评估结果的快照，该快照将为您提供最重要且可行的见解，了解 MyApplications 应用程序的弹性、潜在漏洞、关键性能指标 (KPIs) 和建议的改进措施。可以使用以下内容，从最新的评测中了解有关应用程序韧性状况的更多信息：
+ **韧性得分历史** - 此图表显示应用程序的韧性得分长达一年的趋势。
+ **韧性得分** - 表示最新评测中评估的应用程序的韧性得分。该分数反映了您的应用程序在满足应用程序弹性策略以及实施警报、标准操作程序 (SOPs) 和 AWS Fault Injection Service (AWS FIS) 实验方面的建议的遵循程度。在 AWS Resilience Hub 控制台中 “**摘要**” 选项卡下的 “**弹性分数**” 部分选择该数字以查看更多信息。有关更多信息，请参阅 [评测报告](review-assessment.md#review-section)。
+ **违反政策** — 选择下面的数字，在 AWS Resilience Hub 控制台的 “**评估报告**” 窗格中查看所有违反应用程序附加策略的应用程序组件 (AppComponents)。有关更多信息，请参阅 [评测报告](review-assessment.md#review-section)。
+ **政策偏差** — AppComponents 表示在上一次评估中遵守政策但在当前评估中未遵守政策的。选择下面的数字， AppComponents 在 AWS Resilience Hub 控制台的**评估报告**窗格中查看。有关更多信息，请参阅 [评测报告](review-assessment.md#review-section)。
+ **资源漂移** — 选择下面的数字，在控制台的评估**报告窗格中查看所有偏离最新评估**的 AWS Resilience Hub 资源。有关更多信息，请参阅 [评测报告](review-assessment.md#review-section)。
+ **转到 Resilience Hub** — 选择此选项可在 AWS Resilience Hub 控制台中打开您的应用程序。

# 管理警报
<a name="alarms"></a>

在运行弹性评估时，作为操作建议的一部分， AWS Resilience Hub 建议设置 Amazon CloudWatch 警报以监控您的应用程序弹性。这些警报建议是基于您当前应用程序配置的资源和组件。如果应用程序中的资源和组件发生变化，则应运行弹性评估，以确保更新后的应用程序有正确的 Amazon CloudWatch 警报。

此外， AWS Resilience Hub 现在可以自动检测任何已配置的 Amazon CloudWatch 警报并将其集成到其弹性评估中，从而更全面地了解应用程序的弹性状况。这项新功能将 AWS Resilience Hub 建议与您当前的监控设置相结合，简化了警报管理并提高了评估的准确性。如果您已实施了 Amazon CloudWatch 警报 AWS Resilience Hub 但未自动检测到该警报，则可以排除该警报，并将原因选择为 “**已实施**”。有关排除建议的更多信息，请参阅[包含或排除操作建议](exclude-recommend.md)。

AWS Resilience Hub 提供了一个模板文件 (`README.md`)，允许您创建 AWS Resilience Hub 内部 AWS （例如 Amazon CloudWatch）或外部推荐的警报 AWS。警报中提供的默认值基于创建这些警报时使用的最佳实践。

**Topics**
+ [根据操作建议创建警报](create-alarm.md)
+ [查看警报](view-alarm.md)

# 根据操作建议创建警报
<a name="create-alarm"></a>

AWS Resilience Hub 创建包含在 Amazon 中创建所选警报的详细信息的 CloudFormation 模板 CloudWatch。生成模板后，您可以通过 Amazon S3 URL 访问该模板，下载该模板并将其放入您的代码管道中，或者通过 CloudFormation 控制台创建堆栈。

要根据 AWS Resilience Hub 建议创建警报，您必须为推荐的警报创建 CloudFormation 模板并将其包含在代码库中。

**在操作建议中创建警报**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，选择您的应用程序。

1. 选择**评估**选项卡。

   在**弹性评估**表中，您可以使用以下信息来标识您的评估：
   + **名称** — 创建评估时提供的评估名称。
   + **状态** — 指示评估的实施状态。
   + **合规性状态** — 指示评估是否符合弹性策略。
   + **弹性偏差状态** — 指示您的应用程序是否与之前的成功评估有所偏差。
   + **应用程序版本** — 应用程序的版本。
   + **调用者** — 指示调用评估的角色。
   + **开始时间** — 表示评估的开始时间。
   + **结束时间** — 表示评估的结束时间。
   + **ARN** — 评估的 Amazon 资源名称（ARN）。

1. 从**弹性评估**表中选择一项评估。如果您没有进行评估，请完成 [在中进行弹性评估 AWS Resilience Hub](run-assessment.md) 中的过程，然后返回此步骤。

1. 选择**操作建议**。

1. 如果默认情况下未选中，请选择**警报**选项卡。

   在**警报**表中，您可以使用以下方式标识建议的警报：
   + **名称** — 您为应用程序设置的警报的名称。
   + **描述** — 描述警报的目标。
   + **状态** — 表示 Amazon CloudWatch 警报的当前实施状态。

     该列显示以下值之一：
     + **已实施**-表示建议的警报已 AWS Resilience Hub 在您的应用程序中实现。选择下面的数字可对**警报**表进行筛选，以显示您的应用程序中实施的所有建议警报。
     + **未实现** — 表示您的应用程序中包含 AWS Resilience Hub 但未实现推荐的警报。选择下面的数字可对**警报**表进行筛选，以显示您的应用程序中未实施的所有建议警报。
     + 已@@ **排除**-表示您的应用程序中 AWS Resilience Hub 已排除推荐的警报。选择下面的数字可对**警报**表进行筛选，以显示从您的应用程序中排除的所有建议警报。有关包含和排除建议警报的更多信息，请参阅[包含或排除操作建议](https://docs.aws.amazon.com/resilience-hub/latest/userguide/exclude-recommend.html?icmpid=docs_resiliencehub_help_panel_operational_recommendations_alarms)。
     + **非活动** — 表示警报已部署到亚马逊 CloudWatch，但亚马逊中的状态设置为 **INSUFKIENT\$1DATA**。 CloudWatch选择下面的数字可对**警报**表进行筛选，以显示所有已实施但非活动的警报。
   + **配置** — 指示是否有任何待处理的配置依赖项需要解决。
   + **类型** — 表示警报的类型。
   + **AppComponent**— 表示与此警报关联的应用程序组件 (AppComponents)。
   + **参考 ID** — 表示中 AWS CloudFormation 堆栈事件的逻辑标识符 AWS CloudFormation。
   + **建议 ID** — 表示中 AWS CloudFormation 堆栈资源的逻辑标识符 AWS CloudFormation。

1. 在**警报**选项卡中，如要根据特定状态筛选**警报**表中的警报建议，请在该状态下选择一个数字。

1. 选择要为应用程序设置的推荐警报，然后选择**创建 CloudFormation 模板**。

1. 在 “**创建 CloudFormation 模板**” 对话框中，您可以使用自动生成的名称，也可以在 CloudFormation 模板名称框中输入**CloudFormation 模板的名称**。

1. 选择**创建**。创建 AWS CloudFormation 模板可能需要几分钟。

   完成以下过程以将建议包含在代码库中。

**要将 AWS Resilience Hub 建议包括在内，请输入您的代码库**

1. 选择**模板**选项卡以查看刚才创建的模板。您可以使用以下方式来标识模板：
   + **名称** — 创建评估时提供的评估名称。
   + **状态** — 指示评估的实施状态。
   + **类型** — 表示操作建议的类型。
   + **格式** — 表示创建模板的格式（JSON/文本）。
   + **开始时间** — 表示评估的开始时间。
   + **结束时间** — 表示评估的结束时间。
   + **ARN** — 模板的 ARN

1. 在**模板详细信息**下，选择**模板 S3 路径**下方的链接，在 Amazon S3 控制台中打开模板对象。

1. 在 Amazon S3 控制台中，从 “**对象**” 表中选择 “警报” 文件夹链接。

1. 要复制 Amazon S3 路径，请选中 JSON 文件前面的复选框并选择**复制 URL**。

1. 从 AWS CloudFormation 控制台创建 AWS CloudFormation 堆栈。有关创建 AWS CloudFormation 堆栈的更多信息，请参阅[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

   创建 AWS CloudFormation 堆栈时，必须提供从上一步中复制的 Amazon S3 路径。

# 查看警报
<a name="view-alarm"></a>

您可以查看为监控应用程序弹性而设置的所有活动警报。 AWS Resilience Hub 使用 CloudFormation 模板存储警报详情，这些详细信息反过来又用于在 Amazon CloudWatch 中创建警报。您可以使用 Amazon S3 URL 访问该 CloudFormation 模板，也可以将其下载并放入您的代码管道或通过 CloudFormation 控制台创建堆栈。

要从控制面板查看警报，请从左侧导航菜单中选择**控制面板**。在**已实现的警报**表中，您可以使用以下信息识别已实施的警报：
+ **受到影响的应用程序** — 已实施此警报的应用程序的名称。
+ **活动警报** — 表示应用程序触发的活动警报数量。
+ **FIS 正在进行中** — 表示当前正在为您的应用程序运行的 AWS FIS 实验。

**查看应用程序中实现的警报**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

1. 在应用程序摘要页面中，**已实施的警报**表显示了在您的应用程序中实施的所有建议警报。

   要在**已实施的警报**表中查找特定警报，请在**按文本、属性或值查找警报**框中，选择以下字段之一，选择一个操作，然后键入一个值。
   + **警报名称** — 您为应用程序设置的警报的名称。
   + **描述** — 描述警报的目标。
   + **状态** — 表示 Amazon CloudWatch 警报的当前实施状态。

     该列显示以下值之一：
     + **已实施**-表示建议的警报已 AWS Resilience Hub 在您的应用程序中实现。选择下面的数字，在**操作建议**选项卡中查看所有建议和已实施的警报。
     + **未实现** — 表示您的应用程序中包含 AWS Resilience Hub 但未实现推荐的警报。选择下面的数字，在**操作建议**选项卡中查看所有建议但未实施的警报。
     + 已@@ **排除**-表示您的应用程序中 AWS Resilience Hub 已排除推荐的警报。选择下面的数字，在**操作建议**选项卡中查看所有建议但已排除的警报。有关包含和排除建议警报的更多信息，请参阅[包含或排除操作建议](https://docs.aws.amazon.com/resilience-hub/latest/userguide/exclude-recommend.html?icmpid=docs_resiliencehub_help_panel_operational_recommendations_alarms)。
     + **非活动** — 表示警报已部署到亚马逊 CloudWatch，但亚马逊中的状态设置为 **INSUFKIENT\$1DATA**。 CloudWatch选择下面的数字，在**操作建议**选项卡中查看所有已实施但非活动的警报。
   + **源模板**-提供包含警报详细信息的 AWS CloudFormation 堆栈的 Amazon 资源名称 (ARN)。
   + **资源** — 显示警报附加到的资源以及实施警报所用的资源。
   + **指标**-显示为警报分配的 Amazon CloudWatch 指标。有关亚马逊 CloudWatch 指标的更多信息，请参阅[亚马逊 CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Metric)。
   + **上一次更改** — 显示上一次修改警报的日期和时间。

**从评估中查看建议的警报**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

   要查找应用程序，请在**查找应用程序**框中输入应用程序名称。

1. 选择**评估**选项卡。

   在**弹性评估**表中，您可以使用以下信息来标识您的评估：
   + **名称** — 创建评估时提供的评估名称。
   + **状态** — 指示评估的实施状态。
   + **合规性状态** — 指示评估是否符合弹性策略。
   + **弹性偏差状态** — 指示您的应用程序是否与之前的成功评估有所偏差。
   + **应用程序版本** — 应用程序的版本。
   + **调用者** — 指示调用评估的角色。
   + **开始时间** — 表示评估的开始时间。
   + **结束时间** — 表示评估的结束时间。
   + **ARN** — 评估的 Amazon 资源名称（ARN）。

1. 从**弹性评估**表中选择一项评估。

1. 选择**操作建议**选项卡。

1. 如果默认情况下未选中，请选择**警报**选项卡。

   在**警报**表中，您可以使用以下方式标识建议的警报：
   + **名称** — 您为应用程序设置的警报的名称。
   + **描述** — 描述警报的目标。
   + **状态** — 表示 Amazon CloudWatch 警报的当前实施状态。

     该列显示以下值之一：
     + **已实施** — 表示警报已在您的应用程序中实施。选择下面的数字可对**警报**表进行筛选，以显示您的应用程序中实施的所有建议警报。
     + **未实施** — 表示警报未在您的应用程序中实施或未包含在内。选择下面的数字可对**警报**表进行筛选，以显示您的应用程序中未实施的所有建议警报。
     + **已排除** — 表示警报已从应用程序中排除。选择下面的数字可对**警报**表进行筛选，以显示从您的应用程序中排除的所有建议警报。有关包含和排除建议警报的更多信息，请参阅 [包含或排除操作建议](exclude-recommend.md)。
     + **非活动** — 表示警报已部署到亚马逊 CloudWatch，但亚马逊中的状态设置为 **INSUFKIENT\$1DATA**。 CloudWatch选择下面的数字可对**警报**表进行筛选，以显示所有已实施但非活动的警报。
   + **配置** — 指示是否有任何待处理的配置依赖项需要解决。
   + **类型** — 表示警报的类型。
   + **AppComponent**— 表示与此警报关联的应用程序组件 (AppComponents)。
   + **参考 ID** — 表示中 AWS CloudFormation 堆栈事件的逻辑标识符 AWS CloudFormation。
   + **建议 ID** — 表示中 AWS CloudFormation 堆栈资源的逻辑标识符 AWS CloudFormation。

# 管理标准操作程序
<a name="sops"></a>

标准操作流程（SOP）是一套规范性步骤，旨在在出现中断或警报时有效地恢复应用程序。提前做好准备、测试和测量，以确保 SOPs 在出现运营中断时及时恢复。

根据您的应用程序组件， AWS Resilience Hub 建议 SOPs 您应准备的组件。 AWS Resilience Hub 与 Systems Manager 合作， SOPs 通过提供许多 SSM 文档来自动执行您的步骤，您可以将其用作这些 SOPs文档的基础。

例如， AWS Resilience Hub 可能会根据现有的 SSM 自动化文档推荐用于添加磁盘空间的 SOP。要运行此 SSM 文档，您需要具有正确权限的特定 IAM 角色。 AWS Resilience Hub 在您的应用程序中创建元数据，指示在磁盘不足的情况下要运行哪个 SSM 自动化文档，以及需要哪个 IAM 角色才能运行该 SSM 文档。然后将此元数据保存在 SSM 参数中。

除了配置 SSM 自动化之外，最好的做法是通过 AWS FIS 实验对其进行测试。因此， AWS Resilience Hub 还提供了一个名为 SSM 自动化文档的 AWS FIS 实验，通过这种方式，您可以主动测试您的应用程序，以确保您创建的 SOP 能完成预期的工作。

AWS Resilience Hub 以 CloudFormation 模板的形式提供其建议，您可以将其添加到应用程序代码库中。此模板提供：
+ 运行 SOP 所需权限的 IAM 角色。
+ 您可以用来测试 SOP 的 AWS FIS 实验。
+ 一个包含应用程序元数据的 SSM 参数，指出哪个 SSM 文档和何种 IAM 角色将作为 SOP 运行，以及在哪个资源上运行。例如：`$(DocumentName) for SOP $(HandleCrisisA) on $(ResourceA)`。

创建 SOP 可能需要反复试验。对您的应用程序进行弹性评估并根据 AWS Resilience Hub 建议生成 CloudFormation 模板是一个良好的开端。使用 CloudFormation 模板生成 CloudFormation 堆栈，然后在 SOP 中使用 SSM 参数及其默认值。运行 SOP，以查看需要进行哪些改进。

由于所有应用程序都有不同的要求，因此 AWS Resilience Hub 提供的默认 SSM 文档列表不足以满足您的所有需求。但是，您可以复制默认 SSM 文档，并以它们为依据创建专为您的应用程序量身定制的自定义文档。您还可以创建自己的全新 SSM 文档。如果您创建自己的 SSM 文档而不是修改默认值，则必须将它们与 SSM 参数相关联，这样在 SOP 运行时就会调用正确的 SSM 文档。

通过创建必要的 SSM 文档并根据需要更新参数和文档之间的关联，从而最终确定 SOP 后，请将 SSM 文档直接添加到您的代码库中，并在库中进行任何后续更改或自定义。这样，每次部署应用程序时，您也将部署最多的 up-to-date SOP。

**Topics**
+ [根据 AWS Resilience Hub 建议制定 SOP](building-sops.md)
+ [删除自定义 SSM 文档](create-custom-ssm-doc.md)
+ [使用自定义 SSM 文档而不是默认的 SSM 文档](using-different-ssm-doc.md)
+ [正在测试 SOPs](testing-sops.md)
+ [查看标准操作流程](view-sops.md)

# 根据 AWS Resilience Hub 建议制定 SOP
<a name="building-sops"></a>

要根据 AWS Resilience Hub 建议构建 SOP，您需要一个附有弹性策略的 AWS Resilience Hub 应用程序，并且需要对该应用程序进行弹性评估。弹性评估会为您的 SOP 生成建议。

要根据 AWS Resilience Hub 建议构建 SOP，您必须为推荐的 CloudFormation 模板创建模板 SOPs 并将其包含在代码库中。

**为 SOP 建议创建 CloudFormation 模板**

1. 打开控制 AWS Resilience Hub 台。

1. 在导航窗格中，选择 **应用程序**。

1. 从应用程序列表中，选择要创建 SOP 的应用程序。

1. 选择**评估**选项卡。

1. 从**弹性评估**表中选择一项评估。如果您没有进行评估，请完成 [在中进行弹性评估 AWS Resilience Hub](run-assessment.md) 中的过程，然后返回此步骤。

1. 在**操作建议**下，选择**标准操作流程**。

1. 选择您要包含的所有 SOP 建议。

1. 选择 “**创建 CloudFormation 模板**”。创建 AWS CloudFormation 模板可能需要几分钟。

   完成以下过程以将 SOP 建议包含在代码库中。

**在你的代码库中加入 AWS Resilience Hub 这些建议**

1. 在**操作建议**中，选择**模板**。

1. 在模板列表中，选择刚才创建的 SOP 模板的名称。

   您可以使用以下信息识别应用程序中实现的： SOPs 
   + **SOP 名称** — 您为应用程序指定的 SOP 的名称。
   + **描述** — 描述 SOP 的目标。
   + **SSM 文档** — 包含 SOP 定义的 SSM 文档的 Amazon S3 URL。
   + **测试运行** — 包含最新测试结果的文档的 Amazon S3 URL。
   + **来源模板**-提供包含 SOP 详细信息的 AWS CloudFormation 堆栈的亚马逊资源名称 (ARN)。

1. 在**模板详细信息**下，选择**模板 S3 路径**中的链接，在 Amazon S3 控制台中打开模板对象。

1. 在 Amazon S3 控制台中，从**对象**表中选择 SOP 文件夹链接。

1. 要复制 Amazon S3 路径，请选中 JSON 文件前面的复选框并选择**复制 URL**。

1. 从 AWS CloudFormation 控制台创建 AWS CloudFormation 堆栈。有关创建 AWS CloudFormation 堆栈的更多信息，请参阅 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。

   创建 AWS CloudFormation 堆栈时，必须提供从上一步中复制的 Amazon S3 路径。

# 删除自定义 SSM 文档
<a name="create-custom-ssm-doc"></a>

要完全自动恢复应用程序，您可能需要在 Systems Manager 控制台中为 SOP 创建自定义 SSM 文档。您可以将现有的 SSM 文档作为基础进行修改，也可以创建新的 SSM 文档。

有关使用 Systems Manager 创建 SSM 文档的详细信息，请参阅[演练：使用文档生成器创建自定义运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html)。

有关 SSM 文档语法的信息，请参阅 [SSM 文档语法](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-doc-syntax.html)。

有关 SSM 自动化文档操作的更多信息，请参阅[Systems Manager 自动化操作参考](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-actions.html)。

# 使用自定义 SSM 文档而不是默认的 SSM 文档
<a name="using-different-ssm-doc"></a>

要将为您的 SOP AWS Resilience Hub 建议的 SSM 文档替换为您创建的自定义文档，请直接在代码库中工作。除了添加新的自定义 SSM 自动化文档外，您还将：

1. 添加运行自动化所需的 IAM 权限。

1. 添加 AWS FIS 实验来测试您的 SSM 文档。

1. 添加一个 SSM 参数，该参数指向要用作 SOP 的自动化文档。

通常，使用中建议的默认值 AWS Resilience Hub 并根据需要对其进行自定义，效率最高。例如，根据需要为 IAM 角色添加或删除权限，将 AWS FIS 实验设置更改为指向新的 SSM 文档，或者更改 SSM 参数以指向您的新 SSM 文档。

# 正在测试 SOPs
<a name="testing-sops"></a>

如前所述，最佳做法是在您的管道中添加 AWS FIS 实验以 SOPs 定期测试您的 CI/CD 管道；这样可以确保它们在发生中断时随时可以使用。

同时测试 AWS Resilience Hub提供的和自定义 SOPs的。

# 查看标准操作流程
<a name="view-sops"></a>

**查看通过应用程序实现 SOPs 的**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，打开一个应用程序。

1. 选择**标准操作流程**选项卡。

   在 “**标准操作程序摘要**” 部分，“**已实施的标准操作程序**” 表显示了根据 SOP 建议生成的操作程序列表。 SOPs 

   您可以 SOPs 通过以下方式识别您的身份：
   + **SOP 名称** — 您为应用程序指定的 SOP 的名称。
   + **SSM 文档** — 包含 SOP 定义的 Amazon EC2 Systems Manager 文档的 S3 URL。
   + **描述** — 描述 SOP 的目标。
   + **测试运行** — 包含最新测试结果的文档的 S3 URL。
   + **参考 ID** — 所引用的 SOP 建议的标识符。
   + **资源 ID** — 实施 SOP 建议的资源的标识符。

**查看评估 SOPs 中推荐的**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

   要查找应用程序，请在**查找应用程序**框中输入应用程序名称。

1. 选择**评估**选项卡。

   在**弹性评估**表中，您可以使用以下信息来标识您的评估：
   + **名称** — 创建评估时提供的评估名称。
   + **状态** — 指示评估的实施状态。
   + **合规性状态** — 指示评估是否符合弹性策略。
   + **弹性偏差状态** — 指示您的应用程序是否与之前的成功评估有所偏差。
   + **应用程序版本** — 应用程序的版本。
   + **调用者** — 指示调用评估的角色。
   + **开始时间** — 表示评估的开始时间。
   + **结束时间** — 表示评估的结束时间。
   + **ARN** — 评估的 Amazon 资源名称（ARN）。

1. 从**弹性评估**表中选择一项评估。

1. 选择**操作建议**选项卡。

1. 选择**标准操作流程**选项卡。

   在 “**标准操作程序**” 表中，您可以使用以下信息进一步了解推荐 SOPs 操作流程：
   + **名称** — 建议的 SOP 的名称。
   + **描述** — 描述 SOP 的目标。
   + **状态** — 表示 SOP 的当前实施状态。即**已实施**、**未实施**和**已排除**。
   + **配置** — 指示是否有任何待处理的配置依赖项需要解决。
   + **类型** — 表示 SOP 的类型。
   + **AppComponent**— 表示与此 SOP 关联的应用程序组件 (AppComponents)。有关支持的更多信息 AppComponents，请参阅[中对资源进行分组 AppComponent](https://docs.aws.amazon.com/resilience-hub/latest/userguide/AppComponent.grouping.html?icmpid=docs_resiliencehub_help_panel_operational_recommendations_alarms)。
   + **参考 ID** — 表示中 AWS CloudFormation 堆栈事件的逻辑标识符 AWS CloudFormation。
   + **建议 ID** — 表示 AWS CloudFormation中 AWS CloudFormation 堆栈资源的逻辑标识符。

# 管理 AWS Fault Injection Service 实验
<a name="testing"></a>

本节介绍如何在中管理 AWS Fault Injection Service (AWS FIS) 实验 AWS Resilience Hub。您可以通过 AWS FIS 实验来衡量 AWS 资源的弹性，以及从应用程序、基础设施、可用区和 AWS 区域事件中恢复所需的时间。

为了衡量弹性，这些 AWS FIS 实验模拟了您的 AWS 资源中断。中断的示例包括网络不可用错误、故障转移、Amazon EC2 或 AWS ASG 上的进程停止、Amazon RDS 中的启动恢复以及可用区域的问题。 AWS FIS 实验结束后，您可以估计应用程序能否从弹性策略的 RTO 目标中定义的中断类型中恢复。

中的所有实验 AWS Resilience Hub 都是使用构建的 AWS FIS ，它们可以执行 AWS FIS 动作。 AWS FIS 实验仅使用针对特定 AWS 服务定制的 AWS FIS 自动化操作（例如 Amazon EKS 操作）。有关 AWS FIS 操作的更多信息，请参阅[AWS FIS 操作参考](https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html)。

您可以在 AWS FIS 实验的默认状态下使用它们，也可以根据自己的要求对其进行自定义。有关通过 AWS Resilience Hub 控制台和 AWS FIS 控制台管理 AWS FIS 实验的更多信息，请参阅以下主题：
+ AWS Resilience Hub 控制台
  + [查看 AWS FIS 实验](view-fis-experiment.md)
    + [查看应用程序中已实现的 AWS FIS 实验列表](view-fis-experiment.md#view-active-fis-experiments)
    + [查看评估中推荐的 AWS FIS 实验](view-fis-experiment.md#view-recommended-fis-experiments)
  + [正在运行 AWS FIS 实验](test-assessment-report.md#arh-running-aws-fis-experiments)
  + [AWS Fault Injection Service 实验 failures/status 检查](test-failures.md)
+ AWS FIS 控制台
  + [管理您的 AWS FIS 实验](https://docs.aws.amazon.com//fis/latest/userguide/experiments.html)
  + [使用场 AWS FIS 景库](https://docs.aws.amazon.com//fis/latest/userguide/scenario-library.html)
  + [管理 AWS FIS 实验模板](https://docs.aws.amazon.com//fis/latest/userguide/manage-experiment-template.html)

# 启动、创建和运行 AWS FIS 实验
<a name="test-assessment-report"></a>

AWS Resilience Hub 通过与 AWS FIS 实验集成来简化 AWS FIS 实验。它提供量身定制的建议，并允许使用映射到应用程序组件 (AppComponents) 的预填充模板启动 AWS FIS 实验，从而实现高效的弹性测试。<a name="arh-initiate-fis-experiment"></a>

**根据操作建议启动 AWS FIS 实验**

1. 打开控制 AWS Resilience Hub 台。

1. 在导航窗格中，选择 **应用程序**。

1. 从应用程序列表中，选择要为其创建测试的应用程序。

1. 选择**评估**选项卡。

1. 从**弹性评估**表中选择一项评估。如果您没有进行评估，请完成 [在中进行弹性评估 AWS Resilience Hub](run-assessment.md) 中的过程，然后返回此步骤。

1. 选择**操作建议**选项卡。

1. 在**故障注入实验**之前选择右箭头。

   本节列出了为您的应用推荐的所有 AWS FIS 实验，以 AWS Resilience Hub 进行压力测试和提高其弹性。根据您的实现情况， AWS FIS 实验分为以下状态：
   + **已实施**-表示所推荐的实验已 AWS Resilience Hub 在您的应用程序中实现。选择下面的数字，查看 “实验” 表中所有已实现的**实验**。
   + **部分实施**-表示所 AWS Resilience Hub 推荐的实验已在您的应用程序中部分实现。选择下面的数字，查看 “实验” 表中所有部分实现的**实验**。
   + **未实现** — 表示您的应用程序中 AWS Resilience Hub 未实现推荐的实验。选择下面的数字，查看 “实验” 表中所有未实现的**实验**。
   + 已@@ **排除** — 表示您的应用程序中 AWS Resilience Hub 已排除推荐的实验。选择下面的数字，查看 “实验” 表中所有排除的**实验**。有关包括和排除推荐实验的更多信息，请参阅[包括或排除操作建议](https://docs.aws.amazon.com/resilience-hub/latest/userguide/exclude-recommend.html?icmpid=docs_resiliencehub_help_panel_operational_recommendations_alarms)。

   **实验**表列出了影响应用程序弹性分数的所有已实施的 AWS FIS 实验。您可以使用以下信息识别 AWS FIS 实验：
   + **操作名称**-表示为您的应用程序推荐的 AWS FIS 操作。选择操作名称以在**AWS FIS 实验详细信息**页面 AppComponents 上查看所有推荐的操作。当 “**状态**” 设置为 “**不可跟踪**” 时，它表示 AWS FIS 实验是一个场景。选择场景名称可在 AWS FIS 控制台的**场景库**页面上查看其详细信息。
   + **状态** — 表示 AWS FIS 实验的当前实施状态。即 “**已实施**”、“**部分实施**”、“**未实施**” 和 “已**排除**”。
**注意**  
AWS FIS 场景是一项仅限控制台的功能，具有多个预定义的操作。因此， AWS Resilience Hub 无法对其进行跟踪，它会将**状态**设置为 “**不可跟踪**”。
   + **描述**-描述 AWS FIS 操作的目标。

1. 选择要启动实验的 AWS FIS 操作。

   在 AWS FIS 实验推荐部分，你可以 AppComponents 使用以下信息进一步了解你需要在上面实施的实验：
   + **名称**-资源分组到的名称。 AppComponent 
   + **状态**-表示 AWS FIS 操作的当前实施状态。即 “**已实施**”、“**部分实施**”、“**未实施**” 和 “已**排除**”。
**注意**  
AWS FIS 场景是一项仅限控制台的功能，具有多个预定义的操作。因此， AWS Resilience Hub 无法对其进行跟踪，它会将**状态**设置为 “**不可跟踪**”。
   + **目标选择**-指示当您选择 “**启动实验” 时，资源将如何包含在实验**中。如果 AWS Resilience Hub 无法自动确定目标资源，请将鼠标悬停在相应的**目标选择**字段上，以获取有关添加这些资源的指导。
   + **资源**-表示分组在下的资源数量 AppComponent。在 “资源” 对话框中选择要查看这些**资源的**数字。您可以使用以下方法识别资源：
     + **逻辑 ID** - 指示资源的逻辑 ID。逻辑 ID 是用于识别您的 AWS CloudFormation、Terraform 状态文件、myApplications 应用程序、 AWS Resource Groups 资源或亚马逊 Elastic Kubernetes Service 集群中资源的名称。
     + **物理 ID** — 表示资源的实际分配标识符，例如 Amazon EC2 实例 ID 或 Amazon S3 存储桶名称。
     + **类型**-表示资源的类型。
     + **区域**-表示资源所在的 AWS 区域。

1. 选择， AppComponent 然后选择 “**包括**” 或 “**排除**”，分别 AppComponent 在 AWS FIS 实验中包括或排除。

1. 选择**启动实验**。

   AWS Resilience Hub 会将您重定向到 AWS FIS 控制台中的 “**指定模板详细信息**” 页面，并在新选项卡中将其打开。

1. 要创建实验模板，请[使用控制台完成创建实验模板](https://docs.aws.amazon.com/fis/latest/userguide/create-template.html)中的步骤。

   此外，在您输入模板详细信息并按照[使用控制台创建实验模板中的步骤在 AWS FIS 控制台的 “指定模板](https://docs.aws.amazon.com/fis/latest/userguide/create-template.html)**详细信息**” 页面中选择 “**下一**步” 后， AWS Resilience Hub 会自动尝试在 “**操作**和**目标**” 页面中为您的资源类型映射**操作和目标**。但是，要提高覆盖范围，您可以通过分别选择添加操作和**添加****目标来手动添加**操作和目标，然后完成创建实验的其余过程。

## 正在运行 AWS FIS 实验
<a name="arh-running-aws-fis-experiments"></a>

在 AWS FIS 控制台中创建实验后，按照[从模板开始实验](https://docs.aws.amazon.com/fis/latest/userguide/start-experiment-from-template.html)中的步骤在 AWS FIS 控制台中运行实验。如果 AWS Resilience Hub 要检测最新运行的实验 AWS FIS，则必须进行新的评估。有关运行评估的更多信息，请参阅 [在中进行弹性评估 AWS Resilience Hub](run-assessment.md)。

# 查看 AWS FIS 实验
<a name="view-fis-experiment"></a>

在中 AWS Resilience Hub，查看您为衡量 AWS 资源的弹性以及从应用程序、基础架构、可用区和 AWS 区域 事件中恢复所需的时间而设置的 AWS FIS 实验。

要从仪表板查看正在进行的 AWS FIS 实验列表，请从左侧导航菜单中选择 D **as** hboard。

在 “**已实现的实验**” 表中，您可以使用以下信息识别 AWS FIS 实验：
+ **实验 ID** — AWS FIS 实验的标识符。
+ **操作**-表示与 AWS FIS 实验相关的 AWS FIS 操作。此外，如果有多个动作，它会突出显示与 AWS FIS 实验相关的 AWS FIS 动作数量。您可以通过将鼠标悬停在详细信息上方或导航到详细信息来识别详细信息。
+ **实验模板 ID** — 用于创建 AWS FIS 实验的实验模板的标识符。 AWS FIS <a name="view-active-fis-experiments"></a>

**查看应用程序中已实现的 AWS FIS 实验列表**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

   要查找应用程序，请在**查找应用程序**框中输入应用程序名称。

1. 选择**错误注入实验**。

   在 “**已实现的实验**” 表中，您可以使用以下信息识别应用程序中实现的 AWS FIS 实验：
   + **实验 ID** — AWS FIS 实验的标识符。
   + **操作**-表示与 AWS FIS 实验相关的 AWS FIS 操作。此外，如果有多个动作，它会突出显示与 AWS FIS 实验相关的 AWS FIS 动作数量。您可以通过将鼠标悬停在详细信息上方或导航到详细信息来识别详细信息。
   + **实验模板 ID** — 用于创建 AWS FIS 实验的 AWS FIS 实验模板的标识符。<a name="view-recommended-fis-experiments"></a>

**查看评估中推荐的 AWS FIS 实验**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 从**应用程序**表中选择一个应用程序。

   要查找应用程序，请在**查找应用程序**框中输入应用程序名称。

1. 选择**评估**选项卡。

   在**评估**表中，您可以使用以下信息识别您的评估：
   + **名称** — 创建评估时提供的评估名称。
   + **状态** — 指示评估的实施状态。
   + **合规性状态** — 指示评估是否符合弹性策略。
   + **弹性** — 表示您的应用程序是否偏离了所附弹性策略中定义的 RTO 和 RPO 目标，是否偏离了之前的成功评估。
   + **应用程序版本**-已评估的应用程序版本。
   + **调用者** — 指示调用评估的角色。
   + **开始时间** — 表示评估的开始时间。
   + **结束时间** — 表示评估的结束时间。
   + **ARN** — 评估的 Amazon 资源名称（ARN）。

1. 从 “评估” 表中选择一项**评估**。

1. 选择**操作建议**。

1. 在**故障注入实验**之前选择右箭头。

   本节列出了为您的应用推荐的所有 AWS FIS 实验，以 AWS Resilience Hub 进行压力测试和提高其弹性。根据您的实现情况， AWS FIS 实验分为以下状态：
   + **已实施**-表示所推荐的实验已 AWS Resilience Hub 在您的应用程序中实现。选择下面的数字，查看 “实验” 表中所有已实现的**实验**。
   + **部分实施**-表示所 AWS Resilience Hub 推荐的实验已在您的应用程序中部分实现。选择下面的数字，查看 “实验” 表中所有部分实现的**实验**。
   + **未实现** — 表示您的应用程序中 AWS Resilience Hub 未实现推荐的实验。选择下面的数字，查看 “实验” 表中所有未实现的**实验**。
   + 已@@ **排除** — 表示您的应用程序中 AWS Resilience Hub 已排除推荐的实验。选择下面的数字，查看 “实验” 表中所有排除的**实验**。有关包括和排除推荐实验的更多信息，请参阅[包括或排除操作建议](https://docs.aws.amazon.com/resilience-hub/latest/userguide/exclude-recommend.html?icmpid=docs_resiliencehub_help_panel_operational_recommendations_alarms)。

   **实验**表列出了影响应用程序弹性分数的所有已实施的 AWS FIS 实验。您可以使用以下信息识别 AWS FIS 实验：
   + **操作名称**-表示为您的应用程序推荐的 AWS FIS 操作。当 “**状态**” 设置为 “**不可跟踪**” 时，它表示 AWS FIS 实验是一个场景。选择场景名称可在 AWS FIS 控制台的**场景库**页面上查看其详细信息。
   + **状态** — 表示 AWS FIS 实验的当前实施状态。即 “**已实施**”、“**部分实施**”、“**未实施**” 和 “已**排除**”。
**注意**  
AWS FIS 场景是一项仅限控制台的功能，具有多个预定义的操作。因此， AWS Resilience Hub 无法对其进行跟踪，它会将**状态**设置为 “**不可跟踪**”。
   + **描述**-描述 AWS FIS 操作的目标。

# AWS Fault Injection Service 实验 failures/status 检查
<a name="test-failures"></a>

AWS Resilience Hub 允许您跟踪已开始的实验的状态。有关更多信息，请参阅[查看评估中推荐的 AWS FIS 实验](view-fis-experiment.md#view-recommended-fis-experiments)步骤。

**Topics**
+ [使用 S AWS ystems Manager 分析 AWS FIS 实验执行情况](test-failures-ssm.md)
+ [AWS FIS 测试在你的亚马逊 Elastic Kubernetes Service 集群中运行的 Kubernetes 容器时实验失败](test-failures-eks.md)

# 使用 S AWS ystems Manager 分析 AWS FIS 实验执行情况
<a name="test-failures-ssm"></a>

运行 AWS FIS 实验后，您可以在 S AWS ystems Manager 中查看执行细节。

1. 前往 **CloudTrail**> **事件历史记录**。

1. 使用实验 ID 按**用户名**筛选事件。

1. 查看条 StartAutomationExecution 目。**请求 ID** 是 SSM 自动化 ID。

1.  前往 **AWS Systems Manager **> **自动化**。

1. 使用 SSM 自动化 ID 按**执行 ID** 筛选并查看自动化详细信息。

   您可以使用任何 Systems Manager 自动化来分析执行情况。有关更多信息，请参阅 [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 用户指南。执行输入参数显示在**执行详细信息**的 “**输入参数**” 部分，包括 AWS FIS 实验中未出现的可选参数。

   通过深入了解执行步骤中的具体步骤，可以找到有关步骤状态和其他步骤详情的信息。

**常见失败情况**

以下是在执行评估报告时遇到的常见失败情况：
+  Test/SOP 实验执行前未部署警报模板。这会导致在自动化步骤中出现错误消息。
  + **失败消息：** `The following parameters were not found: [/ResilienceHub/Alarm/3dee49a1-9877-452a-bb0c-a958479a8ef2/nat-gw-alarm-bytes-out-to-source-2020-09-21_nat-02ad9bc4fbd4e6135]. Make sure all the SSM parameters in automation document are created in SSM Parameter Store.`
  + **补救措施：**在重新运行错误注入实验之前，请确保呈现相关警报并部署生成的模板。
+ 执行角色缺少权限。如果提供的执行角色缺少权限并出现在步骤详情中，则会出现此错误消息。
  + **失败消息：** `An error occurred (Unauthorized Operation) when calling the DescribeInstanceStatus operation: You are not authorized to perform this operation. Please Refer to Automation Service Troubleshooting Guide for more diagnosis details`。
  + **补救措施**：验证您提供的执行角色是否正确。如果已完成此操作，请添加所需的权限并重新运行评估。
+ 执行成功但没有得到预期的结果。这是由于参数不正确或内部自动化问题造成。
  + **失败消息：**执行成功，因此未显示任何错误消息。
  + **补救：**在检查预期输入和输出的各个步骤之前，请检查输入参数并查看已执行的步骤，如分析 AWS FIS 实验执行中所述。

# AWS FIS 测试在你的亚马逊 Elastic Kubernetes Service 集群中运行的 Kubernetes 容器时实验失败
<a name="test-failures-eks"></a>

以下是在对 Amazon EKS 集群中运行的 Kubernetes 容器组（pod）进行测试时遇到的常见 Amazon Elastic Kubernetes Service（Amazon EKS）失败情况：
+  AWS FIS 实验或 Kubernetes 服务账号的 IAM 角色配置不正确。
  + **失败消息：**
    + `Error resolving targets. Kubernetes API returned ApiException with error code 401`. 
    + `Error resolving targets. Kubernetes API returned ApiException with error code 403`. 
    + `Unable to inject AWS FIS Pod: Kubernetes API returned status code 403. Check Amazon EKS logs for more details`. 
  + **补救措施：**验证以下内容。
    + 确保您已按照[使用 AWS FIS`aws:eks:pod` 操作](https://docs.aws.amazon.com/fis/latest/userguide/eks-pod-actions.html)中的说明进行操作。
    + 确保您已经创建并配置了具有必要的 RBAC 权限和正确命名空间的 Kubernetes 服务帐户。
    + 确保您已将提供的 IAM 角色（参见测试 CloudFormation 堆栈的输出）映射到 Kubernetes 用户。
+ 无法启动 AWS FIS Pod：已达到失败边车容器的最大值。当内存不足以运行 s AWS FIS idecar 容器时，通常会发生这种情况。
  + **失败消息：** `Unable to heartbeat FIS Pod: Max failed sidecar containers reached`。
  + **补救措施：**避免此错误的一种选择是降低目标负载百分比，使其与可用内存或 CPU 保持一致。
+ 实验开始时警报断言失败。由于相关的警报没有数据点，因此出现此错误。
  + **失败消息：** `Assertion failed for the following alarms`。列出断言失败的所有警报。
  + **补救措施：**确保为警报正确安装了 Container Insights，并且警报未开启（处于 `ALARM` 状态）。

# 了解弹性分数
<a name="resil-score"></a>

本节介绍如何 AWS Resilience Hub 量化不同中断情景下的应用程序就绪性。

AWS Resilience Hub 提供弹性分数，代表应用程序的弹性状态。该分数反映了应用程序在满足应用程序弹性策略、警报、标准操作程序 (SOPs) 和测试方面的建议的遵守程度。根据应用程序使用的资源类型， AWS Resilience Hub 推荐警报 SOPs，并针对每种中断类型进行一组测试。

最高的弹性分数是 100 分。要获得尽可能高的分数或最高分，您必须在应用程序中实现所有推荐的警报和测试。 SOPs例如， AWS Resilience Hub 建议使用一个警报和一个 SOP 进行一次测试。测试运行并触发警报并启动相关的 SOP。如果它们成功运行，并且应用程序符合弹性策略，则其弹性分数将接近或等于 100 分。

运行首次评估后， AWS Resilience Hub 提供了从应用程序中排除操作建议的选项。要了解排除的建议对弹性分数的影响，您必须进行新的评测。但是，您可以随时在应用程序中包含排除的建议并进行新的评测。有关包括和排除警报、SOP 和测试建议的更多信息，请参阅 [包含或排除操作建议](exclude-recommend.md)。

# 访问应用程序的“弹性分数”
<a name="access-score"></a>

您可以通过从导航菜单中选择**控制面板**或**应用程序**来查看应用程序的“弹性分数”。

**从“控制面板”访问“弹性分数”**

1. 在左侧导航窗格中，选择 **VPC Dashboard**。

1. 在**随时间推移的应用程序弹性分数**中，在**最多选择 4 个应用程序**下拉列表中选择一个或多个应用程序。

1. **弹性分数**表显示所有选定应用程序的弹性分数。

**从“应用程序”访问“弹性分数”**

1. 在左侧的导航菜单中，选择**应用程序**。

1. 在**应用程序**中，打开一个应用程序。

1. 选择**摘要**。

   **弹性分数**表显示应用程序弹性分数最多一年的趋势。 AWS Resilience Hub 使用以下内容显示了为改善和实现尽可能高的弹性分数而需要解决的行动项目、弹性策略违规行为和操作建议：
   + 要查看为改善和实现尽可能高的弹性分数而需要完成的操作项，请选择**操作项**选项卡。选中后， AWS Resilience Hub 将显示以下内容：
     + **RTO/RPO** — 表示恢复次数（RTO/RPOs) that need to be fixed to resolve the breaches in your application's resiliency policy. Choose the value to view the RTO/RPO应用程序评估报告中的详细信息）。
     + **警报** — 表示需要在您的应用程序中实施的推荐的 Amazon CloudWatch 警报数量。选择该值以查看您的应用程序评估报告中需要修复的 Amazon CloudWatch 警报。
     + **SOPs**— 表示需要在您的应用程序中实现的 SOPs 建议数量。选择值 SOPs 以查看应用程序评估报告中需要修复的值。
     + **FIS** – 表示需要在您的应用程序中实施的建议的测试数量。选择该值以查看您的应用程序评测报告中需要修复的测试。
   + 要查看影响您的弹性分数的每个组件的分数，请选择**分数细分**。选择后， AWS Resilience Hub 显示以下内容：
     + **RTO/RPO 合规性** — 表示应用程序组件 (AppComponents) 与估计的工作负载恢复时间以及应用程序弹性策略中定义的目标恢复时间的兼容程度。选择值以查看应用程序评估报告中的 RTO/RPO 估算值。
     + **已实施警报** — 表示已实施的 Amazon CloudWatch 警报的实际贡献与其对应用程序弹性分数的最大可能贡献的比较。选择该值，在您的应用程序的评估报告中查看已实施的 Amazon CloudWatch 警报。
     + **SOPs 已实施** — 表示已实施的实际贡献与其对应用程序弹性分数的最大可能贡献的 SOPs 比较。选择值以 SOPs在应用程序的评估报告中查看已实施的值。
     + **已实施的 FIS 实验** – 表示已实施的测试的实际贡献与其对应用程序弹性分数的最大可能贡献的比较。选择该值以查看您的应用程序评测报告中的已实施测试。
   + 要查看弹性策略违例和操作建议，请选择向右箭头以展开**策略违例和操作建议细分**部分。展开后， AWS Resilience Hub 显示以下内容：
     + **弹性策略违例** – 表示违反应用程序弹性策略的应用程序组件的数量。选择 **RTO/RPO** 旁边的值以查看您的应用程序评测报告中的**弹性建议**选项卡的详细信息。
     + **操作建议** – 表示为增强应用程序的弹性而尚未实施或执行的操作建议（使用**未完成**和**已排除**选项卡）。操作建议包括所有停用的建议和尚未执行的建议。

       要查看需要实施的操作建议，请选择**未完成**选项卡。选中后， AWS Resilience Hub 将显示以下内容：
       + **警报** — 表示需要实施的推荐的 Amazon CloudWatch 警报数量。
       + **SOPs**— 表示需要实施的 SOPs 建议数量。
       + **FIS** – 表示需要实施的建议测试的数量。

       要查看应用程序中排除的操作建议，请选择**已排除**选项卡。选中后 AWS Resilience Hub 会显示以下内容：
       + **警报** — 表示从您的应用程序中排除的推荐的 Amazon CloudWatch 警报数量。
       + **SOPs**— 表示从您的应用程序中排除的推荐 SOPs 人数。
       + **FIS** – 表示从您的应用程序中排除的建议测试的数量。

# 计算弹性分数
<a name="calculate-score"></a>

本节中的表格说明了用于确定每种推荐类型的评分组成部分和应用程序的弹性分数的公式。 AWS Resilience Hub 由 AWS Resilience Hub 每种推荐类型的评分组成部分和应用程序的弹性分数确定的所有结果值都四舍五入到最接近的点。例如，如果实施了三分之二的警报，则分数将为 13.33（（2/3）\$1 20）分。该值将四舍五入为 13 点。有关表格中公式中使用的权重的更多信息，请参见 [Weight](#weight) 部分。

有些评分组件只能通过 `ScoringComponentResiliencyScore` API 获得。相关此 API 的更多信息，请参阅 [ScoringComponentResiliencyScore](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_ScoringComponentResiliencyScore.html)。

**表**
+ [**计算每种建议类型的评分组件的公式**](#recommendation-type-coverage)
+ [**计算弹性分数的公式**](#resiliency-score)
+ [**计算中断类型的弹性分数 AppComponents 的公式**](#resiliency-score-AppComponents-disruption-types)

下表说明了用于计算每种推荐类型的评分部分的公式。 AWS Resilience Hub 


**计算每种建议类型的评分组件的公式**  

| 评分组件 | 说明 | Formula | 示例 | 
| --- | --- | --- | --- | 
| 测试覆盖率（T） | 标准化分数（0 -100 分）基于在 AWS Resilience Hub 建议测试总数中成功实施和排除的测试数量。 要计算弹性分数，推荐的测试必须在过去 30 天内成功运行， AWS Resilience Hub 才能将其视为已实施。  | T = ((Total number of tests implemented) \$1 (Total number of tests excluded)) / (Total number of tests recommended)部分公式如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html) | 如果您实施了 AWS Resilience Hub 建议的 20 个测试中的 10 个测试并排除了 5 个测试，则测试覆盖率的计算方法如下：`T = (10 + 5) / 20`即：`T = .75 or 75 points` | 
| 警报覆盖率（A） | 标准化分数（0 -100 分），基于成功实施和排除的亚马逊 CloudWatch警报数量（在 AWS Resilience Hub 推荐的亚马逊 CloudWatch 警报总数中）。 要计算弹性分数，建议的警报应处于**就绪**状态，以便 AWS Resilience Hub 将其视为已实施。  | A = ((Total number of alarms implemented) \$1 (Total number of alarms excluded)) / (Total number of alarms recommended)部分公式如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html) | 如果您在 AWS Resilience Hub 推荐的 20 个亚马逊 CloudWatch 警报中实施了 10 个但排除了 5 个亚马逊 CloudWatch 警报，则亚马逊 CloudWatch 警报覆盖范围的计算方法如下：`A = (10 + 5) / 20`即：`A = .75 or 75 points` | 
| SOP 覆盖率（S） | 标准化分数（0 -100 分）基于成功实施和排除在 AWS Resilience Hub 建议 SOPs总数中的数量。 SOPs  | S = ((Total number of SOPs implemented) \$1 (Total number of SOPs excluded)) / (Total number of SOPs recommended)部分公式如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html) | 如果您实施了 10 个，但排除 SOPs 了 20 个 AWS Resilience Hub 建议中的 5 个 SOPs，则 SOP 覆盖范围的计算方法如下：`S = (10 + 5) / 20`即：`S = .75 or 75 points` | 
| RTO/RPO 合规性（P） | 基于符合其弹性策略的应用程序的标准化分数（0 - 100 分）。 | P = Total weights of disruption types meeting the application's resiliency policy / Total weights of all disruption types. | 如果您的应用程序弹性策略仅适用于可用区（AZ）和基础设施中断类型，则弹性策略分数（P）的计算方法如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html) | 

下表说明了用于计算整个应用程序的弹性分数的公式。 AWS Resilience Hub 


**计算弹性分数的公式**  

| 评分组件 | 说明 | Formula | 示例 | 
| --- | --- | --- | --- | 
| 应用程序的弹性分数（RS） | 基于您的应用程序满足其弹性策略的标准化弹性分数（0 - 100 分）。每个应用程序的弹性分数是所有建议类型的加权平均值。即：RS = Weighted Average (T, A, S, P) | 使用以下公式计算每个应用程序的弹性分数：RS = (T \$1 Weight(T) \$1`A * Weight(A) +``S * Weight(S) +``P * Weight(P)) /``(Weight(T) + Weight(A) + Weight(S) + Weight(P))` | 计算每种建议类型表的覆盖率的公式如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html)每个应用程序的弹性分数计算方法如下：`RS = ((.75 * .2) + (.75 * .2) + (.75 * .2) + (.5 * .4)) /(.2 + .2 + .2 + .4)`即：`RS = .65 or 65 points` | 

下表说明了用于计算应用程序组件 (AppComponents) 和中断类型的弹性分数的公式。 AWS Resilience Hub 但是，您只能通过以下 AWS Resilience Hub APIs 获取弹性分数 AppComponents 和中断类型：
+ [DescribeAppAssessment](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_DescribeAppAssessment.html)获得 `RSo`
+ [ListAppComponentCompliances](https://docs.aws.amazon.com/resilience-hub/latest/APIReference/API_ListAppComponentCompliances.html)获取`RSao`和 `RSA`


**计算中断类型的弹性分数 AppComponents 的公式**  

| 评分组件 | 说明 | Formula | 示例 | 
| --- | --- | --- | --- | 
| 每种中断类型 AppComponent 和每种中断类型的弹性得分 () RSao | 基于 AppComponent 满足每种中断类型的弹性策略的标准化分数（0 -100 分）。每 AppComponent 种中断类型的弹性分数是所有建议类型的加权平均值。即：`RSao = Weighted Average (T, A, S, P)`的值`T, A, S, P`是针对和中断类型的所有推荐测试 SOPs、警报和会议弹性策略计算得出的。 AppComponent  | 使用以下公式计算每 AppComponent 种中断类型的弹性分数：`RSao = (T * Weight(T) + ``A * Weight(A) + ``S * Weight(S) + ``P * Weight(P)) /``(Weight(T) + Weight(A) + Weight(S) + Weight(P))` | 所有建议类型的 `RSao` 假设如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html)每 AppComponent 种中断类型的弹性分数计算方法如下：`RSao = ((.75 * .2) + (.75 * .2) + (.75 * .2) + (.5 * .4)) / `(.2 \$1 .2 \$1 .2 \$1 .4)即：`RSao = .65 or 65 points` | 
| 每 AppComponent () RSa 的弹性分数 | 基于满足其弹性策略的标准化分数（0 - 100 分）。弹性分数 AppComponent 是所有建议类型的加权平均值。即：RSa = Weighted Average (T, A, S, P)的值`T, A, S, P`是针对的所有推荐测试 SOPs、警报和会议弹性策略计算得出的 AppComponent。 | 每 AppComponent 人的弹性分数使用以下公式计算：`RSa = ``(T * Weight(T) +``A * Weight(A) +``S * Weight(S) +``P * Weight(P)) /``(Weight(T) + Weight(A) + Weight(S) + Weight(P))` | 所有建议类型的 `RSa` 假设如下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html)每个弹性分数的计算方法 AppComponent 如下：`RSa = ((.75 * .2) + (.75 * .2) + (.75 * .2) + (.5 * .4)) / `(.2 \$1 .2 \$1 .2 \$1 .4)即：`RSa = .65 or 65 points` | 
| 每种中断类型的弹性分数（RSo） | 基于满足其弹性策略的标准化分数（0 - 100 分）。每种中断类型的弹性分数是所有建议类型的加权平均值。即：RSo = Weighted Average (T, A, S, P)的值`T, A, S, P`是针对中断类型的所有推荐测试 SOPs、警报和会议弹性策略计算得出的。 | 每种中断类型的弹性分数使用以下公式计算：`RSo = (T * Weight(T) + A * Weight(A) + ``S * Weight(S) + P * Weight(P)) /` `(Weight(T) + Weight(A) + Weight(S) + Weight(P))` |  所有建议类型的 `RSo` 假设如下： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/resilience-hub/latest/userguide/calculate-score.html) 每种中断类型的弹性分数的计算方法如下： `RSo = ((.75 * .2) + (.75 * .2) + (.75 * .2) + (.5 *.4)) /` `(.2 + .2 + .2 + .4)` 即：`RSo = .65 or 65 points`  | 

## Weight
<a name="weight"></a>

AWS Resilience Hub 为每种建议类型分配总弹性分数的权重。

下表显示了警报、、测试 SOPs、会议弹性策略和中断类型的权重。中断类型包括应用程序、基础设施、可用区和区域。

**注意**  
如果您选择不为策略定义区域 RTO 或 RPO 目标，则其他中断类型的权重将相应增加，如**未定义区域时的权重**列所示。


**警报、测试 SOPs、策略目标的权重**  

| 获取建议 | 权重 | 
| --- | --- | 
| Alarms | 20 点数 | 
| SOPs | 20 点数 | 
| 测试 | 20 点数 | 
| 会议弹性策略 | 40 点数 | 


**中断类型的权重**  

| 中断类型 | 定义区域时的权重 | 未定义区域时的权重 | 
| --- | --- | --- | 
| 应用程序 | 40 点数 | 44.44 点数 | 
| 基础设施 | 30 点数 | 33.33 点数 | 
| 可用区 | 20 点数 | 22.22 点数 | 
| Region | 10 点数 | 不适用 | 

# 将操作建议集成到您的应用程序中 CloudFormation
<a name="cfn-integration"></a>

在 “**操作建议**” 页面中选择 “**创建 CloudFormation CloudFormation 模板**” 后， AWS Resilience Hub 创建一个描述应用程序的特定警报、标准操作程序 (SOP) 或 AWS FIS 实验的模板。 CloudFormation 模板存储在 Amazon S3 存储桶中，您可以在**操作建议**页面的模板**详细信息选项卡中查看模板**的 S3 路径。

例如，下面的列表显示了一个 JSON 格式的 CloudFormation 模板，该模板描述了由提供的警报建议。 AWS Resilience Hub这是名为 `Employees` 的 DynamoDB 表的读取限制警报。

模板的 `Resources` 部分描述了 DynamoDB 表的读取限制事件数量超过 1 时激活的 `AWS::CloudWatch::Alarm` 警报。这两个`AWS::SSM::Parameter`资源定义了元数据，这些元数据 AWS Resilience Hub 允许在不扫描实际应用程序的情况下识别已安装的资源。

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Parameters" : {
    "SNSTopicARN" : {
      "Type" : "String",
      "Description" : "The ARN of the Amazon SNS topic to which alarm status changes are to be sent. This must be in the same Region being deployed.",
      "AllowedPattern" : "^arn:(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):sns:([a-z]{2}-((iso[a-z]{0,1}-)|(gov-)){0,1}[a-z]+-[0-9]):[0-9]{12}:[A-Za-z0-9/][A-Za-z0-9:_/+=,@.-]{1,256}$"
    }
  },
  "Resources" : {
    "ReadthrottleeventsthresholdexceededEmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9Alarm" : {
      "Type" : "AWS::CloudWatch::Alarm",
      "Properties" : {
        "AlarmDescription" : "An Alarm by AWS Resilience Hub that alerts when the number of read-throttle events are greater than 1.",
        "AlarmName" : "ResilienceHub-ReadThrottleEventsAlarm-2020-04-01_Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9",
        "AlarmActions" : [ {
          "Ref" : "SNSTopicARN"
        } ],
        "MetricName" : "ReadThrottleEvents",
        "Namespace" : "AWS/DynamoDB",
        "Statistic" : "Sum",
        "Dimensions" : [ {
          "Name" : "TableName",
          "Value" : "Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9"
        } ],
        "Period" : 60,
        "EvaluationPeriods" : 1,
        "DatapointsToAlarm" : 1,
        "Threshold" : 1,
        "ComparisonOperator" : "GreaterThanOrEqualToThreshold",
        "TreatMissingData" : "notBreaching",
        "Unit" : "Count"
      },
      "Metadata" : {
        "AWS::ResilienceHub::Monitoring" : {
          "recommendationId" : "dynamodb:alarm:health-read_throttle_events:2020-04-01"
        }
      }
    },
    "dynamodbalarmhealthreadthrottleevents20200401EmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9AlarmSSMParameter" : {
      "Type" : "AWS::SSM::Parameter",
      "Properties" : {
        "Name" : "/ResilienceHub/Alarm/3f904525-4bfa-430f-96ef-58ec9b19aa73/dynamodb-alarm-health-read-throttle-events-2020-04-01_Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9",
        "Type" : "String",
        "Value" : {
          "Fn::Sub" : "${ReadthrottleeventsthresholdexceededEmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9Alarm}"
        },
        "Description" : "SSM Parameter for identifying installed resources."
      }
    },
    "dynamodbalarmhealthreadthrottleevents20200401EmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9AlarmInfoSSMParameter" : {
      "Type" : "AWS::SSM::Parameter",
      "Properties" : {
        "Name" : "/ResilienceHub/Info/Alarm/3f904525-4bfa-430f-96ef-58ec9b19aa73/dynamodb-alarm-health-read-throttle-events-2020-04-01_Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9",
        "Type" : "String",
        "Value" : {
          "Fn::Sub" : "{\"alarmName\":\"${ReadthrottleeventsthresholdexceededEmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9Alarm}\",\"referenceId\":\"dynamodb:alarm:health_read_throttle_events:2020-04-01\",\"resourceId\":\"Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9\",\"relatedSOPs\":[\"dynamodb:sop:update_provisioned_capacity:2020-04-01\"]}"
        },
        "Description" : "SSM Parameter for identifying installed resources."
      }
    }
  }
}
```

## 修改 CloudFormation 模板
<a name="modifying-resource-template"></a>

要将警报、SOP 或 AWS FIS 资源集成到主应用程序中，最简单的方法就是将其作为另一个资源添加到描述您的应用程序模板的模板中。下面提供的 JSON 格式文件提供了模板中如何描述 DynamoDB 表的基本概述。 CloudFormation 一个真实的应用程序可能还会包含更多资源，例如额外的表。

```
{
   "AWSTemplateFormatVersion": "2010-09-09T00:00:00.000Z",
   "Description": "Application Stack with Employees Table",
   "Outputs": {
      "DynamoDBTable": {
         "Description": "The DynamoDB Table Name",
         "Value": {"Ref": "Employees"}
      }
   },
   "Resources": {
      "Employees": {
         "Type": "AWS::DynamoDB::Table",
         "Properties": {
            "BillingMode": "PAY_PER_REQUEST",
            "AttributeDefinitions": [
               {
                  "AttributeName": "USER_ID",
                  "AttributeType": "S"
               },
               {
                  "AttributeName": "RANGE_ATTRIBUTE",
                  "AttributeType": "S"
               }
            ],
            "KeySchema": [
               {
                  "AttributeName": "USER_ID",
                  "KeyType": "HASH"
               },
               {
                  "AttributeName": "RANGE_ATTRIBUTE",
                  "KeyType": "RANGE"
               }
            ],
            "PointInTimeRecoverySpecification": {
               "PointInTimeRecoveryEnabled": true
            },
            "Tags": [
               {
                  "Key": "Key",
                  "Value": "Value"
               }
            ],
            "LocalSecondaryIndexes": [
               {
                  "IndexName": "resiliencehub-index-local-1",
                  "KeySchema": [
                     {
                        "AttributeName": "USER_ID",
                        "KeyType": "HASH"
                     },
                     {
                        "AttributeName": "RANGE_ATTRIBUTE",
                        "KeyType": "RANGE"
                     }
                  ],
                  "Projection": {
                     "ProjectionType": "ALL"
                  }
               }
            ],
            "GlobalSecondaryIndexes": [
               {
                  "IndexName": "resiliencehub-index-1",
                  "KeySchema": [
                     {
                        "AttributeName": "USER_ID",
                        "KeyType": "HASH"
                     }
                  ],
                  "Projection": {
                     "ProjectionType": "ALL"
                  }
               }
            ]
         }
      }
   }
}
```

要允许在应用程序中部署警报资源，您现在需要将硬编码资源替换为应用程序堆栈中的动态引用。

因此，在 `AWS::CloudWatch::Alarm` 资源定义中，将以下内容：

```
"Value" : "Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9"
```

更改为：

```
"Value" : {"Ref": "Employees"}
```

在 `AWS::SSM::Parameter` 资源定义下，将以下内容：

```
"Fn::Sub" : "{\"alarmName\":\"${ReadthrottleeventsthresholdexceededDynamoDBEmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9Alarm}\",\"referenceId\":\"dynamodb:alarm:health_read_throttle_events:2020-04-01\",\"resourceId\":\"Employees-ON-DEMAND-0-DynamoDBTable-PXBZQYH3DCJ9\",\"relatedSOPs\":[\"dynamodb:sop:update_provisioned_capacity:2020-04-01\"]}"
```

更改为：

```
"Fn::Sub" : "{\"alarmName\":\"${ReadthrottleeventsthresholdexceededEmployeesONDEMAND0DynamoDBTablePXBZQYH3DCJ9Alarm}\",\"referenceId\":\"dynamodb:alarm:health_read_throttle_events:2020-04-01\",\"resourceId\":\"${Employees}\",\"relatedSOPs\":[\"dynamodb:sop:update_provisioned_capacity:2020-04-01\"]}"
```

在修改 SOPs 和 AWS FIS 实验的 CloudFormation 模板时，您将采用相同的方法，将硬编码参考 IDs 替换为即使在硬件更改后仍能继续工作的动态引用。

通过使用对 DynamoDB 表的引用，您可以执行以下 CloudFormation 操作：
+ 首先创建数据库表。
+  始终在警报中使用生成的资源的实际 ID，如果 CloudFormation 需要替换资源，则动态更新警报。

**注意**  
您可以选择更高级的方法来管理应用程序资源， CloudFormation 例如[嵌套堆栈](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-nested-stacks.html)或[引用单独 CloudFormation 堆栈中的资源输出](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-crossstackref.html)。（但是，如果要将建议堆栈与主堆栈分开，则需要配置一种在两个堆栈之间传递信息的方式。）   
此外，第三方工具（例如 Terraform by HashiCorp）也可用于配置基础设施即代码 (IaC)。