Partage via


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