你当前正在访问 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 帐户只有一种目标类型(服务直接)和一项功能(故障转移)。 其他资源最多可以有两种目标类型。 一种目标类型用于服务直接故障。 另一个目标类型用于基于代理的故障。 其他资源可能具有许多其他功能。
打开 Azure 门户。
在搜索栏中搜索 Chaos Studio 。
选择“ 目标 ”并转到 Azure Cosmos DB 帐户。
选择 Azure Cosmos DB 帐户旁边的检查框。 选择“ 启用目标 ”,然后从下拉菜单中选择“ 启用服务直接目标 ”。
确认列出了所需的资源。 选择“查看 + 启用”,然后选择“启用”。
此时会显示一条通知,指示选择的资源已成功启用。
现已成功将 Azure Cosmos DB 帐户添加到 Chaos Studio。 在 “目标” 视图中,还可以管理在此资源上启用的功能。 选择资源旁边的“管理操作”链接会显示为该资源启用的功能。
创建试验
现在,可以创建试验。 混沌试验定义要针对目标资源执行的操作。 操作按顺序组织并运行。 混沌试验还定义了要针对并行运行的分支执行的操作。
在 Chaos Studio 中选择“试验 ”选项卡。 在此视图中,可以查看和管理所有混沌试验。 选择“创建”>“新建试验”。
填写要在其中部署混沌试验的“订阅”、“资源组”和“位置” 。 为试验指定一个名称。 选择“下一步: 试验设计器”。
现在你正在 Chaos Studio 试验设计器中。 使用试验设计器,可以通过添加步骤、分支和故障来构建试验。 为步骤和分支提供友好名称,然后选择“添加操作>添加错误”。
从下拉列表中选择 CosmosDB 故障转移 。 使用 Azure Cosmos DB 帐户的读取区域填充失败的分钟数和 readRegion 的持续时间。 选择“下一步: 目标资源”。
选择 Azure Cosmos DB 帐户,然后选择“ 下一步”。
验证试验是否正确,然后选择“查看 + 创建>”。
向目标资源授予试验权限
创建混沌试验时,Chaos Studio 会创建系统分配的托管标识,用于针对目标资源执行故障。 若要成功运行试验,必须向此标识提供目标资源的适当权限。 可以通过修改步骤 3 中的角色分配来匹配 该资源和目标类型的相应角色,从而对任何资源和目标类型使用这些步骤。
转到 Azure Cosmos DB 帐户并选择访问控制(IAM)。
选择“添加”>“添加角色分配”。
搜索“Cosmos DB 操作员”,然后选择该角色。 选择下一步。
选择“选择成员”,然后搜索试验名称。 选择试验,然后选择“选择”。 如果同一租户中有多个具有相同名称的试验,则试验名称将被截断,并添加随机字符。
选择“审阅 + 分配>审阅 + 分配”。
运行试验
现在可以运行试验了。 若要查看效果,建议打开 Azure Cosmos DB 帐户概述,并在单独的浏览器选项卡中全局复制 数据 。试验期间定期刷新显示区域交换。
- 在 “试验 ”视图中,选择试验。 选择“开始>确定”。
- 当状态更改为“正在运行”时,选择“历史记录”下最新运行的详细信息以查看正在运行的试验的详细信息。
后续步骤
现在,你已运行 Azure Cosmos DB 服务直接试验,接下来可以: