AWS FIS exemples utilisant AWS CLI - AWS Command Line Interface

Cette documentation concerne AWS CLI uniquement la version 1. Pour la documentation relative à la version 2 du AWS CLI, consultez le guide de l'utilisateur de la version 2.

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.

AWS FIS exemples utilisant AWS CLI

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l'aide du AWS Command Line Interface with AWS FIS.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous montrent comment appeler des fonctions de service individuelles, vous pouvez les visualiser dans leur contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.

Rubriques

Actions

L'exemple de code suivant montre comment utilisercreate-experiment-template.

AWS CLI

Pour créer un modèle d'expérience

L'create-experiment-templateexemple suivant crée un modèle de test dans votre AWS FIS compte.

aws fis create-experiment-template \ --cli-input-json file://myfile.json

Contenu de myfile.json :

{ "description": "experimentTemplate", "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" } ], "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "description": "reboot", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "roleArn": "arn:aws:iam::123456789012:role/myRole" }

Sortie :

{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "experimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "description": "reboot", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:alarmName" } ], "creationTime": 1616434850.659, "lastUpdateTime": 1616434850.659, "roleArn": "arn:aws:iam::123456789012:role/myRole", "tags": {} } }

Pour plus d'informations, consultez la section Création d'un modèle d'expérience dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

L'exemple de code suivant montre comment utiliserdelete-experiment-template.

AWS CLI

Pour supprimer un modèle d'expérience

L'delete-experiment-templateexemple suivant supprime le modèle d'expérience spécifié.

aws fis delete-experiment-template \ --id ABCDE1fgHIJkLmNop

Sortie :

{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017859.607, "roleArn": "arn:aws:iam::123456789012:role/FISRole" } }

Pour plus d'informations, voir Supprimer un modèle d'expérience dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

L'exemple de code suivant montre comment utiliserget-action.

AWS CLI

Pour obtenir les détails des actions

L'get-actionexemple suivant permet d'obtenir les détails de l'action spécifiée.

aws fis get-action \ --id aws:ec2:stop-instances

Sortie :

