Usare le API REST per interagire con Chaos Studio
Se si sta integrando Azure Chaos Studio nelle pipeline CI/CD o si preferisce semplicemente usare chiamate API dirette per interagire con le risorse di Azure, è possibile usare l'API REST di Chaos Studio. Per il riferimento API completo, vedere Riferimento API REST Azure Chaos Studio. Questa pagina fornisce esempi per l'uso efficace dell'API REST e non è da intendersi un riferimento completo.
Questo articolo presuppone che si usi l'interfaccia della riga di comando di Azure per eseguire questi comandi, ma è possibile adattarli ad altri client REST standard.
È possibile usare le API REST di Chaos Studio per:
- Creare, modificare ed eliminare esperimenti
- Visualizzare, avviare e arrestare le esecuzioni degli esperimenti
- Visualizzare e gestire le destinazioni
- Registrare e annullare la registrazione della sottoscrizione con il provider di risorse di Chaos Studio
- Visualizzare le operazioni del provider di risorse disponibili.
Usare l'utilità az cli
per eseguire queste azioni dalla riga di comando.
Suggerimento
Per ottenere un output più dettagliato con l'interfaccia della riga di comando di Azure, aggiungere --verbose
alla fine di ogni comando. Questa variabile restituisce più metadati quando i comandi vengono eseguiti, incluso x-ms-correlation-request-id
, che facilita il debug.
Questi esempi sono stati esaminati con la versione 2023-11-01
dell'API Chaos Studio disponibile a livello generale.
Comandi del provider di risorse
Questa sezione elenca i comandi del provider Chaos Studio, che consentono di comprendere lo stato del provider di risorse e le operazioni disponibili.
Elencare i dettagli sul provider di risorse Microsoft.Chaos
Vengono visualizzate informazioni come le versioni API disponibili per il provider di risorse Chaos e la disponibilità dell'area. L'ultima api-version
richiesta per questa operazione può essere diversa da quella per le operazioni api-version
del provider di risorse Chaos.
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}"
Elencare tutte le operazioni del provider di risorse Microsoft.Chaos
az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}"
Destinazioni e funzionalità
Queste operazioni consentono di visualizzare le destinazioni e le funzionalità disponibili e di aggiungerle a una destinazione.
Elencare tutti i tipi di destinazione disponibili in un'area
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}"
Elencare tutte le funzionalità disponibili per un tipo di destinazione
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}"
Abilitare una risorsa come destinazione
Per usare una risorsa in un esperimento, è necessario abilitarla come destinazione.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}"
Abilitare le funzionalità per una destinazione
Dopo aver abilitato una risorsa come destinazione, è necessario specificare quali funzionalità (corrispondenti agli errori) sono consentite.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}"
Vedere quali funzionalità sono abilitate per una destinazione
Dopo aver abilitato una destinazione e le funzionalità, è possibile visualizzare le funzionalità abilitate. Ciò è utile per costruire l'esperimento chaos, poiché include lo schema dei parametri per ogni errore.
az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"
Sperimentazioni
Queste operazioni consentono di visualizzare, eseguire e gestire esperimenti.
Elencare tutti gli esperimenti in un gruppo di risorse
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"
Ottenere i dettagli di configurazione di un esperimento in base al nome
az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Creare o aggiornare un esperimento
az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json}
Nota: se viene visualizzato un errore UnsupportedMediaType
, assicurarsi che il file JSON a cui si fa riferimento sia valido e provare altri modi per fare riferimento al file .json
. Diversi interpreti della riga di comando possono richiedere metodi diversi per fare riferimento ai file. Un'altra sintassi comune è --body "@experimentName.json"
.
Eliminare un esperimento
az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Avviare un esperimento
az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"
Ottenere tutte le esecuzioni di un esperimento
az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}"
Elencare i dettagli di un'esecuzione specifica di un esperimento
Se un esperimento non è riuscito, può essere usato per trovare messaggi di errore e destinazioni, rami, passaggi o azioni specifiche che non sono riuscite.
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
Annullare (arrestare) un esperimento
az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}"
Altri comandi e suggerimenti utili
Anche se questi comandi non usano l'API Chaos Studio in modo specifico, possono essere utili per l'uso efficace di Chaos Studio.
Visualizzare le risorse di Chaos Studio con Azure Resource Graph
È possibile usare l'API REST di Azure Resource Graph per eseguire query sulle risorse associate a Chaos Studio, ad esempio destinazioni e funzionalità.
az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"
In alternativa, è possibile usare l'estensione az cli
di Azure Resource Graph.
az graph query -q "chaosresources | summarize count() by type"
Ad esempio, se si vuole un riepilogo di tutte le destinazioni di Chaos Studio attive nella sottoscrizione in base al gruppo di risorse, è possibile usare:
az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"
Applicazione di filtri ed esecuzione di query
Analogamente ad altri comandi dell'interfaccia della riga di comando di Azure, è possibile usare i parametri --query
e --filter
con i comandi rest
dell'interfaccia della riga di comando di Azure. Ad esempio, per visualizzare una tabella di tipi di funzionalità disponibili per un tipo di destinazione specifico, usare il comando seguente:
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}'
Definizioni dei parametri
In questa sezione vengono descritti i parametri usati in questo documento e come compilarli.
Nome parametro | Definizione | Ricerca | Esempio |
---|---|---|---|
{apiVersion} | Versione dell'API da usare quando si esegue il comando fornito | È possibile trovarla nella documentazione dell'API | 2023-11-01 |
{experimentId} | ID della risorsa di Azure per l'esperimento | È possibile trovarlo nella pagina dell'esperimento di Chaos Studio o con una chiamata GET all'endpoint /experiments |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment |
{experimentName.json} | JSON che contiene la configurazione dell'esperimento chaos | Generato dall'utente | experiment.json (Vedere un'esercitazione dell'interfaccia della riga di comando per un file di esempio completo) |
{subscriptionId} | ID sottoscrizione in cui si trova la risorsa di destinazione | Si trova nella pagina Sottoscrizioni del portale di Azure o eseguendo az account list --output table |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | Nome del gruppo di risorse in cui si trova la risorsa di destinazione | Si trova nella pagina Gruppi di risorse o eseguendo az group list --output table |
my-resource-group |
{executionDetailsId} | ID esecuzione di un'esecuzione dell'esperimento | Si trova nella pagina dell'esperimento di Chaos Studio o con una chiamata GET all'endpoint /executions |
C69E7FCD-1548-47E5-9DDA-92A5DD60E610 |
{targetType} | Tipo di destinazione per la risorsa corrispondente | Si trova nell'elenco Provider di errore o tramite chiamata GET all'endpoint /locations/{locationName}/targetTypes |
Microsoft-VirtualMachine |
{capabilityName} | Nome di una singola risorsa di funzionalità, estensione di una risorsa di destinazione | Si trova nella documentazione di riferimento sugli errori o con una chiamata GET all'endpoint capabilityTypes |
Shutdown-1.0 |
{locationName} | Area di Azure per una risorsa o un endpoint a livello di area | Trovare tutte le aree possibili per l'account con az account list-locations --output table |
eastus |