Compartilhar via


Usar APIs REST para interagir com o Chaos Studio

Se você estiver integrando o Azure Chaos Studio aos pipelines de CI/CD ou se simplesmente prefere usar chamadas à API diretas para interagir com seus recursos do Azure, use a API REST do Chaos Studio. Para obter a referência de API completa, acesse Referência de API REST do Azure Chaos Studio. Esta página traz amostras de uso eficaz da API REST e não pretende ser uma referência abrangente.

Este artigo pressupõe que você esteja usando a CLI do Azure para executar esses comandos, mas você pode adaptá-los para outros clientes REST padrão.

Você pode usar as APIs REST do Chaos Studio para:

  • Criar, modificar e excluir experimentos
  • Visualizar, iniciar e interromper execuções de experimentos
  • Visualizar e gerenciar destinos
  • Registrar sua assinatura e cancelar o registro dela com o provedor de recursos do Chaos Studio
  • Visualizar as operações do provedor de recursos disponíveis.

Use o utilitário az cli para executar essas ações na linha de comando.

Dica

Para obter uma saída mais detalhada com a CLI do Azure, acrescente --verbose ao final de cada comando. Essa variável retorna mais metadados quando os comandos são executados, incluindo x-ms-correlation-request-id, o que ajuda na depuração.

Esses exemplos foram analisados com a versão 2023-11-01 da API do Chaos Studio em disponibilidade geral.

Comandos do provedor de recursos

Esta seção lista os comandos do provedor do Chaos Studio, que ajudam você a entender o status do provedor de recursos e as operações disponíveis.

Listar os detalhes sobre o provedor de recursos Microsoft.Chaos

Aqui são mostradas informações como versões de API disponíveis para o provedor de recursos do Chaos e a disponibilidade da região. A api-version mais recente necessária para isso pode ser diferente da api-version para as operações do provedor de recursos do Chaos.

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

Listar todas as operações do provedor de recursos Microsoft.Chaos

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

Destinos e recursos

Essas operações ajudam você a ver quais destinos e funcionalidades estão disponíveis e adicioná-los a um destino.

Listar todos os tipos de destino disponíveis em uma região

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

Listar todas as funcionalidades disponíveis para um tipo de destino

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

Habilitar um recurso como um destino

Para usar um recurso em um experimento, você precisa habilitá-lo como um destino.

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

Habilitar funcionalidades para um destino

Depois que um recurso for habilitado como um destino, você precisará especificar as funcionalidades (correspondentes a falhas) que são permitidas.

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

Ver quais funcionalidades estão habilitadas para um destino

Depois que um destino e as funcionalidades tiverem sido habilitados, você poderá ver as funcionalidades habilitadas. Isso é útil para a construção do experimento de caos, pois inclui o esquema de parâmetro para cada falha.

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

Experimentos

Essas operações ajudam você a visualizar, executar e gerenciar experimentos.

Listar todos os experimentos em um grupo de recursos

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

Obter detalhes de configuração de um experimento por nome

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

Criar ou atualizar um experimento

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

Observação: se você receber um erro UnsupportedMediaType, verifique se o arquivo JSON referenciado é válido e tente outras maneiras de referenciar o arquivo .json. Cada interpretador de linha de comando pode exigir diferentes métodos de referência de arquivo. Outra sintaxe comum é --body "@experimentName.json".

Excluir um experimento

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

Iniciar um experimento

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

Obter todas as execuções de um experimento

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

Listar os detalhes de uma execução de experimento específica

Se um experimento falhou, isso pode ser usado para localizar mensagens de erro e destinos específicos, branches, etapas ou ações com falha.

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

Cancelar (parar) um experimento

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

Outros comandos e dicas úteis

Embora esses comandos não usem especificamente a API do Chaos Studio, eles podem ser úteis para um uso eficiente do Chaos Studio.

Visualizar recursos do Chaos Studio com o Azure Resource Graph

Use a API REST do Azure Resource Graph para consultar recursos associados ao Chaos Studio, como destinos e funcionalidades.

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

Como alternativa, você pode usar a extensão az cli do Azure Resource Graph.

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

Por exemplo, se você quiser ter um resumo de todos os destinos do Chaos Studio ativos em sua assinatura por grupo de recursos, poderá usar:

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

Filtragem e consulta

Assim como outros comandos da CLI do Azure, você pode usar os parâmetros --query e --filter com os comandos rest da CLI do Azure. Por exemplo, para ver uma tabela de tipos de funcionalidade disponíveis para um tipo de destino específico, use o seguinte comando:

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}'

Definições de parâmetro

Esta seção descreve os parâmetros usados neste documento e como você pode preenchê-los.

Nome do Parâmetro Definição Pesquisa Exemplo
{apiVersion} Versão da API a ser usada ao executar o comando fornecido Pode ser encontrado na documentação da API 2023-11-01
{experimentId} ID do recurso do Azure referente ao experimento Pode ser encontrado na página Experimento do Chaos Studio ou com uma chamada GET ao ponto de extremidade /experiments /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} JSON que contém a configuração do experimento de caos Gerado pelo usuário experiment.json (Confira um tutorial da CLI para ver um exemplo de arquivo completo)
{subscriptionId} ID da assinatura em que o recurso de destino está localizado Encontre-a na página Assinaturas do portal do Azure ou executando az account list --output table aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
{resourceGroupName} Nome do grupo de recursos em que o recurso de destino está localizado Encontre-a na página Grupos de Recursos ou executando az group list --output table my-resource-group
{executionDetailsId} ID da execução de um experimento Encontre-a na página Experimento do Chaos Studio ou com uma chamada GET ao ponto de extremidade /executions C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} Tipo de destino para o recurso correspondente Encontre-a na lista de provedores de falha ou com uma chamada GET para o ponto de extremidade /locations/{locationName}/targetTypes Microsoft-VirtualMachine
{capabilityName} Nome de um recurso de funcionalidade individual, estendendo um recurso de destino Encontre-a na documentação de referência de falha ou com uma chamada GET ao ponto de extremidade capabilityTypes Shutdown-1.0
{locationName} Região do Azure para um recurso ou um ponto de extremidade regional Encontre todas as regiões possíveis para sua conta com az account list-locations --output table eastus