{ "action": { "id": "aws:ec2:stop-instances", "description": "Stop the specified EC2 instances.", "parameters": { "startInstancesAfterDuration": { "description": "The time to wait before restarting the instances (ISO 8601 duration).", "required": false } }, "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} } }

Pour plus d'informations, consultez la section Actions du guide de l'utilisateur du simulateur d'injection de AWS défauts.

  • Pour API plus de détails, voir GetActionla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserget-experiment-template.

AWS CLI

Pour obtenir les détails du modèle d'expérience

L'get-experiment-templateexemple suivant permet d'obtenir les détails du modèle d'expérience spécifié.

aws fis get-experiment-template \ --id ABCDE1fgHIJkLmNop

Sortie :

{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017331.51, "roleArn": "arn:aws:iam::123456789012:role/FISRole", "tags": { "key: "value" } } }

Pour plus d'informations, consultez la section Modèles d'expériences dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

L'exemple de code suivant montre comment utiliserget-experiment.

AWS CLI

Pour obtenir les détails de l'expérience

L'get-experimentexemple suivant permet d'obtenir les détails de l'expérience spécifiée.

aws fis get-experiment \ --id ABC12DeFGhI3jKLMNOP

Sortie :

{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "completed", "reason": "Experiment completed." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "state": { "status": "completed", "reason": "Action was completed." } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432509.662, "startTime": 1616432509.962, "endTime": 1616432522.307, "tags": {} } }

Pour plus d'informations, consultez la section Experiments for AWS FIS in the AWS Fault Injection Simulator User Guide.

  • Pour API plus de détails, voir GetExperimentla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-actions.

AWS CLI

Pour répertorier les actions

L'list-actionsexemple suivant répertorie les actions disponibles.

aws fis list-actions

Sortie :

{ "actions": [ { "id": "aws:ec2:reboot-instances", "description": "Reboot the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ec2:stop-instances", "description": "Stop the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ec2:terminate-instances", "description": "Terminate the specified EC2 instances.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} }, { "id": "aws:ecs:drain-container-instances", "description": "Drain percentage of underlying EC2 instances on an ECS cluster.", "targets": { "Clusters": { "resourceType": "aws:ecs:cluster" } }, "tags": {} }, { "id": "aws:eks:terminate-nodegroup-instances", "description": "Terminates a percentage of the underlying EC2 instances in an EKS cluster.", "targets": { "Nodegroups": { "resourceType": "aws:eks:nodegroup" } }, "tags": {} }, { "id": "aws:fis:inject-api-internal-error", "description": "Cause an AWS service to return internal error responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:inject-api-throttle-error", "description": "Cause an AWS service to return throttled responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:inject-api-unavailable-error", "description": "Cause an AWS service to return unavailable error responses for specific callers and operations.", "targets": { "Roles": { "resourceType": "aws:iam:role" } }, "tags": {} }, { "id": "aws:fis:wait", "description": "Wait for the specified duration. Stop condition monitoring will continue during this time.", "tags": {} }, { "id": "aws:rds:failover-db-cluster", "description": "Failover a DB Cluster to one of the replicas.", "targets": { "Clusters": { "resourceType": "aws:rds:cluster" } }, "tags": {} }, { "id": "aws:rds:reboot-db-instances", "description": "Reboot the specified DB instances.", "targets": { "DBInstances": { "resourceType": "aws:rds:db" } }, "tags": {} }, { "id": "aws:ssm:send-command", "description": "Run the specified SSM document.", "targets": { "Instances": { "resourceType": "aws:ec2:instance" } }, "tags": {} } ] }

Pour plus d'informations, consultez la section Actions du guide de l'utilisateur du simulateur d'injection de AWS défauts.

  • Pour API plus de détails, voir ListActionsla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-experiment-templates.

AWS CLI

Pour répertorier les modèles d'expériences

L'list-experiment-templatesexemple suivant répertorie les modèles de test de votre AWS compte.

aws fis list-experiment-templates

Sortie :

{ "experimentTemplates": [ { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "creationTime": 1616017191.124, "lastUpdateTime": 1616017191.124, "tags": { "key": "value" } } ] }

Pour plus d'informations, consultez la section Modèles d'expériences dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

L'exemple de code suivant montre comment utiliserlist-experiments.

AWS CLI

Pour répertorier les expériences

L'list-experimentsexemple suivant répertorie les expériences de votre AWS compte.

aws fis list-experiments

Sortie :

{ "experiments": [ { "id": "ABCdeF1GHiJkLM23NO", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "state": { "status": "running", "reason": "Experiment is running." }, "creationTime": 1616017341.197, "tags": { "key": "value" } } ] }

Pour plus d'informations, consultez Experiments in the AWS Fault Injection Simulator User Guide.

  • Pour API plus de détails, voir ListExperimentsla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-tags-for-resource.

AWS CLI

Pour répertorier les balises d'une ressource

L'list-tags-for-resourceexemple suivant répertorie les balises de la ressource spécifiée.

aws fis list-tags-for-resource \ --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP

Sortie :

{ "tags": { "key1": "value1", "key2": "value2" } }

Pour plus d'informations, consultez la section Marquer vos AWS FIS ressources dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

  • Pour API plus de détails, voir ListTagsForResourcela section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstart-experiment.

AWS CLI

Pour démarrer une expérience

L'start-experimentexemple suivant démarre l'expérience spécifiée.

aws fis start-experiment \ --experiment-template-id ABCDE1fgHIJkLmNop

Sortie :

{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "initiating", "reason": "Experiment is initiating." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "state": { "status": "pending", "reason": "Initial state" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432464.025, "startTime": 1616432464.374, "tags": {} } }

Pour plus d'informations, consultez la section Experiments for AWS FIS in the AWS Fault Injection Simulator User Guide.

  • Pour API plus de détails, voir StartExperimentla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserstop-experiment.

AWS CLI

Pour arrêter une expérience

L'stop-experimentexemple suivant arrête l'exécution de l'expérience spécifiée.

aws fis stop-experiment \ --id ABC12DeFGhI3jKLMNOP

Sortie :

{ "experiment": { "id": "ABC12DeFGhI3jKLMNOP", "experimentTemplateId": "ABCDE1fgHIJkLmNop", "roleArn": "arn:aws:iam::123456789012:role/myRole", "state": { "status": "stopping", "reason": "Stopping Experiment." }, "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "reboot": { "actionId": "aws:ec2:reboot-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" }, "startAfter": [ "wait" ], "state": { "status": "pending", "reason": "Initial state." } }, "wait": { "actionId": "aws:fis:wait", "parameters": { "duration": "PT5M" }, "state": { "status": "running", "reason": "" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616432680.927, "startTime": 1616432681.177, "tags": {} } }

Pour plus d'informations, consultez la section Experiments for AWS FIS in the AWS Fault Injection Simulator User Guide.

  • Pour API plus de détails, voir StopExperimentla section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utilisertag-resource.

AWS CLI

Pour étiqueter une ressource

L'tag-resourceexemple suivant balise la ressource spécifiée.

aws fis tag-resource \ --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP \ --tags key1=value1,key2=value2

Cette commande ne produit aucun résultat.

Pour plus d'informations, consultez la section Marquer vos AWS FIS ressources dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

  • Pour API plus de détails, voir TagResourcela section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliseruntag-resource.

AWS CLI

Pour annuler le balisage d'une ressource

L'untag-resourceexemple suivant supprime les balises de la ressource spécifiée.

aws fis untag-resource \ --resource-arn arn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP

Cette commande ne produit aucun résultat.

Pour plus d'informations, consultez la section Marquer vos AWS FIS ressources dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.

  • Pour API plus de détails, voir UntagResourcela section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserupdate-experiment-template.

AWS CLI

Pour mettre à jour un modèle d'expérience

L'update-experiment-templateexemple suivant met à jour la description du modèle d'expérience spécifié.

aws fis update-experiment-template \ --id ABCDE1fgHIJkLmNop \ ---description myExperimentTemplate

Sortie :

{ "experimentTemplate": { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "targets": { "Instances-Target-1": { "resourceType": "aws:ec2:instance", "resourceArns": [ "arn:aws:ec2:us-west-2:123456789012:instance/i-12a3b4c56d78e9012" ], "selectionMode": "ALL" } }, "actions": { "testaction": { "actionId": "aws:ec2:stop-instances", "parameters": {}, "targets": { "Instances": "Instances-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "creationTime": 1616017191.124, "lastUpdateTime": 1616017859.607, "roleArn": "arn:aws:iam::123456789012:role/FISRole", "tags": { "key": "value" } } }

Pour plus d'informations, voir Mettre à jour un modèle d'expérience dans le guide de l'utilisateur du simulateur d'injection de AWS défauts.