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-templatesuivant crée un modèle d’expérience dans votre compte AWS FIS.aws fis create-experiment-template \ --cli-input-jsonfile://myfile.jsonContenu 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-templatesuivant supprime le modèle d’expérience spécifié.aws fis delete-experiment-template \ --idABCDE1fgHIJkLmNopSortie :
{ "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-actionsuivant génère les détails de l’action spécifiée.aws fis get-action \ --idaws:ec2:stop-instancesSortie :
{ "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-templatesuivant obtient les détails du modèle d’expérience spécifié.aws fis get-experiment-template \ --idABCDE1fgHIJkLmNopSortie :
{ "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-experimentsuivant obtient les détails de l’expérience spécifiée.aws fis get-experiment \ --idABC12DeFGhI3jKLMNOPSortie :
{ "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-actionssuivant répertorie les actions disponibles.aws fis list-actionsSortie :
{ "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-templatessuivant répertorie les modèles d’expériences de votre compte AWS.aws fis list-experiment-templatesSortie :
{ "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-experimentssuivant répertorie les expériences dans votre compte AWS.aws fis list-experimentsSortie :
{ "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-resourcesuivant répertorie les balises pour la ressource spécifiée.aws fis list-tags-for-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOPSortie :
{ "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-experimentsuivant démarre l’expérience spécifiée.aws fis start-experiment \ --experiment-template-idABCDE1fgHIJkLmNopSortie :
{ "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-experimentsuivant arrête l’exécution de l’expérience spécifiée.aws fis stop-experiment \ --idABC12DeFGhI3jKLMNOPSortie :
{ "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-resourcesuivant ajoute une balise à la ressource spécifiée.aws fis tag-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP\ --tagskey1=value1,key2=value2Cette 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-resourcesuivant supprime les balises de la ressource spécifiée.aws fis untag-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOPCette 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-templatesuivant met à jour la description du modèle d’expérience spécifié.aws fis update-experiment-template \ --idABCDE1fgHIJkLmNop\ ---descriptionmyExperimentTemplateSortie :
{ "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.
-