Verwenden von REST-APIs für die Interaktion mit Chaos Studio

Wenn Sie Azure Chaos Studio in Ihre CI/CD-Pipelines integrieren oder einfach direkte API-Aufrufe für die Interaktion mit Ihren Azure-Ressourcen verwenden möchten, können Sie die REST-API von Chaos Studio verwenden. Die vollständige API-Referenz finden Sie in der REST-API-Referenz von Azure Chaos Studio. Diese Seite enthält Beispiele für die effektive Verwendung der REST-API und ist nicht als umfassende Referenz vorgesehen.

In diesem Artikel wird davon ausgegangen, dass Sie die Azure CLI verwenden, um diese Befehle auszuführen, aber Sie können sie an andere Standard-REST-Clients anpassen.

Sie können die REST-APIs von Chaos Studio zu folgenden Zwecken verwenden:

  • Erstellen, Ändern und Löschen von Experimenten
  • Anzeigen, Starten und Beenden von Experimentausführungen
  • Anzeigen und Verwalten von Zielen
  • Registrieren und Aufheben der Registrierung Ihres Abonnements beim Chaos Studio-Ressourcenanbieter
  • Anzeigen von verfügbaren Vorgängen der Ressourcenanbieter

Verwenden Sie das Hilfsprogramm az cli, um diese Aktionen über die Befehlszeile auszuführen.

Tipp

Um eine ausführlichere Ausgabe mit der Azure CLI zu erhalten, fügen Sie --verbose an das Ende der einzelnen Befehle an. Diese Variable gibt weitere Metadaten zurück, wenn Befehle ausgeführt werden, einschließlich x-ms-correlation-request-id, wodurch das Debuggen unterstützt wird.

Diese Beispiele wurden mit der allgemein verfügbaren Chaos Studio-API-Version 2023-11-01 überprüft.

Befehle für Ressourcenanbieter

In diesem Abschnitt werden die Chaos Studio-Anbieterbefehle aufgeführt, die Ihnen helfen, den Status und die verfügbaren Vorgänge des Ressourcenanbieters zu verstehen.

Auflisten von Details zum Microsoft.Chaos-Ressourcenanbieter

Dies zeigt Informationen wie verfügbare API-Versionen für den Chaos-Ressourcenanbieter und die regionale Verfügbarkeit an. Die neueste api-version, die hierfür erforderlich ist, kann sich von der api-version für Chaos-Ressourcenanbietervorgänge unterscheiden.

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

Auflisten aller Vorgänge des Microsoft.Chaos-Ressourcenanbieters

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

Ziele und Funktionen

Mithilfe dieser Vorgänge können Sie feststellen, welche Ziele und Funktionen verfügbar sind, und sie einem Ziel hinzufügen.

Auflisten aller in einer Region verfügbaren Zieltypen

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}" 

Auflisten aller verfügbaren Funktionen für einen Zieltyp

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}" 

Aktivieren einer Ressource als Ziel

Damit Sie eine Ressource in einem Experiment verwenden können, müssen Sie sie als Ziel aktivieren.

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

Aktivieren von Funktionen für ein Ziel

Nachdem eine Ressource als Ziel aktiviert wurde, müssen Sie angeben, welche Funktionen (die Fehlern entsprechen) zulässig sind.

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

Anzeigen, welche Funktionen für ein Ziel aktiviert sind

Nachdem Sie ein Ziel und eine Funktion aktiviert haben, können Sie die aktivierten Funktionen anzeigen. Dies ist nützlich, um Ihr Chaos-Experiment zu konstruieren, da es das Parameterschema für jeden Fehler enthält.

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

Experimente

Diese Vorgänge unterstützen Sie beim Anzeigen, Ausführen und Verwalten von Experimenten.

Auflisten aller Experimente in einer Ressourcengruppe

az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"

Abrufen der Konfigurationsdetails eines Experiments anhand des Namens

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

Erstellen oder Aktualisieren eines Experiments

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

