Прочитать на английском

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


Использование REST API для взаимодействия с Chaos Studio

Если вы интегрируете Azure Chaos Studio в конвейеры CI/CD или просто предпочитаете использовать прямые вызовы API для взаимодействия с ресурсами Azure, вы можете использовать REST API Chaos Studio. Для получения полной справочной информации по API посетите страницу справочника REST API Azure Chaos Studio. На этой странице приведены примеры эффективного использования REST API и не предназначены в качестве комплексной ссылки.

В этой статье предполагается, что вы используете Azure CLI для выполнения этих команд, но их можно адаптировать к другим стандартным клиентам REST.

REST API-интерфейсы Студии Chaos Studio можно использовать для:

  • Создание, изменение и удаление экспериментов
  • Просмотр, запуск и остановка выполнения экспериментов
  • Просмотр целевых объектов и управление ими
  • Регистрация и отмена регистрации подписки с помощью поставщика ресурсов Chaos Studio
  • Просмотр доступных операций поставщика ресурсов.

az cli Используйте программу для выполнения этих действий из командной строки.

Совет

Чтобы получить более подробные выходные данные с помощью Azure CLI, добавьте --verbose в конец каждой команды. Эта переменная возвращает дополнительные метаданные при выполнении команд, включая x-ms-correlation-request-id, что помогает при отладке.

Эти примеры были рассмотрены с общедоступной версией 2023-11-01API Chaos Studio.

Команды поставщика ресурсов

В этом разделе перечислены команды поставщика Chaos Studio, которые помогают понять состояние поставщика ресурсов и доступные операции.

Список сведений о поставщике ресурсов Microsoft.Chaos

Здесь показаны такие сведения, как доступные версии API для поставщика ресурсов Chaos и доступности региона. Самое последнее api-version, необходимое для этого, может отличаться от api-version операций поставщика ресурсов Chaos.

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}" 

Список всех операций поставщика ресурсов Microsoft.Chaos

az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}" 

Целевые объекты и возможности

Эти операции помогают узнать, какие целевые объекты и возможности доступны, и добавить их в целевой объект.

Список всех целевых типов, доступных в регионе

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}" 

Список всех возможностей, доступных для целевого типа

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}" 

Включение ресурса в качестве целевого объекта

Чтобы использовать ресурс в эксперименте, необходимо включить его в качестве целевого объекта.

az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}" 

Включение возможностей для целевого объекта

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

az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}" 

Узнайте, какие возможности включены для целевого объекта

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

az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"

Эксперименты

Эти операции помогают просматривать, запускать и управлять экспериментами.

Перечислите все эксперименты в группе ресурсов

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"

Получение сведений о конфигурации эксперимента по имени

az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"

Создание или обновление эксперимента

az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json} 

Примечание. Если вы получаете ошибку, убедитесь, что указанный UnsupportedMediaType файл JSON является допустимым, и попробуйте использовать другие способы ссылки на .json файл. Для разных интерпретаторов командной строки могут потребоваться различные методы ссылки на файл. Другой распространенный синтаксис: --body "@experimentName.json".

Удаление эксперимента

az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" 

Запуск эксперимента

az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"

Получить все запуски эксперимента

az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}" 

Перечисление сведений о конкретном выполнении эксперимента

Если эксперимент провалился, это можно использовать для поиска сообщений об ошибках и конкретных целей, веток, шагов или действий, которые завершились неудачно.

az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}" 

Отмена (остановка) эксперимента

az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}" 

Другие полезные команды и советы

Хотя эти команды не используют API Chaos Studio в частности, они могут быть полезны для эффективного использования Chaos Studio.

Просмотр ресурсов Chaos Studio с помощью Azure Resource Graph

REST API Azure Resource Graph можно использовать для запроса ресурсов, связанных с Chaos Studio, таких как целевые объекты и возможности.

 az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"

Кроме того, можно использовать расширение Azure Resource Graph.az cli

az graph query -q "chaosresources | summarize count() by type"

Например, если требуется сводка по всем целевым объектам Chaos Studio, активным в вашей подписке по группам ресурсов, можно использовать следующее:

az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"

Фильтрация и запросы

Как и другие команды Azure CLI, можно использовать параметры --query и --filter с командами Azure CLI rest. Например, чтобы просмотреть таблицу доступных типов возможностей для определенного целевого типа, используйте следующую команду:

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version=2023-11-01" --output table --query 'value[].{name:name, faultType:properties.runtimeProperties.kind, urn:properties.urn}'

Определения параметров

В этом разделе описываются параметры, используемые в этом документе, и способы их заполнения.

Наименование параметра Определение Поиск Пример
{apiVersion} Версия API, используемая при выполнении предоставленной команды См. документацию по API. 2023-11-01
{experimentId} Идентификатор ресурса Azure для эксперимента Можно найти на странице эксперимента Chaos Studio или с помощью вызова GET к конечной точке /experiments. /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} JSON, содержащий конфигурацию эксперимента хаоса Создано пользователем experiment.json (См . руководство по CLI для полного примера файла)
{subscriptionId} Идентификатор подписки, в которой находится целевой ресурс Найдите страницу портал Azure подписок или выполните командуaz account list --output table aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
{resourceGroupName} Имя группы ресурсов, в которой находится целевой ресурс Найдите страницу групп ресурсов или выполните командуaz group list --output table my-resource-group
{executionDetailsId} Идентификатор выполнения эксперимента Найдите на странице эксперимента Chaos Studio или с помощью GET-вызова к конечной точке /executions C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} Тип целевого объекта для соответствующего ресурса Найдите в списке поставщиков ошибок или выполните GET-запрос к конечной точке /locations/{locationName}/targetTypes. Microsoft-VirtualMachine
{capabilityName} Имя ресурса индивидуальной возможности, который расширяет целевой ресурс Найдите в справочной документации по сбоям или с помощью вызова GET к конечной точке . Shutdown-1.0
{locationName} Регион Azure для ресурса или региональной конечной точки Найдите все возможные регионы для своей учетной записи с помощью az account list-locations --output table eastus