Использование 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-01
API 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 |