Hinweis: Wenn Sie einen Fehler UnsupportedMediaType erhalten, stellen Sie sicher, dass Ihre referenzierte JSON-Datei gültig ist, und versuchen Sie, mit anderen Methoden auf die .json-Datei zu verweisen. Für unterschiedliche Befehlszeileninterpreter sind möglicherweise unterschiedliche Methoden für Dateiverweise erforderlich. Eine weitere häufige Syntax ist --body "@experimentName.json".

Löschen eines Experiments

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

Starten Sie ein Experiment

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

Abrufen aller Ausführungen eines Experiments

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

Auflisten der Details einer bestimmten Experimentausführung

Wenn ein Experiment fehlgeschlagen ist, kann dies verwendet werden, um Fehlermeldungen und bestimmte Ziele, Verzweigungen, Schritte oder Aktionen zu finden, die fehlgeschlagen sind.

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

Abbrechen (Beenden) eines Experiments

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

Weitere hilfreiche Befehle und Tipps

Obwohl diese Befehle nicht speziell die Chaos Studio-API verwenden, können sie hilfreich sein, um Chaos Studio effektiv zu verwenden.

Anzeigen von Chaos Studio-Ressourcen mit Azure Resource Graph

Sie können die REST-API von Azure Resource Graph verwenden, um Ressourcen abzufragen, die Chaos Studio zugeordnet sind, z. B. Ziele und Funktionen.

 az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"

Alternativ können Sie die az cli-Erweiterung von Azure Resource Graph verwenden.

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

Wenn Sie beispielsweise eine Zusammenfassung nach Ressourcengruppe aller Chaos Studio-Ziele wünschen, die in Ihrem Abonnement aktiv sind, können Sie Folgendes verwenden:

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

Filtern und Abfragen

Wie andere Azure CLI-Befehle können Sie die Parameter --query und --filter mit den rest-Befehlen der Azure CLI verwenden. Um beispielsweise eine Tabelle der verfügbaren Funktionstypen für einen bestimmten Zieltyp anzuzeigen, verwenden Sie den folgenden Befehl:

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

Parameterdefinitionen

In diesem Abschnitt werden die Parameter beschrieben, die in diesem Dokument verwendet werden. Außerdem erfahren Sie, wie Sie sie ausfüllen können.

Parametername Definition Suche Beispiel
{apiVersion} Version der API, die bei der Ausführung des angegebenen Befehls verwendet werden soll Diese Information finden Sie in der API-Dokumentation. 2023-11-01
{experimentId} Azure-Ressourcen-ID für das Experiment Ist auf der Seite des Chaos Studio-Experiments zu finden oder kann mit einem GET-Aufruf an den /experiments-Endpunkt abgerufen werden /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment
{experimentName.json} JSON mit der Konfiguration des Chaos-Experiments Wird vom Benutzer generiert. experiment.json (Siehe ein CLI-Lernprogramm für eine vollständige Beispieldatei)
{subscriptionId} ID des Abonnements, in dem sich die Zielressource befindet Ist auf der Seite für Abonnements im Azure-Portal oder durch Ausführen von az account list --output table zu finden aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
{resourceGroupName} Name der Ressourcengruppe, in der sich die Zielressource befindet Ist auf der Seite für Ressourcengruppen oder durch Ausführen von az group list --output table zu finden my-resource-group
{executionDetailsId} Ausführungs-ID einer Experimentausführung Ist auf der Seite des Chaos Studio-Experiments zu finden oder kann mit einem GET-Aufruf an den /executions-Endpunkt abgerufen werden C69E7FCD-1548-47E5-9DDA-92A5DD60E610
{targetType} Zieltyp für die entsprechende Ressource Ist in der Liste der Fehleranbieter zu finden oder kann durch einen GET-Aufruf an den /locations/{locationName}/targetTypes-Endpunkt abgerufen werden Microsoft-VirtualMachine
{capabilityName} Name einer einzelnen Funktionsressource, die eine Zielressource erweitert Ist in der Fehlerreferenzdokumentation zu finden oder kann mit einem GET-Aufruf an den capabilityTypes-Endpunkt abgerufen werden Shutdown-1.0
{locationName} Azure-Region für eine Ressource oder einen regionalen Endpunkt Alle potenziellen Regionen für Ihr Konto können mit az account list-locations --output table gefunden werden eastus