Använda REST-API:er för att interagera med Chaos Studio
Om du integrerar Azure Chaos Studio i dina CI/CD-pipelines, eller om du helt enkelt föredrar att använda direkta API-anrop för att interagera med dina Azure-resurser, kan du använda Chaos Studios REST API. Den fullständiga API-referensen finns i REST API-referensen för Azure Chaos Studio. Den här sidan innehåller exempel för att använda REST-API:et effektivt och är inte avsett som en omfattande referens.
Den här artikeln förutsätter att du använder Azure CLI för att köra dessa kommandon, men du kan anpassa dem till andra REST-standardklienter.
Du kan använda Chaos Studio REST API:er för att:
- Skapa, ändra och ta bort experiment
- Visa, starta och stoppa experimentkörningar
- Visa och hantera mål
- Registrera och avregistrera din prenumeration med Chaos Studio-resursprovidern
- Visa tillgängliga resursprovideråtgärder.
az cli
Använd verktyget för att utföra dessa åtgärder från kommandoraden.
Dricks
Om du vill få mer utförliga utdata med Azure CLI lägger du --verbose
till i slutet av varje kommando. Den här variabeln returnerar fler metadata när kommandon körs, inklusive x-ms-correlation-request-id
, vilket underlättar felsökning.
Dessa exempel har granskats med den allmänt tillgängliga Chaos Studio API-versionen 2023-11-01
.
Kommandon för resursprovider
I det här avsnittet visas kommandona för Chaos Studio-providern som hjälper dig att förstå resursproviderns status och tillgängliga åtgärder.
Visa information om resursprovidern Microsoft.Chaos
Detta visar information som tillgängliga API-versioner för Chaos-resursprovidern och regionens tillgänglighet. Det senaste api-version
som krävs för detta kan skilja sig från api-version
åtgärderna för Chaos-resursprovidern.
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}"
Visa en lista över alla åtgärder för resursprovidern Microsoft.Chaos
az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}"
Mål och kapaciteter
De här åtgärderna hjälper dig att se vilka mål och funktioner som är tillgängliga och lägga till dem i ett mål.
Visa en lista över alla måltyper som är tillgängliga i en region
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}"
Visa en lista över alla tillgängliga funktioner för en måltyp
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}"
Aktivera en resurs som mål
Om du vill använda en resurs i ett experiment måste du aktivera den som ett mål.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}"
Aktivera funktioner för ett mål
När en resurs har aktiverats som mål måste du ange vilka funktioner (motsvarande fel) som tillåts.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}"
Se vilka funktioner som är aktiverade för ett mål
När ett mål och funktioner har aktiverats kan du visa de aktiverade funktionerna. Detta är användbart för att konstruera ditt kaosexperiment, eftersom det innehåller parameterschemat för varje fel.
az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"
Experiment
De här åtgärderna hjälper dig att visa, köra och hantera experiment.
Visa en lista över alla experiment i en resursgrupp
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"
Hämta ett experiments konfigurationsinformation efter namn
az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Skapa eller uppdatera ett experiment
az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json}
Obs! Om du får ett UnsupportedMediaType
fel kontrollerar du att den refererade JSON-filen är giltig och provar andra sätt att referera .json
till filen. Olika kommandoradstolkar kan kräva olika metoder för filreferenser. En annan vanlig syntax är --body "@experimentName.json"
.
Ta bort ett experiment
az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Starta ett experiment
az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"
Hämta alla körningar av ett experiment
az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}"
Visa information om en specifik experimentkörning
Om ett experiment har misslyckats kan detta användas för att hitta felmeddelanden och specifika mål, grenar, steg eller åtgärder som misslyckades.
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
Avbryt (stoppa) ett experiment
az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}"
Andra användbara kommandon och tips
Även om dessa kommandon inte använder Chaos Studio API specifikt, kan de vara till hjälp för att använda Chaos Studio effektivt.
Visa Chaos Studio-resurser med Azure Resource Graph
Du kan använda REST API:et för Azure Resource Graph för att fråga efter resurser som är associerade med Chaos Studio, till exempel mål och funktioner.
az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"
Du kan också använda Azure Resource Graph-tillägget az cli
.
az graph query -q "chaosresources | summarize count() by type"
Om du till exempel vill ha en sammanfattning av alla Chaos Studio-mål som är aktiva i din prenumeration efter resursgrupp kan du använda:
az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"
Filtrering och frågor
Precis som andra Azure CLI-kommandon kan du använda parametrarna --query
och --filter
med Azure CLI-kommandona rest
. Om du till exempel vill se en tabell med tillgängliga kapacitetstyper för en viss måltyp använder du följande kommando:
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}'
Parameterdefinitioner
I det här avsnittet beskrivs de parametrar som används i hela det här dokumentet och hur du kan fylla i dem.
Parameternamn | Definition | Sökning | Exempel |
---|---|---|---|
{apiVersion} | Version av API:et som ska användas när du kör det angivna kommandot | Finns i API-dokumentationen | 2023-11-01 |
{experimentId} | Azure-resurs-ID för experimentet | Finns på sidan Chaos Studio-experiment eller med ett GET-anrop till /experiments slutpunkten |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment |
{experimentName.json} | JSON som innehåller konfigurationen av kaosexperimentet | Genereras av användaren | experiment.json (Se en CLI-självstudie för en fullständig exempelfil) |
{subscriptionId} | Prenumerations-ID där målresursen finns | Hitta på sidan Azure Portal prenumerationer eller genom att köraaz account list --output table |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | Namnet på resursgruppen där målresursen finns | Sök på sidan Resursgrupper eller genom att köraaz group list --output table |
my-resource-group |
{executionDetailsId} | Körnings-ID för en experimentkörning | Hitta på sidan Chaos Studio-experiment eller med ett GET-anrop till /executions slutpunkten |
C69E7FCD-1548-47E5-9DDA-92A5DD60E610 |
{targetType} | Typ av mål för motsvarande resurs | Hitta i listan Felprovidrar eller ett GET-anrop till /locations/{locationName}/targetTypes slutpunkten |
Microsoft-VirtualMachine |
{capabilityName} | Namn på en enskild kapacitetsresurs, utöka en målresurs | Hitta i dokumentationen för felreferensen eller med ett GET-anrop till capabilityTypes slutpunkten |
Shutdown-1.0 |
{locationName} | Azure-region för en resurs eller regional slutpunkt | Hitta alla möjliga regioner för ditt konto med az account list-locations --output table |
eastus |