AWS FIS-Beispiele unter Verwendung von AWS CLI - AWS-SDK-Codebeispiele

Weitere AWS-SDK-Beispiele sind im GitHub-Repository Beispiele für AWS Doc SDKs verfügbar.

AWS FIS-Beispiele unter Verwendung von AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie AWS Command Line Interface mit AWS FIS nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Servicefunktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anweisungen zum Einrichten und Ausführen des Codes im Kodex finden.

Themen

Aktionen

Die folgenden Codebeispiele zeigen, wie create-experiment-template verwendet wird.

AWS CLI

So erstellen Sie eine Experimentvorlage

Im folgenden Beispiel für create-experiment-template wird eine Experimentvorlage in Ihrem AWS-FIS-Konto erstellt.

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

Inhalt von 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" }

Ausgabe:

{ "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": {} } }

Weitere Informationen finden Sie unter Erstellen einer Experimentvorlage im Benutzerhandbuch für AWS Fault Injection Simulator.

Die folgenden Codebeispiele zeigen, wie delete-experiment-template verwendet wird.

AWS CLI

So löschen Sie eine Experimentvorlage

Im folgenden Beispiel für delete-experiment-template wird die angegebene Experimentvorlage gelöscht.

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

Ausgabe:

{ "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" } }

Weitere Informationen finden Sie unter Löschen einer Experimentvorlage im Benutzerhandbuch für AWS Fault Injection Simulator.

Die folgenden Codebeispiele zeigen, wie get-action verwendet wird.

AWS CLI

So rufen Sie Details zur Aktion ab

Im folgenden Beispiel für get-action werden die Details der angegebenen Aktion abgerufen.

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

Ausgabe:

{ "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": {} } }

Weitere Informationen finden Sie unter Aktionen im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter GetAction in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie get-experiment-template verwendet wird.

AWS CLI

So rufen Sie Details zur Experimentvorlage ab

Im folgenden Beispiel für get-experiment-template werden die Details der angegebenen Experimentvorlage abgerufen.

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

Ausgabe:

{ "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" } } }

Weitere Informationen finden Sie unter Experimentvorlagen im Benutzerhandbuch für AWS Fault Injection Simulator.

Die folgenden Codebeispiele zeigen, wie get-experiment verwendet wird.

AWS CLI

So rufen Sie Details zum Experiment ab

Im folgenden Beispiel für get-experiment werden die Details des angegebenen Experiments abgerufen.

aws fis get-experiment \ --id ABC12DeFGhI3jKLMNOP

Ausgabe:

{ "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": {} } }

Weitere Informationen finden Sie unter Experimente für AWS FIS im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter GetExperiment in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie list-actions verwendet wird.

AWS CLI

So listen Sie Aktionen auf

Im folgenden Beispiel für list-actions werden die verfügbaren Aktionen aufgelistet.

aws fis list-actions

Ausgabe:

{ "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": {} } ] }

Weitere Informationen finden Sie unter Aktionen im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter ListActions in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie list-experiment-templates verwendet wird.

AWS CLI

So listen Sie Experimentvorlagen auf

Im folgenden Beispiel für list-experiment-templates werden die Experimentvorlagen in Ihrem AWS-Konto aufgelistet.

aws fis list-experiment-templates

Ausgabe:

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

Weitere Informationen finden Sie unter Experimentvorlagen im Benutzerhandbuch für AWS Fault Injection Simulator.

Die folgenden Codebeispiele zeigen, wie list-experiments verwendet wird.

AWS CLI

So listen Sie Experimente auf

Im folgenden Beispiel für list-experiments werden die Experimente in Ihrem AWS-Konto aufgelistet.

aws fis list-experiments

Ausgabe:

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

Weitere Informationen finden Sie unter Experimente im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter ListExperiments in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie list-tags-for-resource verwendet wird.

AWS CLI

So listen Sie Tags für eine Ressource auf

Im folgenden Beispiel für list-tags-for-resource werden die Tags für die angegebene Ressource aufgelistet.

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

Ausgabe:

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

Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter ListTagsForResource in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie start-experiment verwendet wird.

AWS CLI

So starten Sie ein Experiment

Im folgenden Beispiel für start-experiment wird das angegebene Experiment gestartet.

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

Ausgabe:

{ "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": {} } }

Weitere Informationen finden Sie unter Experimente für AWS FIS im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter StartExperiment in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie stop-experiment verwendet wird.

AWS CLI

So stoppen Sie ein Experiment

Im folgenden Beispiel für stop-experiment wird die Ausführung des angegebenen Experiments gestoppt.

aws fis stop-experiment \ --id ABC12DeFGhI3jKLMNOP

Ausgabe:

{ "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": {} } }

Weitere Informationen finden Sie unter Experimente für AWS FIS im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter StopExperiment in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie tag-resource verwendet wird.

AWS CLI

So taggen Sie eine Ressource

Im folgenden Beispiel für tag-resource wird die angegebene Ressource mit einem Tag versehen.

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

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter TagResource in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie untag-resource verwendet wird.

AWS CLI

So entfernen Sie Tags von einer Ressource

Im folgenden Beispiel für untag-resource werden die Tags von der angegebenen Ressource entfernt.

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

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch für AWS Fault Injection Simulator.

  • Weitere API-Informationen finden Sie unter UntagResource in der AWS CLI-Befehlsreferenz.

Die folgenden Codebeispiele zeigen, wie update-experiment-template verwendet wird.

AWS CLI

So aktualisieren Sie eine Experimentvorlage

Im folgenden Beispiel für update-experiment-template wird die Beschreibung der angegebenen Experimentvorlage aktualisiert.

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

Ausgabe:

{ "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" } } }

Weitere Informationen finden Sie unter Aktualisieren einer Experimentvorlage im Benutzerhandbuch für AWS Fault Injection Simulator.