Korzystanie z interfejsów API REST do interakcji z programem Chaos Studio
Jeśli integrujesz usługę Azure Chaos Studio z potokami ciągłej integracji/ciągłego wdrażania lub po prostu wolisz używać bezpośrednich wywołań interfejsu API do interakcji z zasobami platformy Azure, możesz użyć interfejsu API REST usługi Chaos Studio. Aby uzyskać pełną dokumentację interfejsu API, odwiedź dokumentację interfejsu API REST usługi Azure Chaos Studio. Ta strona zawiera przykłady efektywnego korzystania z interfejsu API REST i nie jest przeznaczona jako kompleksowa dokumentacja.
W tym artykule założono, że używasz interfejsu wiersza polecenia platformy Azure do wykonywania tych poleceń, ale możesz dostosować je do innych standardowych klientów REST.
Interfejsy API REST programu Chaos Studio umożliwiają:
- Tworzenie, modyfikowanie i usuwanie eksperymentów
- Wyświetlanie, uruchamianie i zatrzymywanie wykonań eksperymentów
- Wyświetlanie obiektów docelowych i zarządzanie nimi
- Rejestrowanie i wyrejestrowywanie subskrypcji za pomocą dostawcy zasobów Usługi Chaos Studio
- Wyświetlanie dostępnych operacji dostawcy zasobów.
az cli
Użyj narzędzia , aby wykonać te akcje z poziomu wiersza polecenia.
Napiwek
Aby uzyskać więcej pełnych danych wyjściowych za pomocą interfejsu wiersza polecenia platformy Azure, dołącz --verbose
go na końcu każdego polecenia. Ta zmienna zwraca więcej metadanych podczas wykonywania poleceń, w tym x-ms-correlation-request-id
, co ułatwia debugowanie.
Te przykłady zostały przejrzyszone przy użyciu ogólnie dostępnej wersji 2023-11-01
interfejsu API programu Chaos Studio.
Polecenia dostawcy zasobów
W tej sekcji wymieniono polecenia dostawcy Chaos Studio, które ułatwiają zrozumienie stanu dostawcy zasobów i dostępnych operacji.
Wyświetlanie szczegółowych informacji o dostawcy zasobów Microsoft.Chaos
Spowoduje to wyświetlenie informacji, takich jak dostępne wersje interfejsu API dla dostawcy zasobów Chaos i dostępności regionu. Najnowsze api-version
wymagane w tym celu mogą się różnić od api-version
operacji dostawcy zasobów Chaos.
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}"
Wyświetlanie listy wszystkich operacji dostawcy zasobów Microsoft.Chaos
az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}"
Cele i możliwości
Te operacje pomagają zobaczyć, jakie cele i możliwości są dostępne, i dodać je do obiektu docelowego.
Wyświetlanie listy wszystkich typów docelowych dostępnych w regionie
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}"
Wyświetlanie listy wszystkich funkcji dostępnych dla typu docelowego
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}"
Włączanie zasobu jako elementu docelowego
Aby użyć zasobu w eksperymencie, musisz włączyć go jako element docelowy.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}"
Włączanie możliwości dla elementu docelowego
Po włączeniu zasobu jako elementu docelowego należy określić, jakie możliwości (odpowiadające usterce) są dozwolone.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}"
Zobacz, jakie możliwości są włączone dla elementu docelowego
Po włączeniu elementu docelowego i możliwości można wyświetlić włączone możliwości. Jest to przydatne w przypadku konstruowania eksperymentu chaosu, ponieważ zawiera on schemat parametrów dla każdego błędu.
az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"
Eksperymenty
Te operacje ułatwiają wyświetlanie, uruchamianie eksperymentów i zarządzanie nimi.
Wyświetlanie listy wszystkich eksperymentów w grupie zasobów
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"
Pobieranie szczegółów konfiguracji eksperymentu według nazwy
az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Tworzenie lub aktualizowanie eksperymentu
az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json}
Uwaga: jeśli wystąpi UnsupportedMediaType
błąd, upewnij się, że przywołyny plik JSON jest prawidłowy i spróbuj odwołać .json
się do pliku na inne sposoby. Różne interpretery wiersza polecenia mogą wymagać różnych metod odwoływania się do plików. Inną typową składnią jest --body "@experimentName.json"
.
Usuwanie eksperymentu
az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Rozpoczynanie eksperymentu
az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"
Pobieranie wszystkich wykonań eksperymentu
az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}"
Wyświetlanie szczegółów określonego wykonania eksperymentu
Jeśli eksperyment zakończył się niepowodzeniem, może to służyć do znajdowania komunikatów o błędach i określonych elementów docelowych, gałęzi, kroków lub akcji, które zakończyły się niepowodzeniem.
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
Anulowanie (zatrzymywanie) eksperymentu
az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}"
Inne przydatne polecenia i porady
Chociaż te polecenia nie używają specjalnie interfejsu API programu Chaos Studio, mogą być przydatne do efektywnego korzystania z programu Chaos Studio.
Wyświetlanie zasobów usługi Chaos Studio za pomocą usługi Azure Resource Graph
Interfejs API REST usługi Azure Resource Graph umożliwia wykonywanie zapytań dotyczących zasobów skojarzonych z programem Chaos Studio, takich jak obiekty docelowe i możliwości.
az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"
Alternatywnie możesz użyć rozszerzenia usługi Azure Resource Graph.az cli
az graph query -q "chaosresources | summarize count() by type"
Jeśli na przykład chcesz podsumować wszystkie elementy docelowe programu Chaos Studio aktywne w subskrypcji według grupy zasobów, możesz użyć następujących elementów:
az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"
Filtrowanie i wykonywanie zapytań
Podobnie jak w przypadku innych poleceń interfejsu wiersza polecenia platformy Azure, możesz użyć --query
parametrów i --filter
z poleceniami interfejsu wiersza polecenia rest
platformy Azure. Aby na przykład wyświetlić tabelę dostępnych typów możliwości dla określonego typu docelowego, użyj następującego polecenia:
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}'
Definicje parametrów
W tej sekcji opisano parametry używane w tym dokumencie i sposób ich wypełniania.
Nazwa parametru | Definicja | Lookup | Przykład |
---|---|---|---|
{apiVersion} | Wersja interfejsu API do użycia podczas wykonywania podanego polecenia | Dokumentację interfejsu API można znaleźć w dokumentacji interfejsu API | 2023-11-01 |
{experimentId} | Identyfikator zasobu platformy Azure dla eksperymentu | Można znaleźć na stronie Eksperyment w programie Chaos Studio lub wywołaniu GET do punktu końcowego /experiments |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment |
{experimentName.json} | Kod JSON zawierający konfigurację eksperymentu chaosu | Wygenerowane przez użytkownika | experiment.json (Zobacz samouczek interfejsu wiersza polecenia, aby uzyskać pełny przykładowy plik) |
{subscriptionId} | Identyfikator subskrypcji, w której znajduje się zasób docelowy | Znajdź na stronie Subskrypcje witryny Azure Portal lub uruchamiając polecenie az account list --output table |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | Nazwa grupy zasobów, w której znajduje się zasób docelowy | Znajdź na stronie Grupy zasobów lub przez uruchomienie polecenia az group list --output table |
my-resource-group |
{executionDetailsId} | Identyfikator wykonania eksperymentu | Znajdź na stronie Eksperyment w programie Chaos Studio lub za pomocą wywołania GET do punktu końcowego /executions |
C69E7FCD-1548-47E5-9DDA-92A5DD60E610 |
{targetType} | Typ obiektu docelowego odpowiedniego zasobu | Znajdź na liście Dostawców błędów lub wywołanie GET do punktu końcowego /locations/{locationName}/targetTypes |
Microsoft-VirtualMachine |
{capabilityName} | Nazwa pojedynczego zasobu możliwości, rozszerzającego zasób docelowy | Znajdź w dokumentacji odwołania do błędów lub za pomocą wywołania GET do punktu końcowego capabilityTypes |
Shutdown-1.0 |
{locationName} | Region platformy Azure dla zasobu lub regionalnego punktu końcowego | Znajdź wszystkie możliwe regiony dla twojego konta za pomocą polecenia az account list-locations --output table |
eastus |