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-01
geralmente 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}"
Objetivos 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}
Nota: se receber um UnsupportedMediaType
erro, certifique-se de que o ficheiro JSON referenciado é válido e tente outras formas de referenciar o .json
ficheiro. Interpretadores de linha de comando diferentes podem exigir métodos diferentes de referência de arquivos. Outra sintaxe comum é --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 cli
extensã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 --query
parâmetros e --filter
com os 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/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 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 |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{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 |