Utiliser des API REST pour interagir avec Chaos Studio
Si vous intégrez Azure Chaos Studio à vos pipelines CI/CD, ou si vous préférez simplement utiliser des appels d’API directs pour interagir avec vos ressources Azure, vous pouvez utiliser l’API REST de Chaos Studio. Pour obtenir la référence complète de l’API, consultez la référence de l’API REST Azure Chaos Studio. Cette page fournit des exemples d'utilisation efficace de l'API REST et ne constitue pas une référence exhaustive.
Cet article suppose que vous utilisez Azure CLI pour exécuter ces commandes, mais vous pouvez les adapter à d’autres clients REST standard.
Vous pouvez utiliser les API REST Chaos Studio pour :
- Créer, modifier et supprimer des expériences
- Afficher, démarrer et arrêter les exécutions d’expériences
- Afficher et gérer les cibles
- Inscrire et annuler l’inscription de votre abonnement auprès du fournisseur de ressources Chaos Studio
- Afficher les opérations de fournisseur de ressources disponibles.
Utilisez l’utilitaire az cli
pour effectuer ces actions à partir de la ligne de commande.
Conseil
Pour obtenir une sortie plus détaillée avec Azure CLI, ajoutez --verbose
à la fin de chaque commande. Cette variable retourne davantage de métadonnées lorsque les commandes s’exécutent, notamment x-ms-correlation-request-id
, ce qui facilite le débogage.
Ces exemples ont été examinés avec la version 2023-11-01
de l’API Chaos Studio généralement disponible.
Commandes du fournisseur de ressources
Cette section répertorie les commandes du fournisseur de Chaos Studio, qui vous aident à comprendre l'état du fournisseur de ressources et les opérations disponibles.
Répertorier les détails sur le fournisseur de ressources Microsoft.Chaos
Cela montre des informations telles que les versions d’API disponibles pour le fournisseur de ressources Chaos et la disponibilité de la région. La plus récente api-version
requise pour cela peut différer des api-version
pour les opérations du fournisseur de ressources Chaos.
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos?api-version={apiVersion}"
Répertorier toutes les opérations du fournisseur de ressources Microsoft.Chaos
az rest --method get --url "https://management.azure.com/providers/Microsoft.Chaos/operations?api-version={apiVersion}"
Cibles et fonctionnalités
Ces opérations vous aident à voir quelles cibles et fonctionnalités sont disponibles et à les ajouter à une cible.
Répertorier tous les types cibles disponibles dans une région
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes?api-version={apiVersion}"
Répertorier toutes les fonctionnalités disponibles pour un type cible
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{locationName}/targetTypes/{targetType}/capabilityTypes?api-version={apiVersion}"
Activer une ressource en tant que cible
Pour utiliser une ressource dans une expérience, vous devez l’activer en tant que cible.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}?api-version={apiVersion}" --body "{'properties':{}}"
Activer les fonctionnalités d’une cible
Une fois qu’une ressource a été activée en tant que cible, vous devez spécifier les fonctionnalités (correspondant aux erreurs) autorisées.
az rest --method put --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities/{capabilityName}?api-version={apiVersion}" --body "{'properties':{}}"
Voir quelles fonctionnalités sont activées pour une cible
Une fois qu’une cible et des fonctionnalités ont été activées, vous pouvez afficher les fonctionnalités activées. Cela est utile pour construire votre expérience de chaos, car elle inclut le schéma de paramètre pour chaque erreur.
az rest --method get --url "https://management.azure.com/{resourceId}/providers/Microsoft.Chaos/targets/{targetType}/capabilities?api-version={apiVersion}"
Expériences
Ces opérations vous aident à afficher, exécuter et gérer des expériences.
Répertorier toutes les expériences dans un groupe de ressources
az rest --method get --url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Chaos/experiments?api-version={apiVersion}"
Obtenir les détails de la configuration d'une expérience par son nom
az rest --method get --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Créer ou mettre à jour une expérience
az rest --method put --url "https://management.azure.com/{experimentId}?api-version={apiVersion}" --body @{experimentName.json}
Remarque : si vous recevez une erreur UnsupportedMediaType
, vérifiez que votre fichier JSON référencé est valide et essayez d’autres façons de référencer le fichier .json
. Différents interpréteurs de ligne de commande peuvent nécessiter différentes méthodes de référencement de fichiers. Une autre syntaxe courante est --body "@experimentName.json"
.
Supprimer une expérience
az rest --method delete --url "https://management.azure.com/{experimentId}?api-version={apiVersion}"
Commencer une expérience
az rest --method post --url "https://management.azure.com/{experimentId}/start?api-version={apiVersion}"
Obtenir toutes les exécutions d’une expérience
az rest --method get --url "https://management.azure.com/{experimentId}/executions?api-version={apiVersion}"
Lister les détails d’une exécution d’expérience spécifique
Si une expérience a échoué, elle peut être utilisée pour rechercher des messages d’erreur et des cibles spécifiques, des branches, des étapes ou des actions ayant échoué.
az rest --method post --url "https://management.azure.com/{experimentId}/executions/{executionDetailsId}/getExecutionDetails?api-version={apiVersion}"
Annuler (arrêter) une expérience
az rest --method post --url "https://management.azure.com/{experimentId}/cancel?api-version={apiVersion}"
Autres commandes et conseils utiles
Bien que ces commandes n’utilisent pas spécifiquement l’API Chaos Studio, elles peuvent être utiles pour utiliser Chaos Studio efficacement.
Afficher les ressources Chaos Studio avec Azure Resource Graph
Vous pouvez utiliser l’API REST Azure Resource Graph pour interroger des ressources associées à Chaos Studio, telles que des cibles et des fonctionnalités.
az rest --method post --url "https://management.azure.com/providers/Microsoft.ResourceGraph/resources?api-version=2021-03-01" --body "{'query':'chaosresources'}"
Vous pouvez également utiliser l’extension az cli
d’AzureResource Graph.
az graph query -q "chaosresources | summarize count() by type"
Par exemple, si vous souhaitez obtenir un résumé de toutes les cibles Chaos Studio actives dans votre abonnement par groupe de ressources, vous pouvez utiliser :
az graph query -q "chaosresources | where type == 'microsoft.chaos/targets' | summarize count() by resourceGroup"
Filtrage et interrogation
Comme d’autres commandes Azure CLI, vous pouvez utiliser les paramètres --query
et --filter
avec les commandes Azure CLI rest
. Par exemple, pour afficher un tableau des types de fonctionnalités disponibles pour un type cible spécifique, utilisez la commande suivante :
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}'
Définitions des paramètres
Cette section décrit les paramètres utilisés dans ce document et comment les remplir.
Nom du paramètre | Définition | Lookup | Exemple |
---|---|---|---|
{apiVersion} | Version de l’API à utiliser lorsque vous exécutez la commande fournie | Disponible dans la documentation de l’API | 2023-11-01 |
{experimentId} | ID de ressource Azure pour l’expérience | Se trouve sur la page Expérience Chaos Studio ou avec un appel GET au point de terminaison /experiments |
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Chaos/experiments/my-chaos-experiment |
{experimentName.json} | JSON qui contient la configuration de l’expérience chaos | Généré par l’utilisateur | experiment.json (consultez un didacticiel CLI pour obtenir un exemple de fichier complet) |
{subscriptionId} | ID de l’abonnement où se trouve la ressource cible | Rechercher dans la page Abonnements du portail Azure ou en exécutant az account list --output table |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
{resourceGroupName} | Nom du groupe de ressources dans lequel se trouve la ressource cible | Rechercher dans la page Groupes de ressources ou en exécutant az group list --output table |
my-resource-group |
{executionDetailsId} | ID d’exécution d’une exécution d’expérience | Rechercher dans la page Expérience Chaos Studio ou avec un appel GET au point de terminaison /executions |
C69E7FCD-1548-47E5-9DDA-92A5DD60E610 |
{targetType} | Type de cible pour la ressource correspondante | Rechercher dans la liste des fournisseurs d’erreur ou un appel GET au point de terminaison /locations/{locationName}/targetTypes |
Microsoft-VirtualMachine |
{capabilityName} | Nom d’une ressource de capacité individuelle, extension d’une ressource cible | Rechercher dans la documentation de référence d’erreur ou avec un appel GET au point de terminaison capabilityTypes |
Shutdown-1.0 |
{locationName} | Région Azure pour une ressource ou un point de terminaison régional | Rechercher toutes les régions possibles pour votre compte avec az account list-locations --output table |
eastus |