Целевые объекты и возможности в Azure Chaos Studio
Прежде чем вы сможете внедрить ошибку в ресурс Azure, ресурс должен иметь соответствующие целевые объекты и возможности. Целевые объекты и возможности определяют, какие ресурсы включены для внедрения ошибок и которые могут выполняться с этими ресурсами.
Используя целевые объекты и возможности вместе с другими мерами безопасности, вы можете избежать случайной или вредоносной внедрения ошибок в Azure Chaos Studio. Например, с целевыми объектами и возможностями можно разрешить запуск сбоя нагрузки ЦП на рабочих виртуальных машинах, предотвращая выполнение сбоя процесса убийства.
Целевые объекты
Целевой объект хаоса позволяет Chaos Studio взаимодействовать с ресурсом для определенного типа целевого объекта. Целевой тип представляет метод внедрения ошибок в ресурс. Типы ресурсов, поддерживающие только ошибки с прямой службой, имеют один целевой тип. Примером является Microsoft-CosmosDB
тип Для Azure Cosmos DB.
Типы ресурсов, поддерживающие ошибки на основе служб и агентов, имеют два целевых типа. Один из целевых типов — для сбоев с прямой службой (например, Microsoft-VirtualMachine
). Другой тип целевого объекта предназначен для сбоев на основе агента (всегда Microsoft-Agent
).
Целевой объект — это ресурс расширения, созданный в качестве дочернего ресурса, подключенного к Chaos Studio. Примерами являются виртуальная машина или группа безопасности сети. Целевой объект определяет тип целевого объекта, который включен в ресурсе. Например, при подключении экземпляра Azure Cosmos DB с этим идентификатором ресурса:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB
Ресурс Azure Cosmos DB имеет дочерний ресурс, форматированный в следующем примере:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/chaosstudiodemo/providers/Microsoft.DocumentDB/databaseAccounts/myDB/providers/Microsoft.Chaos/targets/Microsoft-CosmosDB
Только ресурсы с целевым объектом, созданным из них, предназначены для внедрения ошибок с помощью Chaos Studio.
Возможности
Возможность позволяет Chaos Studio выполнять определенную ошибку в ресурсе, например завершение работы виртуальной машины. Возможности уникальны для каждого целевого типа. Они представляют ошибку, которую они позволяют, например CPUPressure-1.0
. Чтобы понять все доступные ошибки и соответствующие имена возможностей и типы целевых объектов, ознакомьтесь с библиотекой ошибок Chaos Studio.
Возможность — это ресурс расширения, созданный в качестве дочернего объекта. Например, если вы включаете сбой завершения работы виртуальной машины с идентификатором целевого объекта service-direct:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine
Целевой ресурс имеет дочерний ресурс, отформатированный в следующем примере:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Compute/virtualMachines/myVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/shutdown-1.0
Эксперимент может внедрять только ошибки на подключенных целевых объектах с соответствующими возможностями.
Перечисление имен возможностей и параметров
Для справки список имен возможностей, URI сбоя и параметров доступен в нашей библиотеке ошибок. Вы можете использовать HTTP-ответ, чтобы создать возможность или выполнить GET по существующей возможности, чтобы получить эту информацию по запросу. Например, чтобы выполнить функцию 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=2023-11-01"
Возвращает следующий код JSON:
{
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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"
}
Следующие шаги
Теперь, когда вы понимаете, какие целевые объекты и возможности являются, вы готовы: