Поделиться через


Целевые объекты и возможности в 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

Эксперимент может внедрять только ошибки на подключенных целевых объектах с соответствующими возможностями.

Перечисление имен возможностей и параметров

Для справки в нашей библиотеке ошибок доступен список наименований возможностей, URN сбоев и параметров. Вы можете использовать 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"
}

Следующие шаги

Теперь, когда вы понимаете, что такое целевые объекты и возможности, вы готовы: