

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

# 管理标准操作程序
<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 堆栈资源的逻辑标识符。