Beispiele für die Verwendung der AWS CLI mit AWS FIS
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die 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 Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt, wie create-experiment-template verwendet wird.
- AWS CLI
-
So erstellen Sie eine Experimentvorlage
Im folgenden Beispiel für
create-experiment-templatewird eine Experimentvorlage in Ihrem AWS-FIS-Konto erstellt.aws fis create-experiment-template \ --cli-input-jsonfile://myfile.jsonInhalt 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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter CreateExperimentTemplate
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-experiment-template verwendet wird.
- AWS CLI
-
So löschen Sie eine Experimentvorlage
Im folgenden Beispiel für
delete-experiment-templatewird die angegebene Experimentvorlage gelöscht.aws fis delete-experiment-template \ --idABCDE1fgHIJkLmNopAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter DeleteExperimentTemplate
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-action verwendet wird.
- AWS CLI
-
So rufen Sie Details zur Aktion ab
Im folgenden Beispiel für
get-actionwerden die Details der angegebenen Aktion abgerufen.aws fis get-action \ --idaws:ec2:stop-instancesAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter GetAction
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-experiment-template verwendet wird.
- AWS CLI
-
So rufen Sie Details zur Experimentvorlage ab
Im folgenden Beispiel für
get-experiment-templatewerden die Details der angegebenen Experimentvorlage abgerufen.aws fis get-experiment-template \ --idABCDE1fgHIJkLmNopAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter GetExperimentTemplate
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-experiment verwendet wird.
- AWS CLI
-
So rufen Sie Details zum Experiment ab
Im folgenden Beispiel für
get-experimentwerden die Details des angegebenen Experiments abgerufen.aws fis get-experiment \ --idABC12DeFGhI3jKLMNOPAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter GetExperiment
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-actions verwendet wird.
- AWS CLI
-
So listen Sie Aktionen auf
Im folgenden Beispiel für
list-actionswerden die verfügbaren Aktionen aufgelistet.aws fis list-actionsAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter ListActions
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-experiment-templates verwendet wird.
- AWS CLI
-
So listen Sie Experimentvorlagen auf
Im folgenden Beispiel für
list-experiment-templateswerden die Experimentvorlagen in Ihrem AWS-Konto aufgelistet.aws fis list-experiment-templatesAusgabe:
{ "experimentTemplates": [ { "id": "ABCDE1fgHIJkLmNop", "description": "myExperimentTemplate", "creationTime": 1616017191.124, "lastUpdateTime": 1616017191.124, "tags": { "key": "value" } } ] }Weitere Informationen finden Sie unter Experimentvorlagen im im Benutzerhandbuch zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter ListExperimentTemplates
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-experiments verwendet wird.
- AWS CLI
-
So listen Sie Experimente auf
Im folgenden Beispiel für
list-experimentswerden die Experimente in Ihrem AWS-Konto aufgelistet.aws fis list-experimentsAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter ListExperiments
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, 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-resourcewerden die Tags für die angegebene Ressource aufgelistet.aws fis list-tags-for-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOPAusgabe:
{ "tags": { "key1": "value1", "key2": "value2" } }Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter ListTagsForResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie start-experiment verwendet wird.
- AWS CLI
-
So starten Sie ein Experiment
Im folgenden Beispiel für
start-experimentwird das angegebene Experiment gestartet.aws fis start-experiment \ --experiment-template-idABCDE1fgHIJkLmNopAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter StartExperiment
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie stop-experiment verwendet wird.
- AWS CLI
-
So stoppen Sie ein Experiment
Im folgenden Beispiel für
stop-experimentwird die Ausführung des angegebenen Experiments gestoppt.aws fis stop-experiment \ --idABC12DeFGhI3jKLMNOPAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter StopExperiment
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie tag-resource verwendet wird.
- AWS CLI
-
So versehen Sie eine Ressource mit einem Tag
Im folgenden Beispiel für
tag-resourcewird die angegebene Ressource mit einem Tag versehen.aws fis tag-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOP\ --tagskey1=value1,key2=value2Mit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter TagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie untag-resource verwendet wird.
- AWS CLI
-
So entfernen Sie Tags von einer Ressource
Im folgenden Beispiel für
untag-resourcewerden die Tags von der angegebenen Ressource entfernt.aws fis untag-resource \ --resource-arnarn:aws:fis:us-west-2:123456789012:experiment/ABC12DeFGhI3jKLMNOPMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Versehen Ihrer AWS-FIS-Ressourcen mit Tags im Benutzerhandbuch zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter UntagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie update-experiment-template verwendet wird.
- AWS CLI
-
So aktualisieren Sie eine Experimentvorlage
Im folgenden Beispiel für
update-experiment-templatewird die Beschreibung der angegebenen Experimentvorlage aktualisiert.aws fis update-experiment-template \ --idABCDE1fgHIJkLmNop\ ---descriptionmyExperimentTemplateAusgabe:
{ "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 zu AWS Fault Injection Simulator.
-
API-Details finden Sie unter UpdateExperimentTemplate
in der AWS CLI-Befehlsreferenz.
-