Exemples d’utilisation de l’AWS CLI avec AWS FIS - AWS Command Line Interface

Exemples d’utilisation de l’AWS CLI avec AWS FIS

Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’AWS Command Line Interface avec 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 indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L’exemple de code suivant montre comment utiliser create-experiment-template.

AWS CLI

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

L’exemple create-experiment-template suivant crée un modèle d’expérience dans votre compte AWS FIS.

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 Création d’un modèle d’expérience dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez CreateExperimentTemplate dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser delete-experiment-template.

AWS CLI

Pour supprimer un modèle d’expérience

L’exemple delete-experiment-template 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, consultez Suppression d’un modèle d’expérience dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez DeleteExperimentTemplate dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-action.

AWS CLI

Pour obtenir les détails d’une action

L’exemple get-action suivant génère 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 Actions dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez GetAction dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-experiment-template.

AWS CLI

Pour obtenir les détails d’un modèle d’expérience

L’exemple get-experiment-template suivant obtient 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 Modèles d’expériences dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez GetExperimentTemplate dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser get-experiment.

AWS CLI

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

L’exemple get-experiment suivant obtient 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 Expériences AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez GetExperiment dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-actions.

AWS CLI

Pour répertorier les actions

L’exemple list-actions 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 Actions dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez ListActions dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-experiment-templates.

AWS CLI

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

L’exemple list-experiment-templates suivant répertorie les modèles d’expériences de votre compte AWS.

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 Modèles d’expériences dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez ListExperimentTemplates dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-experiments.

AWS CLI

Pour répertorier les expériences

L’exemple list-experiments suivant répertorie les expériences dans votre compte AWS.

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 Expériences dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez ListExperiments dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser list-tags-for-resource.

AWS CLI

Pour répertorier les balises d’une ressource

L’exemple list-tags-for-resource suivant répertorie les balises pour 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 Balisage de vos ressources AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez ListTagsForResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser start-experiment.

AWS CLI

Pour démarrer une expérience

L’exemple start-experiment 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 Expériences AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez StartExperiment dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser stop-experiment.

AWS CLI

Pour arrêter une expérience

L’exemple stop-experiment 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 Expériences AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez StopExperiment dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser tag-resource.

AWS CLI

Pour baliser une ressource

L’exemple tag-resource suivant ajoute une 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 aucune sortie.

Pour plus d’informations, consultez Balisage de vos ressources AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez TagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser untag-resource.

AWS CLI

Pour supprimer une balise d’une ressource

L’exemple untag-resource 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 aucune sortie.

Pour plus d’informations, consultez Balisage de vos ressources AWS FIS dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez UntagResource dans la Référence des commandes de l’AWS CLI.

L’exemple de code suivant montre comment utiliser update-experiment-template.

AWS CLI

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

L’exemple update-experiment-template 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, consultez Mise à jour d’un modèle d’expérience dans le Guide de l’utilisateur AWS Fault Injection Simulator.

  • Pour plus de détails sur l’API, consultez UpdateExperimentTemplate dans la Référence des commandes de l’AWS CLI.