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 |