Usar APIs REST para interagir com o Chaos Studio

Se você estiver integrando o Azure Chaos Studio em seus pipelines de CI/CD ou simplesmente preferir usar chamadas diretas de API para interagir com seus recursos do Azure, poderá usar a API REST do Chaos Studio. Para obter a referência completa da API, visite a referência da API REST do Azure Chaos Studio. Esta página fornece exemplos para usar a API REST de forma eficaz 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 a outros clientes REST padrão.

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

  • Criar, modificar e excluir experimentos
  • Exibir, iniciar e parar execuções de experimentos
  • Visualizar e gerenciar alvos
  • Registre e cancele o registro de sua assinatura com o provedor de recursos do Chaos Studio
  • Exiba as operações disponíveis do provedor de recursos.

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

Gorjeta

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 revisados com a versão 2023-11-01geralmente disponível da API do Chaos Studio.

Comandos do provedor de recursos

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

Listar detalhes sobre o provedor de recursos Microsoft.Chaos

Isso mostra informações como versões de API disponíveis para o provedor de recursos Chaos e disponibilidade da região. O requisito mais recente api-version para isso pode diferir das operações do api-version provedor de recursos do Caos.

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

Metas e capacidades

Essas operações ajudam você a ver quais destinos e recursos 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 todos os recursos 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 destino

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

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

Habilitar recursos para um destino

Depois que um recurso tiver sido habilitado como destino, você precisará especificar quais recursos (correspondentes a falhas) são permitidos.

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

Veja quais recursos estão habilitados para um destino

Depois que um destino e os recursos forem habilitados, você poderá visualizar os recursos habilitados. Isso é útil para construir seu experimento de caos, uma vez que inclui o esquema de parâmetros para cada falha.

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

Experimentações

Essas operações ajudam 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 os 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 uma experiência

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

Excluir um experimento

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

Iniciar uma experiência

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 da execução de um experimento específico

Se um experimento tiver falhado, isso poderá ser usado para localizar mensagens de erro e destinos, ramificações, etapas ou ações específicas que falharam.

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

Cancelar (parar) uma experiência

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 a API do Chaos Studio especificamente, eles podem ser úteis para usar o Chaos Studio de forma eficaz.

Exibir recursos do Chaos Studio com o Azure Resource Graph

Você pode usar a API REST do Azure Resource Graph para consultar recursos associados ao Chaos Studio, como destinos e recursos.

 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 az cliextensão do Azure Resource Graph.

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

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

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

Filtragem e consulta

Como outros comandos da CLI do Azure, você pode usar os parâmetros e --filter com os --query comandos da CLI rest do Azure. Por exemplo, para ver uma tabela de tipos de recursos 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âmetros

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

Nome do parâmetro Definição Procura 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 de recurso do Azure para o experimento Pode ser encontrado na página Chaos Studio Experiment ou com uma chamada GET para o /experiments endpoint /subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/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 utilizador experiment.json (Consulte um tutorial da CLI para obter um arquivo de exemplo completo)
{subscriptionId} ID de assinatura onde o recurso de destino está localizado Localize na página Subscrições do portal do Azure ou executandoaz account list --output table 6b052e15-03d3-4f17-b2e1-be7f07588291
{resourceGroupName} Nome do grupo de recursos onde o recurso de destino está localizado Localizar na página Grupos de Recursos ou executando az group list --output table my-resource-group
{executionDetailsId} ID de execução de uma execução de experimento Encontre na página Chaos Studio Experiment ou com uma chamada GET para o /executions ponto de extremidade C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} Tipo de destino para o recurso correspondente Localizar na lista Fornecedores de falhas ou uma chamada GET para o /locations/{locationName}/targetTypes ponto de extremidade Microsoft-VirtualMachine
{capabilityName} Nome de um recurso de capacidade individual, estendendo um recurso de destino Encontre na documentação de referência de falha ou com uma chamada GET para o capabilityTypes ponto de extremidade Shutdown-1.0
{nomedolocal} Região do Azure para um recurso ou ponto de extremidade regional Encontre todas as regiões possíveis para a sua conta com az account list-locations --output table eastus