Ensemble d'actions pour la AWS FIS - AWS Service d'injection de défauts

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ensemble d'actions pour la AWS FIS

Pour créer un modèle de test, vous devez définir une ou plusieurs actions pour constituer l'ensemble d'actions. Pour obtenir la liste des actions prédéfinies fournies par le AWS FIS, voirActions.

Vous ne pouvez exécuter une action qu'une seule fois au cours d'une expérience. Pour exécuter la même action AWS FIS plusieurs fois dans le même test, ajoutez-la plusieurs fois au modèle en utilisant des noms différents.

Syntaxe des actions

Voici la syntaxe d'un ensemble d'actions.

{ "actions": { "action_name": { "actionId": "aws:service:action-type", "description": "string", "parameters": { "name": "value" }, "startAfter": ["action_name", ...], "targets": { "resource_type": "target_name" } } } }

Lorsque vous définissez une action, vous fournissez les informations suivantes :

nom_action

Nom de l'action.

actionId

Identifiant de l'action.

description

Description facultative.

parameters

Tous les paramètres d'action.

startAfter

Toutes les actions qui doivent être terminées avant que cette action ne puisse démarrer. Dans le cas contraire, l'action s'exécute au début de l'expérience.

targets

Toutes les cibles d'action.

Pour obtenir des exemples, consultez Exemples d'actions.

Durée de l'action

Si une action inclut un paramètre que vous pouvez utiliser pour spécifier la durée de l'action, par défaut, l'action n'est considérée comme terminée qu'une fois la durée spécifiée écoulée. Si vous avez défini l'option d'emptyTargetResolutionModeexpérimentation surskip, l'action se terminera immédiatement avec le statut « ignoré » lorsqu'aucune cible n'a été résolue. Par exemple, si vous spécifiez une durée de 5 minutes, AWS FIS considère que l'action est terminée au bout de 5 minutes. Il lance ensuite l'action suivante, jusqu'à ce que toutes les actions soient terminées.

La durée peut être soit la durée pendant laquelle une condition d'action est maintenue, soit la durée pendant laquelle les métriques sont surveillées. Par exemple, la latence est injectée pendant la durée spécifiée. Pour les types d'action quasi instantanés, tels que la mise hors service d'une instance, les conditions d'arrêt sont surveillées pendant la durée spécifiée.

Si une action inclut une action de publication dans les paramètres de l'action, l'action de publication s'exécute une fois l'action terminée. Le temps nécessaire pour terminer l'action de publication peut entraîner un délai entre la durée d'action spécifiée et le début de l'action suivante (ou la fin de l'expérience, si toutes les autres actions sont terminées).

Exemples d'actions

Voici des exemples d'actions.

Exemple : arrêter les instances EC2

L'action suivante arrête les instances EC2 identifiées à l'aide de la cible nommée TargetInstances. Au bout de deux minutes, il redémarre les instances cibles.

"actions": { "stopInstances": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M" }, "targets": { "Instances": "targetInstances" } } }
Exemple : Interrupt Spot Instances

L'action suivante arrête les instances Spot identifiées à l'aide de la cible nommée targetSpotInstances. Il attend deux minutes avant d'interrompre l'instance Spot.

"actions": { "interruptSpotInstances": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M" }, "targets": { "SpotInstances": "targetSpotInstances" } } }
Exemple : perturber le trafic réseau

L'action suivante refuse le trafic entre les sous-réseaux cibles et les sous-réseaux des autres zones de disponibilité.

"actions": { "disruptAZConnectivity": { "actionId": "aws:network:disrupt-connectivity", "parameters": { "scope": "availability-zone", "duration": "PT5M" }, "targets": { "Subnets": "targetSubnets" } } }
Exemple : licencier des employés d'EKS

L'action suivante met fin à 50 % des instances EC2 du cluster EKS identifiées à l'aide de la cible nommée. targetNodeGroups

"actions": { "terminateWorkers": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50" }, "targets": { "Nodegroups": "targetNodeGroups" } } }