AWS FIS ejemplos que utilizan AWS CLI - AWS SDKEjemplos de código

Hay más AWS SDK ejemplos disponibles en el GitHub repositorio de AWS Doc SDK Examples.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS FIS ejemplos que utilizan AWS CLI

Los siguientes ejemplos de código muestran cómo realizar acciones e implementar escenarios comunes mediante el uso del AWS Command Line Interface with AWS FIS.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

Cada ejemplo incluye un enlace al código fuente completo, donde puede encontrar instrucciones sobre cómo configurar y ejecutar el código en su contexto.

Acciones

En el siguiente ejemplo de código se muestra cómo usar create-experiment-template.

AWS CLI

Para crear una plantilla de experimento

En el siguiente create-experiment-template ejemplo, se crea una plantilla de experimento en tu AWS FIS cuenta.

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

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

Salida:

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

Para obtener más información, consulte Crear una plantilla de experimento en la Guía del usuario del simulador de inyección de AWS fallas.

En el siguiente ejemplo de código se muestra cómo usar delete-experiment-template.

AWS CLI

Para eliminar una plantilla de experimento

En el siguiente delete-experiment-template ejemplo, se elimina la plantilla de experimento especificada.

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

Salida:

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

Para obtener más información, consulte Eliminar una plantilla de experimento en la Guía del usuario del simulador de inyección de AWS fallas.

En el siguiente ejemplo de código se muestra cómo usar get-action.

AWS CLI

Para obtener los detalles de la acción

En el siguiente get-action ejemplo, se obtienen los detalles de la acción especificada.

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

Salida:

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

Para obtener más información, consulte Acciones en la guía del usuario del simulador de inyección de AWS fallos.

  • Para API obtener más información, consulte GetActionla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar get-experiment-template.

AWS CLI

Para obtener los detalles de la plantilla del experimento

En el siguiente get-experiment-template ejemplo, se obtienen los detalles de la plantilla de experimento especificada.

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

Salida:

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

Para obtener más información, consulte las plantillas de experimentos en la Guía del usuario del simulador de inyección de AWS fallas.

En el siguiente ejemplo de código se muestra cómo usar get-experiment.

AWS CLI

Para obtener detalles del experimento

En el siguiente get-experiment ejemplo se obtienen los detalles del experimento especificado.

aws fis get-experiment \ --id ABC12DeFGhI3jKLMNOP

Salida:

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

Para obtener más información, consulte la guía del usuario de Experiments for AWS FIS the AWS Fault Injection Simulator.

  • Para API obtener más información, consulte GetExperimentla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-actions.

AWS CLI

Para enumerar las acciones

En el siguiente list-actions ejemplo, se enumeran las acciones disponibles.

aws fis list-actions

Salida:

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

Para obtener más información, consulte Acciones en la guía del usuario del simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte ListActionsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-experiment-templates.

AWS CLI

Para enumerar las plantillas de experimentos

En el siguiente list-experiment-templates ejemplo, se muestran las plantillas de experimentos de tu AWS cuenta.

aws fis list-experiment-templates

Salida:

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

Para obtener más información, consulte las plantillas de experimentos en la guía del usuario del simulador de inyección de AWS fallas.

En el siguiente ejemplo de código se muestra cómo usar list-experiments.

AWS CLI

Para enumerar los experimentos

En el siguiente list-experiments ejemplo, se enumeran los experimentos de tu AWS cuenta.

aws fis list-experiments

Salida:

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

Para obtener más información, consulte la Guía del usuario de Experimentos en el simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte ListExperimentsla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar list-tags-for-resource.

AWS CLI

Para enumerar las etiquetas de un recurso

En el siguiente list-tags-for-resource ejemplo, se enumeran las etiquetas del recurso especificado.

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

Salida:

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

Para obtener más información, consulte Etiquete sus AWS FIS recursos en la Guía del usuario del simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte ListTagsForResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar start-experiment.

AWS CLI

Para iniciar un experimento

En el siguiente start-experiment ejemplo se inicia el experimento especificado.

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

Salida:

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

Para obtener más información, consulte la guía del usuario AWS FIS de Experimentos para el simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte StartExperimentla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar stop-experiment.

AWS CLI

Para detener un experimento

El siguiente stop-experiment ejemplo detiene la ejecución del experimento especificado.

aws fis stop-experiment \ --id ABC12DeFGhI3jKLMNOP

Salida:

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

Para obtener más información, consulte la guía del usuario de Experiments for AWS FIS the AWS Fault Injection Simulator.

  • Para API obtener más información, consulte StopExperimentla Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar tag-resource.

AWS CLI

Para etiquetar un recurso

El siguiente tag-resource ejemplo etiqueta el recurso especificado.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Etiquete sus AWS FIS recursos en la Guía del usuario del simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte TagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar untag-resource.

AWS CLI

Para quitar la etiqueta de un recurso

En el siguiente untag-resource ejemplo, se eliminan las etiquetas del recurso especificado.

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

Este comando no genera ninguna salida.

Para obtener más información, consulte Etiquete sus AWS FIS recursos en la Guía del usuario del simulador de inyección de AWS fallas.

  • Para API obtener más información, consulte UntagResourcela Referencia de AWS CLI comandos.

En el siguiente ejemplo de código se muestra cómo usar update-experiment-template.

AWS CLI

Para actualizar una plantilla de experimento

En el siguiente update-experiment-template ejemplo, se actualiza la descripción de la plantilla de experimento especificada.

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

Salida:

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

Para obtener más información, consulte Actualizar una plantilla de experimento en la Guía del usuario del simulador de inyección de AWS fallas.