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


Использование 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 команды Azure CLI rest и --filter параметры. Например, чтобы просмотреть таблицу доступных типов возможностей для определенного целевого типа, используйте следующую команду:

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 к конечной точке capabilityTypes Shutdown-1.0
{locationName} Регион Azure для ресурса или региональной конечной точки Поиск всех возможных регионов для учетной записи с помощью az account list-locations --output table eastus