Bibliothèque d’erreurs et d’actions Azure Chaos Studio
Cet article répertorie les erreurs que vous pouvez utiliser dans Chaos Studio, organisées par type de ressource applicable. Pour comprendre les attributions de rôles recommandées pour chaque type de ressource, consultez l’article Types de ressources et attributions de rôles pris en charge pour Azure Chaos Studio.
Erreurs basées sur l’agent
Les erreurs basées sur l’agent sont injectées dans des instances Machines virtuelles Azure ou Groupe de machines virtuelles identiques en installant l’agent Chaos Studio. Recherchez les options d’erreur directe de service pour ces ressources ci-dessous dans les tableaux pour les machines virtuelles et les groupes de machines virtuelles identiques.
Types de système d’exploitation applicables | Nom d’erreur | Scénarios applicables |
---|---|---|
Windows, Linux | Sollicitation du processeur | Perte de capacité de calcul, sollicitation des ressources |
Windows, Linux | Arrêter le processus | Interruption de dépendance |
Windows | Suspendre le processus | Interruption de dépendance, interruption de service |
Windows1, Linux2 | Déconnexion réseau | Interruption de réseau |
Windows1, Linux2 | Latence du réseau | Détérioration des performances du réseau |
Windows1, Linux2 | Perte de paquet réseau | Problèmes de fiabilité du réseau |
Windows, Linux2 | Isolement réseau | Interruption de réseau |
Windows | Échec DNS | Problèmes de résolution du DNS |
Windows | Déconnexion du réseau (via le pare-feu) | Interruption de réseau |
Windows, Linux | Sollicitation de la mémoire physique | Perte de capacité de mémoire, sollicitation des ressources |
Windows, Linux | Arrêter le service | Interruption/redémarrage du service |
Windows | Changement d’heure | Problèmes de synchronisation de l’heure |
Windows | Sollicitation de la mémoire virtuelle | Perte de capacité de mémoire, sollicitation des ressources |
Linux | Contrainte stress-ng arbitraire | Test de contrainte du système général |
Linux | Sollicitation des E/S disque Linux | Détérioration des performances des E/S disque |
Windows | Sollicitation des E/S disque | Détérioration des performances des E/S disque |
1 paquets TCP/UDP uniquement. 2 Trafic réseau sortant uniquement.
App Service
Cette section s’applique au type de ressource Microsoft.Web/sites
. En savoir plus sur App Service.
Nom d’erreur | Scénarios applicables |
---|---|
Arrêter App Service | Interruption de service |
Paramètres de mise à l’échelle automatique
Cette section s’applique au type de ressource Microsoft.Insights/autoscaleSettings
. En savoir plus sur la mise à l’échelle automatique.
Nom d’erreur | Scénarios applicables |
---|---|
Désactiver la mise à l’échelle automatique | Perte de capacité de calcul (lors d’une utilisation avec l’arrêt de groupe de machines virtuelles identiques) |
Azure Kubernetes Service
Cette section s’applique au type de ressource Microsoft.ContainerService/managedClusters
. En savoir plus sur Azure Kubernetes Service.
Nom d’erreur | Scénarios applicables |
---|---|
Chaos DNS AKS Chaos Mesh | Problèmes de résolution du DNS |
Chaos HTTP AKS Chaos Mesh | Interruption de réseau |
Chaos d’E/S AKS Chaos Mesh | Détérioration/sollicitation du disque |
Chaos du noyau AKS Chaos Mesh | Interruption du noyau |
Chaos réseau AKS Chaos Mesh | Interruption de réseau |
Chaos de pod AKS Chaos Mesh | Interruption du conteneur |
Chaos de contrainte AKS Chaos Mesh | Test de contrainte du système |
Chaos d’heure AKS Chaos Mesh | Problèmes de synchronisation de l’heure |
Cloud Services (classique)
Cette section s’applique au type de ressource Microsoft.ClassicCompute/domainNames
. En savoir plus sur Cloud Services (classique).
Nom d’erreur | Scénarios applicables |
---|---|
Arrêt de Cloud Services | Perte de calcul |
Cache en cluster pour Redis
Cette section s’applique au type de ressource Microsoft.Cache/redis
. En savoir plus sur Cache en cluster pour Redis.
Nom d’erreur | Scénarios applicables |
---|---|
Azure Cache pour Redis (redémarrage) | Interruption de dépendance (caches) |
Cosmos DB
Cette section s’applique au type de ressource Microsoft.DocumentDB/databaseAccounts
. En savoir plus sur Cosmos DB.
Nom d’erreur | Scénarios applicables |
---|---|
Basculement de Cosmos DB | Basculement de base de données |
Event Hubs
Cette section s’applique au type de ressource Microsoft.EventHub/namespaces
. En savoir plus sur Event Hubs.
Nom d’erreur | Scénarios applicables |
---|---|
Modifier l’état d’Event Hub | Configuration incorrecte/interruption de l’infrastructure de messagerie |
Key Vault
Cette section s’applique au type de ressource Microsoft.KeyVault/vaults
. En savoir plus sur Key Vault.
Nom d’erreur | Scénarios applicables |
---|---|
Key Vault : refuser l’accès | Déni de certificat |
Key Vault : désactiver le certificat | Interruption de certificat |
Key Vault : incrémenter la version du certificat | Incrément de la version du certificat |
Key Vault : mise à jour de la stratégie de certification | Modifications/configurations incorrectes de la stratégie de certificat |
Network Security Group
Cette section s’applique au type de ressource Microsoft.Network/networkSecurityGroups
. En savoir plus sur les groupes de sécurité réseau.
Nom d’erreur | Scénarios applicables |
---|---|
Règle de sécurité NSG | Interruption du réseau (pour de nombreux services Azure) |
Service Bus
Cette section s’applique au type de ressource Microsoft.ServiceBus/namespaces
. En savoir plus sur Service Bus.
Nom d’erreur | Scénarios applicables |
---|---|
Modification de l’état de la file d’attente | Configuration incorrecte/interruption de l’infrastructure de messagerie |
Modifier l’état de l’abonnement | Configuration incorrecte/interruption de l’infrastructure de messagerie |
Modifier l’état de la rubrique | Configuration incorrecte/interruption de l’infrastructure de messagerie |
Machines virtuelles (service direct)
Cette section s’applique au type de ressource Microsoft.Compute/virtualMachines
. En savoir plus sur les machines virtuelles.
Nom d’erreur | Scénarios applicables |
---|---|
Redéploiement de la machine virtuelle | Interruption de calcul, événements de maintenance |
Arrêt de la machine virtuelle | Perte/interruption de calcul |
Groupe de machines virtuelles identiques
Cette section s’applique au type de ressource Microsoft.Compute/virtualMachineScaleSets
. En savoir plus sur les groupes de machines virtuelles identiques.
Nom d’erreur | Scénarios applicables |
---|---|
Arrêt de groupe de machines virtuelles identiques | Perte/interruption de calcul |
Arrêt de groupe de machines virtuelles identiques (2.0) | Perte/interruption de calcul (par zone de disponibilité) |
Actions d’orchestration
Ces actions sont des blocs de construction qui permettent de construire des expériences efficaces. Utilisez-les en combinaison avec d’autres erreurs, telles que l’exécution d’un test de charge tout en arrêtant en parallèle les instances de calcul dans une zone.
Catégorie d’action | Nom d’erreur |
---|---|
Charge | Démarrer le test de charge (Test de charge Azure) |
Charge | Arrêter le test de charge (Test de charge Azure) |
Temporisation | Retard |
Détails : erreurs basées sur l’agent
Déconnexion réseau
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkDisconnect-1.1 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux (trafic sortant uniquement) |
Description | Bloque le trafic réseau pour une plage de ports et un bloc réseau spécifiés. Au moins un tableau destinationFilter ou inboundDestinationFilter doit être fourni. |
Prérequis | Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM. |
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut. |
|
Urn | urn:csci:microsoft:agent:networkDisconnect/1.1 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
destinationFilters | Tableau JSON délimité de filtres de paquets définissant les paquets sortants à cibler. 16 au maximum. |
inboundDestinationFilters | Tableau JSON délimité de filtres de paquets définissant les paquets entrants à cibler. 16 au maximum. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Les paramètres destinationFilters et inboundDestinationFilters utilisent le tableau suivant de filtres de paquets.
Propriété | Valeur |
---|---|
address | Adresse IP qui indique le début de la plage d’adresses IP. |
subnetMask | Masque de sous-réseau pour la plage d’adresses IP. |
portLow | (Facultatif) Numéro de port du début de la plage de ports. |
portHigh | (Facultatif) Numéro de port de la fin de la plage de ports. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkDisconnect/1.1",
"parameters": [
{
"key": "destinationFilters",
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
},
{
"key": "inboundDestinationFilters",
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
- L’erreur de déconnexion du réseau n’affecte que les nouvelles connexions. Les connexions actives existantes persistent. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
- Lors d’une exécution sur Windows, le défaut de déconnexion du réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.
- Lors d’une exécution sur Linux, cette erreur ne peut affecter que le trafic sortant, pas le trafic entrant. L’erreur peut affecter le trafic entrant comme sortant sur les environnements Windows (via les paramètres
inboundDestinationFilters
etdestinationFilters
).
Déconnexion du réseau (via le pare-feu)
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkDisconnectViaFirewall-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Applique une règle Pare-feu Windows afin de bloquer le trafic sortant pour une plage de ports et un bloc réseau spécifiés. |
Prérequis | L’agent doit être exécuté en tant qu’administrateur. Si l’agent est installé en tant qu’extension de machine virtuelle, il s’exécute par défaut en tant qu’administrateur. |
Urn | urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
destinationFilters | Tableau JSON délimité de filtres de paquets qui définissent les paquets sortants à cibler pour l’injection d’erreur. |
address | Adresse IP qui indique le début de la plage d’adresses IP. |
subnetMask | Masque de sous-réseau pour la plage d’adresses IP. |
portLow | (Facultatif) Numéro de port du début de la plage de ports. |
portHigh | (Facultatif) Numéro de port de la fin de la plage de ports. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkDisconnectViaFirewall/1.0",
"parameters": [
{
"key": "destinationFilters",
"value": "[ { \"Address\": \"23.45.229.97\", \"SubnetMask\": \"255.255.255.224\", \"PortLow\": \"5000\", \"PortHigh\": \"5200\" } ]"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
- Cette erreur n’affecte actuellement que les nouvelles connexions. Les connexions actives et existantes ne sont pas affectées. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
- Cette erreur affecte uniquement le trafic sortant pour l’instant.
Latence du réseau
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkLatency-1.1 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux (trafic sortant uniquement) |
Description | Augmente la latence du réseau pour une plage de ports et un bloc réseau spécifiés. Au moins un tableau destinationFilter ou inboundDestinationFilter doit être fourni. |
Prérequis | Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM. |
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut. |
|
Urn | urn:csci:microsoft:agent:networkLatency/1.1 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
latencyInMilliseconds | Latence à appliquer, exprimée en millisecondes. |
destinationFilters | Tableau JSON délimité de filtres de paquets définissant les paquets sortants à cibler. 16 au maximum. |
inboundDestinationFilters | Tableau JSON délimité de filtres de paquets définissant les paquets entrants à cibler. 16 au maximum. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Les paramètres destinationFilters et inboundDestinationFilters utilisent le tableau suivant de filtres de paquets.
Propriété | Valeur |
---|---|
address | Adresse IP qui indique le début de la plage d’adresses IP. |
subnetMask | Masque de sous-réseau pour la plage d’adresses IP. |
portLow | (Facultatif) Numéro de port du début de la plage de ports. |
portHigh | (Facultatif) Numéro de port de la fin de la plage de ports. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkLatency/1.1",
"parameters": [
{
"key": "destinationFilters",
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
},
{
"key": "inboundDestinationFilters",
"value": "[ { \"address\": \"23.45.229.97\", \"subnetMask\": \"255.255.255.224\", \"portLow\": \"5000\", \"portHigh\": \"5200\" } ]"
},
{
"key": "latencyInMilliseconds",
"value": "100",
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
- Lors d’une exécution sur Linux, l’erreur de latence réseau ne peut affecter que le trafic sortant, pas le trafic entrant. L’erreur peut affecter le trafic entrant comme sortant sur les environnements Windows (via les paramètres
inboundDestinationFilters
etdestinationFilters
). - Lors d’une exécution sur Windows, le défaut de latence réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.
- Cette erreur n’affecte actuellement que les nouvelles connexions. Les connexions actives et existantes ne sont pas affectées. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
Perte de paquet réseau
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkPacketLoss-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux (trafic sortant uniquement) |
Description | Introduit la perte de paquets pour le trafic sortant à un taux spécifié, entre 0.0 (aucun paquet perdu) et 1.0 (tous les paquets perdus). Cette action permet de simuler des scénarios comme l’encombrement du réseau ou des problèmes matériels du réseau. |
Prérequis | Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM. |
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut. |
|
Urn | urn:csci:microsoft:agent:networkPacketLoss/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
packetLossRate | Taux de perte des paquets correspondant aux filtres de destination, compris entre 0,0 et 1,0. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
destinationFilters | Tableau JSON délimité de filtres de paquets (paramètres ci-dessous) qui définissent les paquets sortants à cibler pour l’injection d’erreur. Maximum de trois. |
address | Adresse IP qui indique le début de la plage d’adresses IP. |
subnetMask | Masque de sous-réseau pour la plage d’adresses IP. |
portLow | (Facultatif) Numéro de port du début de la plage de ports. |
portHigh | (Facultatif) Numéro de port de la fin de la plage de ports. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkPacketLoss/1.0",
"parameters": [
{
"key": "destinationFilters",
"value": "[{\"address\":\"23.45.229.97\",\"subnetMask\":\"255.255.255.224\",\"portLow\":5000,\"portHigh\":5200}]"
},
{
"key": "packetLossRate",
"value": "0.5"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Les défauts du réseau à base d’agents prennent actuellement en charge que les adresses IPv4.
- Lors d’une exécution sur Windows, le défaut de perte de paquets réseau ne fonctionne actuellement qu’avec des paquets TCP ou UDP.
- Lors d’une exécution sur Linux, cette erreur ne peut affecter que le trafic sortant, pas le trafic entrant. L’erreur peut affecter le trafic entrant comme sortant sur les environnements Windows (via les paramètres
inboundDestinationFilters
etdestinationFilters
). - Cette erreur n’affecte actuellement que les nouvelles connexions. Les connexions actives et existantes ne sont pas affectées. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
Isolement réseau
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkIsolation-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux (sortant uniquement) |
Description | Isolez entièrement la machine virtuelle des connexions réseau en supprimant tous les paquets entrants basés sur IP (sur Windows) et sortants (sur Windows et Linux) pendant la durée spécifiée. À la fin de la durée, les connexions réseau seront réactivées. Étant donné que l’agent dépend du trafic réseau, vous ne pouvez pas annuler cette action qui s’exécute sur la durée spécifiée. |
Prérequis | Windows : l’agent doit s’exécuter en tant qu’administrateur, ce qui se produit par défaut s’il est installé comme une extension VM. |
Linux : le package tc (gestion du trafic) est utilisé pour les erreurs réseau. S’il n’est pas déjà installé, l’agent tente automatiquement de l’installer à partir du gestionnaire de package par défaut. |
|
Urn | urn:csci:microsoft:agent:networkIsolation/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les Virtual Machine Scale Sets en mode d’orchestration uniforme, optionnel dans le cas contraire. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:networkIsolation/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Étant donné que l’agent dépend du trafic réseau, vous ne pouvez pas annuler cette action qui s’exécute sur la durée spécifiée. À utiliser avec précaution.
- Cette erreur n’affecte actuellement que les nouvelles connexions. Les connexions actives et existantes ne sont pas affectées. Vous pouvez redémarrer le service ou le processus pour forcer l’arrêt des connexions.
- Lors d’une exécution sur Linux, cette erreur ne peut affecter que le trafic sortant, pas le trafic entrant. L’erreur peut affecter le trafic entrant et sortant sur les environnements Windows.
Échec DNS
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DnsFailure-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Remplace les réponses aux requêtes de recherche DNS par le code d’erreur spécifié. Les requêtes de recherche DNS remplacées doivent :
|
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:dnsFailure/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
hôtes | Tableau JSON délimité de noms d’hôtes pour lesquels la demande de recherche DNS doit échouer. Cette propriété accepte les caractères génériques ( * ), mais uniquement pour le premier sous-domaine d’une adresse, et s’applique uniquement au sous-domaine pour lequel ils sont spécifiés. Par exemple :
|
dnsFailureReturnCode | Code d’erreur DNS à retourner au client pour l’échec de recherche (FormErr, ServFail, NXDomain, NotImp, Refused, XDomain, YXRRSet, NXRRSet, NotAuth, NotZone). Pour plus d’informations sur les codes de retour DNS, consultez le site web IANA. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:dnsFailure/1.0",
"parameters": [
{
"key": "hosts",
"value": "[ \"www.bing.com\", \"msdn.microsoft.com\" ]"
},
{
"key": "dnsFailureReturnCode",
"value": "ServFail"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- L’erreur Échec DNS nécessite Windows 2019 RS5 ou version plus récente.
- Le cache DNS est ignoré pendant la durée de l’erreur pour les noms d’hôte définis dans l’erreur.
Sollicitation du processeur
Propriété | Valeur |
---|---|
Nom de fonctionnalité | CPUPressure-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux |
Description | Ajoute une sollicitation du processeur, jusqu’à la valeur spécifiée, sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle du processeur est supprimée à la fin de la durée ou si l’expérience est annulée. Sur Windows, le compteur de performances Pourcentage de rendement du processeur est utilisé au début de l’erreur pour déterminer le pourcentage actuel d’utilisation du processeur, qui est soustrait du paramètre pressureLevel défini dans l’erreur afin que le pourcentage de rendement du processeur atteigne approximativement la valeur pressureLevel définie dans les paramètres d’erreur. |
Prérequis | Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont. |
Windows : aucun. | |
Urn | urn:csci:microsoft:agent:cpuPressure/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
pressureLevel | Un entier compris entre 1 et 95, qui indique le niveau de sollicitation du processeur (%) appliqué à la machine virtuelle en termes de % d’utilisation du processeur |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:cpuPressure/1.0",
"parameters": [
{
"key": "pressureLevel",
"value": "95"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
Problèmes connus sur Linux :
- L’effet de contrainte peut ne pas se terminer correctement en cas d’arrêt inopiné de
AzureChaosAgent
.
Sollicitation de la mémoire physique
Propriété | Valeur |
---|---|
Nom de fonctionnalité | PhysicalMemoryPressure-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux |
Description | Ajoute une sollicitation de la mémoire physique, jusqu’à la valeur spécifiée sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle de la mémoire physique est supprimée à la fin de la durée ou si l’expérience est annulée. |
Prérequis | Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont. |
Windows : aucun. | |
Urn | urn:csci:microsoft:agent:physicalMemoryPressure/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
pressureLevel | Un entier compris entre 1 et 95, qui indique la sollicitation de la mémoire physique (%) appliquée à la machine virtuelle. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:physicalMemoryPressure/1.0",
"parameters": [
{
"key": "pressureLevel",
"value": "95"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
Actuellement, l'agent Windows ne réduit pas la pression de la mémoire lorsque d'autres applications augmentent leur utilisation de la mémoire. Si l’utilisation globale de la mémoire dépasse 100 %, l’agent Windows risque de se bloquer.
Sollicitation de la mémoire virtuelle
Propriété | Valeur |
---|---|
Nom de fonctionnalité | VirtualMemoryPressure-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Ajoute une sollicitation de la mémoire virtuelle, jusqu’à la valeur spécifiée, sur la machine virtuelle où cette erreur est injectée durant l’action d’erreur. La sollicitation artificielle de la mémoire virtuelle est supprimée à la fin de la durée ou si l’expérience est annulée. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:virtualMemoryPressure/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
pressureLevel | Un entier compris entre 1 et 95, qui indique la sollicitation de la mémoire physique (%) appliquée à la machine virtuelle. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:virtualMemoryPressure/1.0",
"parameters": [
{
"key": "pressureLevel",
"value": "95"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Sollicitation des E/S disque
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DiskIOPressure-1.1 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Utilise l’utilitaire diskspd pour ajouter une pression sur disque à une machine virtuelle. La pression est ajoutée au disque primaire par défaut, ou au disque spécifié avec le paramètre targetTempDirectory. Cette erreur est déclinée en cinq modes d’exécution différents. La sollicitation artificielle du disque est supprimée à la fin de la durée ou si l’expérience est annulée. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:diskIOPressure/1.1 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
pressureMode | Mode prédéfini de sollicitation du disque à ajouter au stockage principal de la machine virtuelle. Il doit s’agir de l’une des valeurs PressureModes dans la table suivante. |
targetTempDirectory | (Facultatif) Répertoire à utiliser pour appliquer la pression du disque. Par exemple : D:/Temp . Si le paramètre n’est pas inclus, la pression est ajoutée au disque principal. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Modes de pression
PressureMode | Description |
---|---|
PremiumStorageP10IOPS | numberOfThreads = 1 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 25 sizeOfBlocksInKB = 8 sizeOfWriteBufferInKB = 64 fileSizeInGB = 2 percentOfWriteActions = 50 |
PremiumStorageP10Throttling | numberOfThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 25 sizeOfBlocksInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
PremiumStorageP50IOPS | numberOfThreads = 32 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 32 sizeOfBlocksInKB = 8 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
PremiumStorageP50Throttling | numberOfThreads = 2 randomBlockSizeInKB = 1024 randomSeed = 10 numberOfIOperThread = 2 sizeOfBlocksInKB = 1024 sizeOfWriteBufferInKB = 1024 fileSizeInGB = 20 percentOfWriteActions = 50 |
Par défaut | numberOfThreads = 2 randomBlockSizeInKB = 64 randomSeed = 10 numberOfIOperThread = 2 sizeOfBlocksInKB = 64 sizeOfWriteBufferInKB = 64 fileSizeInGB = 1 percentOfWriteActions = 50 |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:diskIOPressure/1.1",
"parameters": [
{
"key": "pressureMode",
"value": "PremiumStorageP10IOPS"
},
{
"key": "targetTempDirectory",
"value": "C:/temp/"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Sollicitation des E/S disque Linux
Propriété | Valeur |
---|---|
Nom de fonctionnalité | LinuxDiskIOPressure-1.1 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Linux |
Description | Utilise stress-ng pour appliquer la sollicitation au disque. Un ou plusieurs processus Worker sont générés, qui effectuent les processus d’E/S avec des fichiers temporaires. La pression est ajoutée au disque primaire par défaut, ou au disque spécifié avec le paramètre targetTempDirectory. Pour plus d’informations sur la façon dont la pression est appliquée, consultez l’article stress-ng. |
Prérequis | Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont. |
Urn | urn:csci:microsoft:agent:linuxDiskIOPressure/1.1 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
workerCount | Nombre de processus Worker à exécuter. La définition de workerCount sur la valeur 0 génère autant de processus Worker qu’il existe de processeurs. |
fileSizePerWorker | Taille du fichier temporaire sur lequel un rôle de travail effectue des opérations d’E/S. Entier plus une unité exprimée en octets (b), kilo-octets (k), mégaoctets (m) ou gigaoctets (g) (par exemple, 4m pour 4 mégaoctets et 256g pour 256 gigaoctets). |
blockSize | Taille de bloc à utiliser pour les opérations d’E/S disque, supérieure à 1 octet et inférieure à 4 mégaoctets (la valeur maximale est 4095k ). Entier plus une unité exprimée en octets, kilo-octets ou mégaoctets (par exemple, 512k pour 512 kilo-octets). |
targetTempDirectory | (Facultatif) Répertoire à utiliser pour appliquer la pression du disque. Par exemple : /tmp/ . Si le paramètre n’est pas inclus, la pression est ajoutée au disque principal. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
Ces exemples de valeurs ont généré une sollicitation du disque d’environ 100 % en cas de test sur une machine virtuelle Standard_D2s_v3
avec le stockage localement redondant (LRS) SSD Premium. Une valeur FileSizePerWorker élevée et une valeur blocSize inférieure aident à contraindre complètement le disque.
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:linuxDiskIOPressure/1.1",
"parameters": [
{
"key": "workerCount",
"value": "4"
},
{
"key": "fileSizePerWorker",
"value": "2g"
},
{
"key": "blockSize",
"value": "64k"
},
{
"key": "targetTempDirectory",
"value": "/tmp/"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Arrêter le service
Propriété | Valeur |
---|---|
Nom de fonctionnalité | StopService-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux |
Description | Arrête un service Windows ou un service Linux systemd pendant l’erreur. Redémarrez-le à la fin de la durée ou si l’expérience est annulée. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:stopService/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
serviceName | Nom du service Windows ou du service Linux systemd que vous souhaitez arrêter. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:stopService/1.0",
"parameters": [
{
"key": "serviceName",
"value": "nvagent"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- Windows : les noms d’affichage des services ne sont pas pris en charge. Utilisez
sc.exe query
dans l’invite de commandes pour explorer les noms de service. - Linux : d’autres types de service en plus du système, comme sysvinit, ne sont pas pris en charge.
Arrêter le processus
Propriété | Valeur |
---|---|
Nom de fonctionnalité | KillProcess-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows, Linux |
Description | Arrête toutes les instances en cours d’exécution d’un processus correspondant au nom de processus envoyé dans les paramètres d’erreur. Dans la durée définie pour l’action d’erreur, un processus est arrêté de façon répétée en fonction de la valeur de l’intervalle d’arrêt spécifié. Cette erreur est une erreur destructive dans laquelle l’administrateur système doit récupérer manuellement le processus si une réparation spontanée est configurée pour celui-ci. Notez que cette défaillance génère une erreur lors d’une utilisation sur un processus de nom vide, avec un intervalle non spécifié ou lorsque nous ne pouvons pas trouver le nom de processus cible que nous souhaitons tuer. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:killProcess/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
processName | Nom d’un processus à tuer en permanence (sans le .exe). Il n’est pas nécessaire que le processus soit en cours d’exécution lorsque l’erreur commence à s’exécuter. |
killIntervalInMilliseconds | Durée d’attente de l’erreur entre des tentatives d’arrêt successives, exprimée en millisecondes. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:killProcess/1.0",
"parameters": [
{
"key": "processName",
"value": "myapp"
},
{
"key": "killIntervalInMilliseconds",
"value": "1000"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Suspendre le processus
Propriété | Valeur |
---|---|
Nom de fonctionnalité | PauseProcess-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Suspend les processus spécifiés pendant la durée spécifiée. S’il existe plusieurs processus portant le même nom, cette erreur interrompt tous ces processus. Pendant la durée de l’erreur, les processus sont suspendus de façon répétitive à l’intervalle spécifié. À la fin de la durée ou si l’expérience est annulée, les processus reprendront. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:pauseProcess/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
processNames | Tableau JSON délimité des noms de processus définissant les processus à suspendre. Maximum de 4. Le nom du processus peut éventuellement inclure l’extension « .exe ». |
pauseIntervalInMilliseconds | Durée d’attente de l’erreur entre les tentatives de suspension successives, en millisecondes. |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:pauseProcess/1.0",
"parameters": [
{
"key": "processNames",
"value": "[ \"test-0\", \"test-1.exe\" ]"
},
{
"key": "pauseIntervalInMilliseconds",
"value": "1000"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
Actuellement, un maximum de 4 noms de processus peuvent être répertoriés dans le paramètre processNames.
Changement d’heure
Propriété | Valeur |
---|---|
Nom de fonctionnalité | TimeChange-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Windows |
Description | Change l’heure du système de la machine virtuelle, et réinitialise l’heure à la fin de l’expérience ou si l’expérience est annulée. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:agent:timeChange/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
dateTime | Chaîne DateTime au format ISO8601. Si les valeurs YYYY-MM-DD sont manquantes, elles sont définies par défaut sur le jour actuel au moment de l’exécution de l’expérience. Si les valeurs Thh:mm:ss sont manquantes, la valeur par défaut est 12:00:00. Si une année à 2 chiffres est fournie (YY ), elle est convertie en année à 4 chiffres (YYYY ) basée sur le siècle actuel. Si le fuseau horaire <Z> est manquant, le décalage par défaut est le fuseau horaire local. <Z> doit toujours inclure un symbole de signe (négatif ou positif). |
virtualMachineScaleSetInstances | Tableau d’identifiant d’instance lorsque vous appliquez cette erreur à un groupe de machines virtuelles identiques. Obligatoire pour les groupes de machines virtuelles identiques en mode d’orchestration uniforme. En savoir plus sur les ID d’instance. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:timeChange/1.0",
"parameters": [
{
"key": "dateTime",
"value": "2038-01-01T03:14:07"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Contrainte stress-ng arbitraire
Propriété | Valeur |
---|---|
Nom de fonctionnalité | StressNg-1.0 |
Type cible | Microsoft-Agent |
Types de systèmes d’exploitation pris en charge | Linux |
Description | Exécute une commande stress-ng quelconque en passant des arguments directement à stress-ng. Utile lorsque l’une des erreurs prédéfinies pour stress-ng ne répond pas à vos besoins. |
Prérequis | Linux : l’utilitaire stress-ng doit être installé. L’installation se fait automatiquement dans le cadre de l’installation de l’agent, en utilisant le gestionnaire de package par défaut, sur plusieurs systèmes d’exploitation dont Debian (comme Ubuntu), Red Hat Enterprise Linux et OpenSUSE. Pour d’autres distributions, notamment Azure Linux, vous devez installer stress-ng manuellement. Pour plus d’informations, consultez le dépôt du projet en amont. |
Urn | urn:csci:microsoft:agent:stressNg/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
stressNgArguments | Un ou plusieurs arguments à passer au processus stress-ng. Pour plus d’informations sur les arguments stress-ng possibles, consultez l’article stress-ng. NOTE : N'incluez PAS l'argument "-t " car cela provoquerait une erreur. La durée de l’expérience est définie directement dans l’interface utilisateur de l’expérience Azure Chaos, et NON dans stressNgArguments. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:agent:stressNg/1.0",
"parameters": [
{
"key": "stressNgArguments",
"value": "--random 64"
},
{
"key": "virtualMachineScaleSetInstances",
"value": "[0,1,2]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Détails : erreurs directes de service
Arrêter App Service
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Stop-1.0 |
Type cible | Microsoft-AppService |
Description | Arrête les applications App Service ciblées, puis les redémarre à la fin de la durée de l’erreur. Cette action s’applique aux ressources de type « Microsoft.Web/sites », y compris App Service, API Apps, Mobile Apps et Azure Functions. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:appService:stop/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | Aucune. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:appService:stop/1.0",
"duration": "PT10M",
"parameters":[],
"selectorid": "myResources"
}
]
}
Désactiver la mise à l’échelle automatique
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DisableAutoscale |
Type cible | Microsoft-AutoscaleSettings |
Description | Désactive le service de mise à l’échelle automatique. Lorsque la mise à l’échelle automatique est désactivée, les ressources telles que les groupes de machines virtuelles identiques, les applications web, service bus, etc. ne sont pas automatiquement ajoutées ou supprimées en fonction de la charge de l’application. |
Prérequis | La ressource autoScalesetting activée sur la ressource doit être intégrée à Chaos Studio. |
Urn | urn:csci:microsoft:autoscalesettings:disableAutoscale/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
enableOnComplete | Booléenne. Configure si la mise à l’échelle automatique est réactivée après la réalisation de l’action. La valeur par défaut est true . |
Exemple de code JSON
{
"name": "BranchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:autoscaleSetting:disableAutoscale/1.0",
"parameters": [
{
"key": "enableOnComplete",
"value": "true"
}
],
"duration": "PT2M",
"selectorId": "Selector1",
}
]
}
Chaos réseau AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | NetworkChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur réseau disponible via Chaos Mesh sur votre cluster Azure Kubernetes Service (AKS). Utile pour recréer des incidents AKS résultant de pannes de réseau, des retards, des duplications, des pertes et des altérations. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre NetworkChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:networkChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"action\":\"delay\",\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"delay\":{\"latency\":\"200ms\",\"correlation\":\"100\",\"jitter\":\"0ms\"}}}"
}
],
"selectorid": "myResources"
}
]
}
Chaos de pod AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | PodChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur de pod disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS qui résultent de défaillances de pod ou de problèmes de conteneur. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre PodChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:podChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"action\":\"pod-failure\",\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]}}"
}
],
"selectorid": "myResources"
}
]
}
Chaos de contrainte AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | StressChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur de contrainte disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison de contraintes sur une collection de pods, par exemple, en raison d’une utilisation élevée du processeur ou de la mémoire. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre StressChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:stressChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"stressors\":{\"cpu\":{\"workers\":1,\"load\":50},\"memory\":{\"workers\":4,\"size\":\"256MB\"}}"
}
],
"selectorid": "myResources"
}
]
}
Chaos d’E/S AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | IOChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur d’E/S disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison de retards d’E/S et des défaillances de lecture/écriture lorsque vous utilisez des appels de système d’E/S tels que open , read et write . |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre IOChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:IOChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"action\":\"latency\",\"mode\":\"one\",\"selector\":{\"app\":\"etcd\"},\"volumePath\":\"\/var\/run\/etcd\",\"path\":\"\/var\/run\/etcd\/**\/*\",\"delay\":\"100ms\",\"percent\":50}"
}
],
"selectorid": "myResources"
}
]
}
Chaos d’heure AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | TimeChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Entraîne une modification de l’horloge système sur votre cluster AKS en utilisant Chaos Mesh. Utile pour recréer des incidents AKS résultant d’un échec de synchronisation de systèmes distribués, d’une logique d’année bissextile ou de seconde intercalaire, et bien plus encore. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre TimeChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:timeChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"timeOffset\":\"-10m100ns\"}"
}
],
"selectorid": "myResources"
}
]
}
Chaos du noyau AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | KernelChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur de noyau disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents AKS en raison d’erreurs au niveau du noyau Linux, telles qu’un échec de montage ou la non-allocation de mémoire. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre KernelChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:kernelChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"mode\":\"one\",\"selector\":{\"namespaces\":[\"default\"]},\"failKernRequest\":{\"callchain\":[{\"funcname\":\"__x64_sys_mount\"}],\"failtype\":0}}"
}
],
"selectorid": "myResources"
}
]
}
Chaos HTTP AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | HTTPChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur HTTP disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents en raison d’échecs de traitement de requête et de réponse HTTP, comme des réponses retardées ou incorrectes. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre HTTPChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:httpChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"mode\":\"all\",\"selector\":{\"namespaces\":[\"default\"]},\"target\":\"Request\",\"port\":80,\"method\":\"GET\",\"path\":\"/api\",\"abort\":true}"
}
],
"selectorid": "myResources"
}
]
}
Chaos DNS AKS Chaos Mesh
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DNSChaos-2.2 |
Type cible | Microsoft-AzureKubernetesServiceChaosMesh |
Types de système d’exploitation de pool de nœuds pris en charge | Linux |
Description | Provoque l’exécution d’une erreur DNS disponible via Chaos Mesh sur votre cluster AKS. Utile pour recréer des incidents suite à des échecs DNS. |
Prérequis | Chaos Mesh doit être déployé sur le cluster AKS et le service DNS doit être installé. |
Urn | urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2 |
Paramètres (clé, valeur) | |
jsonSpec | Spécification Chaos Mesh au format JSON qui utilise le genre DNSChaos. Vous pouvez utiliser un convertisseur YAML en JSON, par exemple Convert YAML To JSON, pour convertir le YAML Chaos Mesh en JSON et le minifier. Utilisez des guillemets simples dans le JSON ou échappez les guillemets avec une barre oblique inverse. Incluez uniquement le YAML sous la propriété jsonSpec . N’incluez pas d’informations telles que les métadonnées et le type. La spécification de la durée dans le jsonSpec n’est pas nécessaire, mais elle est utilisée si elle est disponible. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:azureKubernetesServiceChaosMesh:dnsChaos/2.2",
"parameters": [
{
"key": "jsonSpec",
"value": "{\"action\":\"random\",\"mode\":\"all\",\"patterns\":[\"google.com\",\"chaos-mesh.*\",\"github.?om\"],\"selector\":{\"namespaces\":[\"default\"]}}"
}
],
"selectorid": "myResources"
}
]
}
Arrêt de Cloud Services (classique)
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Shutdown-1.0 |
Type cible | Microsoft-DomainName |
Description | Arrête un déploiement pendant l’erreur. Redémarre le déploiement à la fin de la durée de l’erreur ou si l’expérience est annulée. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:domainName:shutdown/1.0 |
Type d’erreur | Continu. |
Paramètres | Aucune. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:domainName:shutdown/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Azure Cache pour Redis (redémarrage)
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Reboot-1.0 |
Type cible | Microsoft-AzureClusteredCacheForRedis |
Description | Entraîne une opération de redémarrage forcé sur la cible afin de simuler une courte panne. |
Prérequis | S/O |
Urn | urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
rebootType | Types de nœuds où l’action de redémarrage doit être exécutée, qui peuvent être spécifiés en tant que PrimaryNode, SecondaryNode ou AllNodes. |
shardId | ID de la partition à redémarrer. Ne concerne que les caches de niveau Premium. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureClusteredCacheForRedis:reboot/1.0",
"parameters": [
{
"key": "RebootType",
"value": "AllNodes"
},
{
"key": "ShardId",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}
Limites
- L’erreur de redémarrage entraîne un redémarrage forcé afin de mieux simuler une panne, ce qui signifie qu’il existe un risque de perte de données.
- L’erreur de redémarrage est un type d’erreur discrète. Contrairement aux erreurs continues, il s’agit d’une action ponctuelle et n’a aucune durée.
Basculement de Cosmos DB
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Failover-1.0 |
Type cible | Microsoft-CosmosDB |
Description | Provoque le basculement d’un compte Azure Cosmos DB avec une seule région d’écriture vers une région de lecture spécifiée afin de simuler une panne de région d’écriture. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:cosmosDB:failover/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
readRegion | Région de lecture à promouvoir en région d’écriture pendant le basculement, par exemple, East US 2 . |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:cosmosDB:failover/1.0",
"parameters": [
{
"key": "readRegion",
"value": "West US 2"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Modifier l’état d’Event Hub
Propriété | Valeur |
---|---|
Nom de fonctionnalité | ChangeEventHubState-1.0 |
Type cible | Microsoft-EventHub |
Description | Définit des hubs d’événements individuels à l’état souhaité dans un espace de noms Azure Event Hubs. Vous pouvez affecter des noms d’Event Hub spécifiques ou utiliser « * » pour affecter tous les espaces de noms. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial. |
Prérequis | Espace de noms Azure Event Hubs avec au moins une entité Event Hub. |
Urn | urn:csci:microsoft:eventHub:changeEventHubState/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
desiredState | L’état souhaité pour les hubs d’événements ciblés. Les états possibles sont Active, Disabled et SendDisabled. |
eventHubs | Une liste séparée par des virgules des noms d’Event Hub dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les entités de l'espace de noms. |
Exemple de code JSON
{
"name": "Branch1",
"actions": [
{
"selectorId": "Selector1",
"type": "discrete",
"parameters": [
{
"key": "eventhubs",
"value": "[\"*\"]"
},
{
"key": "desiredState",
"value": "Disabled"
}
],
"name": "urn:csci:microsoft:eventHub:changeEventHubState/1.0"
}
]
}
Key Vault : refuser l’accès
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DenyAccess-1.0 |
Type cible | Microsoft-KeyVault |
Description | Bloque tout les accès réseau à un coffre de clés en modifiant temporairement les règles réseau du coffre de clés. Cette action empêche une application dépendante du coffre de clés d’accéder aux secrets, aux clés et/ou aux certificats. Si le coffre de clés autorise l'accès à tous les réseaux, ce paramètre est modifié pour n'autoriser l'accès qu'à partir des réseaux sélectionnés. Aucun réseau virtuel ne figure dans la liste autorisée au début de l’erreur. Tous les réseaux sont autorisés à accéder à la fin de la durée de l’erreur. Si le coffre de clés est configuré pour autoriser uniquement l’accès à partir de réseaux sélectionnés, tous les réseaux virtuels de la liste de ceux étant autorisés sont supprimés au début de l’erreur. Ils sont restaurés à la fin de la durée de l’erreur. |
Prérequis | Le coffre de clés cible ne peut pas avoir de règles de pare-feu et ne doit pas être configuré pour autoriser les services Azure à contourner le pare-feu. Si le coffre de clés cible est configuré pour autoriser uniquement l’accès à partir de réseaux sélectionnés, il doit y avoir au moins une règle de réseau virtuel. Le coffre de clés ne peut pas être en mode de récupération. |
Urn | urn:csci:microsoft:keyVault:denyAccess/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | Aucune. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:denyAccess/1.0",
"parameters": [],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Coffre de clés : désactiver le certificat
Propriété | Valeur |
---|---|
Nom de fonctionnalité | DisableCertificate-1.0 |
Type cible | Microsoft-KeyVault |
Description | En utilisant les propriétés du certificat, la faute désactive le certificat pour une durée spécifique (fournie par l'utilisateur). Elle active le certificat après cette durée d’erreur. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:keyvault:disableCertificate/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
certificateName | Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée. |
version | Version du certificat à désactiver. La version la plus récente est désactivée si vous n’avez rien spécifié. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:disableCertificate/1.0",
"parameters": [
{
"key": "certificateName",
"value": "<name of AKV certificate>"
},
{
"key": "version",
"value": "<certificate version>"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Coffre de clés : incrémenter la version du certificat
Propriété | Valeur |
---|---|
Nom de fonctionnalité | IncrementCertificateVersion-1.0 |
Type cible | Microsoft-KeyVault |
Description | Génère une nouvelle version de certificat et une nouvelle empreinte en utilisant la bibliothèque client de certificats du coffre de clés. Le certificat de travail actuel est mis à jour avec cette version. La version du certificat n’est pas rétablie après la durée de l’erreur. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
certificateName | Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:keyvault:incrementCertificateVersion/1.0",
"parameters": [
{
"key": "certificateName",
"value": "<name of AKV certificate>"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Coffre de clés : mise à jour de la stratégie de certification
Propriété | Valeur |
---|---|
Nom de fonctionnalité | UpdateCertificatePolicy-1.0 |
Type cible | Microsoft-KeyVault |
Description | Les politiques de certification (par exemple, la période de validité du certificat, le type de certificat, la taille de la clé ou le type de clé) sont mises à jour sur la base des données fournies par l'utilisateur et annulées après la durée de l'erreur. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
certificateName | Nom du certificat Azure Key Vault sur lequel l’erreur est exécutée. |
version | Version du certificat à mettre à jour. La version la plus récente est mise à jour si vous n’avez rien spécifié. |
enabled | Booléenne. Valeur indiquant si la nouvelle version du certificat est activée. |
validityInMonths | Période de validité du certificat en mois. |
certificateTransparency | Indique si le certificat doit être publié dans la liste de transparence des certificats lors de sa création. |
certificateType | Type de certificat. |
contentType | Type de contenu du certificat. Par exemple, il s'agit de Pkcs12 lorsque le certificat contient des octets PFX bruts ou de Pem lorsqu'il contient des octets ASCII codés en PEM. Pkcs12 est la valeur par défaut supposée. |
keySize | Taille de la clé RSA : 2048, 3072 ou 4096. |
exportable | Booléenne. Valeur indiquant si la clé de certificat est exportable depuis l'espace de stockage ou le magasin de certificats sécurisé. |
reuseKey | Booléenne. Valeur indiquant si la clé du certificat doit être réutilisée lors de la rotation du certificat. |
keyType | Type de clé de secours générée lors de l'émission de nouveaux certificats, par exemple RSA ou EC. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:keyvault:updateCertificatePolicy/1.0",
"parameters": [
{
"key": "certificateName",
"value": "<name of AKV certificate>"
},
{
"key": "version",
"value": "<certificate version>"
},
{
"key": "enabled",
"value": "True"
},
{
"key": "validityInMonths",
"value": "12"
},
{
"key": "certificateTransparency",
"value": "True"
},
{
"key": "certificateType",
"value": "<certificate type>"
},
{
"key": "contentType",
"value": "Pem"
},
{
"key": "keySize",
"value": "4096"
},
{
"key": "exportable",
"value": "True"
},
{
"key": "reuseKey",
"value": "False"
},
{
"key": "keyType",
"value": "RSA"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Règle de sécurité NSG
Propriété | Valeur |
---|---|
Nom de fonctionnalité | SecurityRule-1.0, SecurityRule-1.1 |
Type cible | Microsoft-NetworkSecurityGroup |
Description | Permet la manipulation ou la création de règles dans un groupe de sécurité réseau (NSG) Azure existant ou un ensemble de NSG Azure, en supposant que la définition de règle soit applicable à tous les groupes de sécurité. Utile pour :
|
Prérequis | Aucune. |
Urn | urn:csci:microsoft:networkSecurityGroup:securityRule/1.0, urn:csci:microsoft:networkSecurityGroup:securityRule/1.1 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
name | Nom unique pour la règle de sécurité qui est créée. L’erreur échoue si une autre règle existe déjà sur le groupe de sécurité réseau portant le même nom. Doit commencer par une lettre ou un chiffre. Doit se terminer par une lettre, un chiffre ou un trait de soulignement. Peut contenir uniquement des lettres, des chiffres, des traits d’union, des traits de soulignement et des points. |
protocol | Protocole pour la règle de sécurité. Doit être Any, TCP, UDP ou ICMP. |
sourceAddresses | Chaîne qui représente un tableau délimité JSON d’adresses IP au format CIDR. Peut également être un nom d’étiquette de service pour une règle de trafic entrant, par exemple AppService . Vous pouvez également utiliser un astérisque * pour établir une correspondance avec toutes les adresses IP sources. |
destinationAddresses | Chaîne qui représente un tableau délimité JSON d’adresses IP au format CIDR. Peut également être un nom d’étiquette de service pour une règle de trafic sortant, par exemple AppService . Vous pouvez également utiliser un astérisque * pour établir une correspondance avec toutes les adresses IP de destination. |
action | Type d’accès au groupe de sécurité. Doit être Autoriser ou Refuser. |
destinationPortRanges | Chaîne qui représente un tableau délimité JSON de ports uniques et/ou de plages de ports, par exemple, 80 ou 1024-65535. |
sourcePortRanges | Chaîne qui représente un tableau délimité JSON de ports uniques et/ou de plages de ports, par exemple, 80 ou 1024-65535. |
priority | Entrez une valeur comprise entre 100 et 4096 qui est unique pour toutes les règles de sécurité au sein du NSG. L’erreur échoue si une autre règle existe déjà sur le groupe de sécurité réseau portant la même priorité. |
direction | Direction du trafic affectée par la règle de sécurité. Il doit s’agir d’un trafic entrant ou sortant. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:networkSecurityGroup:securityRule/1.0",
"parameters": [
{
"key": "name",
"value": "Block_SingleHost_to_Networks"
},
{
"key": "protocol",
"value": "Any"
},
{
"key": "sourceAddresses",
"value": "[\"10.1.1.128/32\"]"
},
{
"key": "destinationAddresses",
"value": "[\"10.20.0.0/16\",\"10.30.0.0/16\"]"
},
{
"key": "access",
"value": "Deny"
},
{
"key": "destinationPortRanges",
"value": "[\"80-8080\"]"
},
{
"key": "sourcePortRanges",
"value": "[\"*\"]"
},
{
"key": "priority",
"value": "100"
},
{
"key": "direction",
"value": "Outbound"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Limites
- L’erreur ne peut être appliquée qu’à un NSG.
- Quand une règle NSG destinée à refuser le trafic est appliquée, les connexions existantes ne sont pas interrompues tant qu’elles n’ont pas été inactives pendant 4 minutes. Une solution de contournement consiste à ajouter une autre branche dans la même étape, qui utilise une erreur qui provoquerait l’arrêt des connexions existantes lors de l’application de l’erreur de groupe de sécurité réseau. Par exemple, l’arrêt du processus, l’arrêt temporaire du service ou le redémarrage de la machine virtuelle entraînent la réinitialisation des connexions.
- Les règles sont appliquées au début de l’action. Toute modification externe de la règle pendant la durée de l’action entraîne l’échec de l’expérience.
- La création ou la modification de règles de groupe de sécurité d’application n’est pas prise en charge.
- Les valeurs de priorité doivent être uniques sur chaque groupe de sécurité réseau ciblé. Toute tentative de création d’une nouvelle règle ayant la même valeur de priorité entraîne l’échec de l’expérience.
- L’erreur de version 1.1 de règle de sécurité NSG prend en charge un paramètre
flushConnection
supplémentaire. Cette fonctionnalité a un problème actif connu : siflushConnection
est activé, l’erreur peut provoquer une erreur « FlushingNetworkSecurityGroupConnectionIsNotEnabled ». Pour éviter temporairement cette erreur, désactivez le paramètreflushConnection
ou utilisez l’erreur 1.0 de version de règle de sécurité NSG.
Service Bus : modification de l’état de la file d’attente
Propriété | Valeur |
---|---|
Nom de fonctionnalité | ChangeQueueState-1.0 |
Type cible | Microsoft-ServiceBus |
Description | Définit les entités de la file d'attente au sein d'un espace de noms de Service Bus dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial. |
Prérequis | Espace de noms Service Bus avec au moins une entité file d’attente. |
Urn | urn:csci:microsoft:serviceBus:changeQueueState/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
desiredState | L’état souhaité pour les files d’attente ciblées. Les états possibles sont Active, Disabled, SendDisabled et ReceiveDisabled. |
queues | Une liste séparée par des virgules des noms de file d'attente dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les files d'attente de l'espace de noms. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:serviceBus:changeQueueState/1.0",
"parameters":[
{
"key": "desiredState",
"value": "Disabled"
},
{
"key": "queues",
"value": "samplequeue1,samplequeue2"
}
],
"selectorid": "myServiceBusSelector"
}
]
}
Limites
- Un maximum de 1 000 entités de file d'attente peut être transmis à ce défaut.
Service Bus : modification de l’état de l’abonnement
Propriété | Valeur |
---|---|
Nom de fonctionnalité | ChangeSubscriptionState-1.0 |
Type cible | Microsoft-ServiceBus |
Description | Définit les entités de l’abonnement au sein d'un espace de noms de Service Bus et Rubrique dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial. |
Prérequis | Espace de noms Service Bus avec au moins une entité abonnement. |
Urn | urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
desiredState | L’état souhaité pour les abonnements ciblés. Les états possibles sont Actif et Désactivé. |
topic | Rubrique parente contenant un ou plusieurs abonnements à affecter. |
subscriptions | Une liste séparée par des virgules des noms d’abonnement dans l'espace de noms ciblé. Utilisez « * » pour affecter tous les abonnements de l'espace de noms. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:serviceBus:changeSubscriptionState/1.0",
"parameters":[
{
"key": "desiredState",
"value": "Disabled"
},
{
"key": "topic",
"value": "topic01"
},
{
"key": "subscriptions",
"value": "*"
}
],
"selectorid": "myServiceBusSelector"
}
]
}
Limites
- Un maximum de 1 000 entités d’abonnements peut être transmis à ce défaut.
Service Bus : modification de l’état de la rubrique
Propriété | Valeur |
---|---|
Nom de fonctionnalité | ChangeTopicState-1.0 |
Type cible | Microsoft-ServiceBus |
Description | Définit les entités de la rubrique spécifiées au sein d'un espace de noms de Service Bus dans l'état souhaité. Vous pouvez affecter des noms d'entités spécifiques ou utiliser « * » pour les affecter tous. Cette action permet de tester l’infrastructure de messagerie pour des scénarios de maintenance ou de défaillance. Il s'agit d'une erreur discrète, de sorte que l'entité ne reviendra pas automatiquement à l'état initial. |
Prérequis | Espace de noms Service Bus avec au moins une entité rubrique. |
Urn | urn:csci:microsoft:serviceBus:changeTopicState/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
desiredState | L’état souhaité pour les rubriques ciblées. Les états possibles sont Actif et Désactivé. |
topics | Une liste séparée par des virgules des noms de rubriques dans l'espace de noms ciblé. Utilisez « * » pour affecter toutes les rubriques de l'espace de noms. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:serviceBus:changeTopicState/1.0",
"parameters":[
{
"key": "desiredState",
"value": "Disabled"
},
{
"key": "topics",
"value": "*"
}
],
"selectorid": "myServiceBusSelector"
}
]
}
Limites
- Un maximum de 1 000 entités de rubrique peut être transmis à ce défaut.
Redéploiement de la machine virtuelle
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Redeploy-1.0 |
Type cible | Microsoft-VirtualMachine |
Description | Redéploie une machine virtuelle en l'arrêtant, en la déplaçant vers un nouveau nœud de l'infrastructure Azure et en la remettant sous tension. Cela permet de valider la résistance de votre charge de travail aux événements de maintenance. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:virtualMachine:redeploy/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | Aucune. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:virtualMachine:redeploy/1.0",
"parameters":[],
"selectorid": "myResources"
}
]
}
Limites
- L’opération de redéploiement de la machine virtuelle est limitée à un intervalle de 10 heures. Si votre expérience échoue avec l’erreur « Trop de demandes de redéploiement », attendez 10 heures avant de retenter l’expérience.
Arrêt de machine virtuelle
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Shutdown-1.0 |
Type cible | Microsoft-VirtualMachine |
Types de systèmes d’exploitation pris en charge | Windows, Linux. |
Description | Arrête une machine virtuelle pour la durée de l’erreur. La redémarre à la fin de l’expérience ou si l’expérience est annulée. Seules les ressources Azure Resource Manager sont prises en charge. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:virtualMachine:shutdown/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
abruptShutdown | (Facultatif) Booléen qui indique si la machine virtuelle doit être arrêtée de manière normale ou brutale (destructive). |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:virtualMachine:shutdown/1.0",
"parameters": [
{
"key": "abruptShutdown",
"value": "false"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Arrêt de groupe de machines virtuelles identiques
Cette erreur a deux versions disponibles que vous pouvez utiliser, version 1.0 et version 2.0. La principale différence est que la version 2.0 vous permet de filtrer par zones de disponibilité, en n'arrêtant que les instances situées dans une ou plusieurs zones spécifiées.
Arrêt de groupe de machines virtuelles identiques version 1.0
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Version 1.0 |
Type cible | Microsoft-VirtualMachineScaleSet |
Types de systèmes d’exploitation pris en charge | Windows, Linux. |
Description | Arrête ou supprime une instance de groupe de machines virtuelles identiques durant l’erreur et redémarre la machine virtuelle à la fin de l’erreur ou en cas d’annulation de l’expérience. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0 |
Type d’erreur | Continu. |
Paramètres (clé, valeur) | |
abruptShutdown | (Facultatif) Valeur booléenne qui indique si l’instance de groupe de machines virtuelles identiques doit être arrêtée de manière normale ou brutale (destructive). |
instances | Chaîne qui est un tableau délimité d’identifiants d’instances de groupe de machines virtuelles identiques auxquelles l’erreur est appliquée. |
Exemple JSON version 1.0
{
"name": "branchOne",
"actions": [
{
"type": "continuous",
"name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/1.0",
"parameters": [
{
"key": "abruptShutdown",
"value": "true"
},
{
"key": "instances",
"value": "[\"1\",\"3\"]"
}
],
"duration": "PT10M",
"selectorid": "myResources"
}
]
}
Arrêt de groupe de machines virtuelles identiques version 2.0
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Shutdown-2.0 |
Type cible | Microsoft-VirtualMachineScaleSet |
Types de systèmes d’exploitation pris en charge | Windows, Linux. |
Description | Arrête ou tue une instance de groupe de machines virtuelles identiques pendant l’erreur. Redémarre la machine virtuelle à la fin de la durée de l’erreur ou si l’expérience est annulée. Prend en charge le ciblage dynamique. |
Prérequis | Aucune. |
Urn | urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0 |
Type d’erreur | Continu. |
filter | (Facultatif) Disponible à partir de la version 2.0. Permet de filtrer la liste des cibles dans un sélecteur. Permet actuellement de filtrer une liste de zones. Le filtre n’est appliqué qu’aux ressources du groupe de machines virtuelles identiques dans une zone :
|
Paramètres (clé, valeur) | |
abruptShutdown | (Facultatif) Valeur booléenne qui indique si l’instance de groupe de machines virtuelles identiques doit être arrêtée de manière normale ou brutale (destructive). |
Exemples d’extraits de code JSON version 2.0
Les extraits de code suivants montrent comment configurer à la fois le filtrage dynamique et l’erreur d’arrêt 2.0.
Configure un filtre pour le ciblage dynamique :
{
"type": "List",
"id": "myResources",
"targets": [
{
"id": "<targetResourceId>",
"type": "ChaosTarget"
}
],
"filter": {
"type": "Simple",
"parameters": {
"zones": [
"1"
]
}
}
}
Configure l’erreur d’arrêt :
{
"name": "branchOne",
"actions": [
{
"name": "urn:csci:microsoft:virtualMachineScaleSet:shutdown/2.0",
"type": "continuous",
"selectorId": "myResources",
"duration": "PT10M",
"parameters": [
{
"key": "abruptShutdown",
"value": "false"
}
]
}
]
}
Limites
Actuellement, seuls les groupes de machines virtuelles identiques configurés avec le mode d’orchestration uniforme sont pris en charge. Si votre groupe de machines virtuelles identiques utilise l’orchestration flexible, vous pouvez utiliser l’erreur d’arrêt de la machine virtuelle Azure Resource Manager pour arrêter les instances sélectionnées.
Détails : actions d’orchestration
Retarder
Propriété | Valeur |
---|---|
Fournisseur d’erreur | S/O |
Types de systèmes d’exploitation pris en charge | S/O |
Description | Ajoute une temporisation avant, entre ou après d’autres actions de l’expérience. Cette action n’est pas une erreur et est utilisée pour synchroniser les actions au sein d’une expérience. Utilisez cette action pour attendre que l’impact d’une erreur apparaisse dans un service, ou pour attendre la fin d’une activité en dehors de l’expérience. Par exemple, votre expérience peut attendre la correction automatique avant d’injecter une autre erreur. |
Prérequis | S/O |
Urn | urn:csci:microsoft:chaosStudio:timedDelay/1.0 |
Durée | Durée de la temporisation au format ISO 8601 (par exemple, PT10M). |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "delay",
"name": "urn:csci:microsoft:chaosStudio:timedDelay/1.0",
"duration": "PT10M"
}
]
}
Démarrer le test de charge (Test de charge Azure)
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Start-1.0 |
Type cible | Microsoft-AzureLoadTest |
Description | Lance un test de charge (à partir du Test de charge Azure) sur la base de l'identifiant de test de charge fourni. |
Prérequis | Un test de charge avec un identifiant de test de charge valide doit être créé dans le service Test de charge Azure. |
Urn | urn:csci:microsoft:azureLoadTest:start/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
testID | L'identifiant d'un test de charge spécifique créé dans le service Test de charge Azure. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:start/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}
Arrêter le test de charge (Test de charge Azure)
Propriété | Valeur |
---|---|
Nom de fonctionnalité | Stop-1.0 |
Type cible | Microsoft-AzureLoadTest |
Description | Arrête un test de charge (à partir du Test de charge Azure) sur la base de l'identifiant de test de charge fourni. |
Prérequis | Un test de charge avec un identifiant de test de charge valide doit être créé dans le service Test de charge Azure. |
Urn | urn:csci:microsoft:azureLoadTest:stop/1.0 |
Type d’erreur | Discrète. |
Paramètres (clé, valeur) | |
testID | L'identifiant d'un test de charge spécifique créé dans le service Test de charge Azure. |
Exemple de code JSON
{
"name": "branchOne",
"actions": [
{
"type": "discrete",
"name": "urn:csci:microsoft:azureLoadTest:stop/1.0",
"parameters": [
{
"key": "testID",
"value": "0"
}
],
"selectorid": "myResources"
}
]
}