你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建一个混沌试验,该试验使用服务直接故障对 Azure Cosmos DB 实例进行故障转移

可以使用混沌试验,通过在受控环境中引发一些故障,来验证应用程序是否可以应对这些故障。 在本文中,你将使用混沌试验和 Azure Chaos Studio 进行多次读取、单次写入 Azure Cosmos DB 故障转移。 运行此试验可帮助你在发生故障转移事件时防范数据丢失。

可使用这些相同的步骤来设置和运行针对任何服务直接故障的试验。 服务直接故障直接针对 Azure 资源运行,无需进行检测。 基于代理的故障需要安装混沌代理。

先决条件

  • Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户
  • 一个 Azure Cosmos DB 帐户。 如果你没有 Azure Cosmos DB 帐户,请按照这些步骤创建一个
  • 至少为 Azure Cosmos DB 帐户设置一个读取和一个写入区域。

在 Azure Cosmos DB 帐户上启用 Chaos Studio

Chaos Studio 无法针对资源注入故障,除非已先将该资源添加到 Chaos Studio。 可通过针对资源创建目标和功能,将资源添加到 Chaos Studio。 Azure Cosmos DB 帐户只有一种目标类型(服务直接)和一项功能(故障转移)。 其他资源最多可以有两种目标类型。 一种目标类型用于服务直接故障。 另一种目标类型用于基于代理的故障。 其他资源可能有许多其他功能。

  1. 打开 Azure 门户

  2. 在搜索栏中搜索“Chaos Studio”

  3. 选择“目标”并转到你的 Azure Cosmos DB 帐户。

    屏幕截图显示 Azure 门户中的“目标”视图。

  4. 选中 Azure Cosmos DB 帐户旁边的复选框。 选择“启用目标”并从下拉菜单中选择“启用服务直接目标”。

    显示在 Azure 门户中启用目标的屏幕截图。

  5. 确认列出了所需的资源。 选择“查看 + 启用”,然后选择“启用”

  6. 此时会显示一条通知,指示选择的资源已成功启用。

    显示已成功启用目标的通知的屏幕截图。

现在,你已成功将 Azure Cosmos DB 帐户添加到了 Chaos Studio。 在“目标”视图中,还可以管理对此资源启用的功能。 选择资源旁边的“管理操作”链接时,会显示为该资源启用的功能。

创建试验

现在,可以创建试验。 混沌试验定义了要针对目标资源执行的操作。 操作将按顺序组织并运行。 混沌试验还定义了要针对分支执行的操作(它们将并行运行)。

  1. 在 Chaos Studio 中选择“试验”选项卡。 在此视图中,可以查看和管理所有混沌试验。 选择“创建”>“新建试验”。

    屏幕截图显示了 Azure 门户中的“试验”视图。

  2. 填写要在其中部署混沌试验的“订阅”、“资源组”和“位置” 。 为试验指定一个名称。 选择“下一步: 试验设计器”。

    显示添加基本试验详细信息的屏幕截图。

  3. 现在,你已位于 Chaos Studio 试验设计器中。 使用试验设计器,可以通过添加步骤、分支和故障来构建试验。 为步骤和分支指定一个友好名称,然后选择“添加操作”>“添加故障”。

    屏幕截图显示了试验设计器。

  4. 从下拉列表中选择“CosmosDB 故障转移”。 在“持续时间”中填写你希望故障持续的分钟数,并在“readRegion”中填写你的 Azure Cosmos DB 帐户的读取区域。 选择“下一步: 目标资源”。

    屏幕截图显示了故障属性。

  5. 选择你的 Azure Cosmos DB 帐户,然后选择“下一步”。

    屏幕截图显示添加目标。

  6. 验证你的试验是否正确,然后选择“查看 + 创建”>“创建”

    显示了查看和创建试验的屏幕截图。

向目标资源授予试验权限

创建混沌试验时,Chaos Studio 会创建系统分配的托管标识,用于针对目标资源执行故障。 若要成功运行试验,必须向此标识提供目标资源的适当权限。 可将这些步骤用于任何资源和目标类型,方法是修改步骤 #3 中的角色分配以匹配该资源和目标类型的相应角色

  1. 转到你的 Azure Cosmos DB 帐户并选择“访问控制(IAM)”。

    显示 Azure Cosmos DB 概述页的屏幕截图。

  2. 选择“添加”>“添加角色分配”。

    显示访问控制概述的屏幕截图。

  3. 搜索“Cosmos DB 操作员”,然后选择该角色。 选择下一步

    显示分配 Azure Cosmos DB 操作员角色的屏幕截图。

  4. 选择“选择成员”,然后搜索试验名称。 选择试验,然后选择“选择”。 如果同一租户中存在多个名称相同的试验,则会通过添加随机字符截断试验名称。

    显示了将试验添加到角色的屏幕截图。

  5. 选择“审阅 + 分配”>“审阅 + 分配”。

运行试验

现在,你已准备就绪,可以开始运行试验。 若要查看效果,建议打开 Azure Cosmos DB 帐户概述,并在单独的浏览器选项卡中转到“全局复制数据”。在试验期间定期刷新时,会显示区域交换。

  1. 在“试验”视图中,选择你的试验。 选择“开始”>“确定”。
  2. 当“状态”更改为“正在运行”时,在“历史记录”下选择上次运行的“详细信息”,以查看正在运行的试验的详细信息。

后续步骤

现在,你已运行 Azure Cosmos DB 服务直接试验,你已准备好: