你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure Chaos Studio 预览版中的目标和功能
在向 Azure 资源注入故障之前,该资源必须先启用相应的目标和功能。 目标和功能控制为故障注入启用哪些资源,以及哪些故障可以针对这些资源运行。
通过使用目标和功能 以及其他安全措施,可以通过 Azure Chaos Studio 预览版避免意外或恶意的故障注入。 例如,借助目标和功能,可以允许 CPU 压力故障针对生产虚拟机运行,同时防止终止进程故障针对它们运行。
目标
混沌目标使 Chaos Studio 能够针对特定的目标类型与资源进行交互。 目标类型表示对资源注入故障的方法。 仅支持服务直接故障的资源类型有一个目标类型。 例如, Microsoft-CosmosDB
Azure Cosmos DB 的类型。
支持服务直接故障和基于代理的错误的资源类型有两种目标类型。 一种目标类型用于服务直接故障 (例如 Microsoft-VirtualMachine
) 。 另一个目标类型适用于基于代理的错误, (始终 Microsoft-Agent
) 。
目标是作为加入到 Chaos Studio 的资源的子资源创建的扩展资源。 例如虚拟机或网络安全组。 目标定义在资源上启用的目标类型。 例如,如果要使用此资源 ID 载入 Azure Cosmos DB 实例:
/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Azure Cosmos DB 资源具有采用如下示例格式的子资源:
/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
只有目标是从中创建的资源才能通过 Chaos Studio 进行故障注入。
功能
借助此功能,Chaos Studio 可以针对资源运行特定的故障,例如关闭虚拟机。 每个目标类型的功能都是唯一的。 它们表示启用的错误,例如 CPUPressure-1.0
。 若要了解所有可用故障及其相应的功能名称和目标类型,请参阅 Chaos Studio 故障库。
功能是作为目标的子级创建的扩展资源。 例如,如果要在具有服务直接目标 ID 的虚拟机上启用关闭错误:
/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
目标资源具有采用如下示例格式的子资源:
/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0
试验只能在启用了相应功能的已加入目标上注入故障。
列出功能名称和参数
故障 库中提供了功能名称、故障 URL 和参数的列表,以供参考。 可以使用 HTTP 响应创建功能,或对现有功能执行 GET 操作,以便按需获取此信息。 例如,若要对 VM 关闭功能执行 GET 操作,请执行以下操作:
az rest --method get --url "https://management.azure.com/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0?api-version=2021-08-11-preview"
返回以下 JSON:
{
"id": "/subscriptions/fd9ccc83-faf6-4121-9aff-2a2d685ca2a2/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0",
"name": "shutdown-1.0",
"properties": {
"description": null,
"name": "shutdown-1.0",
"parametersSchema": "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json",
"publisher": "Microsoft",
"targetType": "VirtualMachine",
"type": "shutdown",
"urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
"version": "1.0"
},
"resourceGroup": "myRG",
"systemData": {
"createdAt": "2021-09-15T23:00:00.826575+00:00",
"lastModifiedAt": "2021-09-15T23:00:00.826575+00:00"
},
"type": "Microsoft.Chaos/targets/capabilities"
}
properties.urn
属性用于定义想要在混沌试验中运行的故障。 若要了解此错误参数的架构,可以获取 引用的 properties.parametersSchema
架构:
az rest --method get --url "https://schema-tc.eastus.chaos-prod.azure.com/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0/parametersSchema.json"
返回以下 JSON:
{
"$schema": "https://json-schema.org/draft-07/schema",
"properties": {
"abruptShutdown": {
"type": "boolean"
},
"restartWhenComplete": {
"type": "boolean"
}
},
"type": "object"
}
后续步骤
现在,你已了解目标和功能,接下来可以: