Acciones para AWS FIS - AWS Servicio de inyección de averías

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.

Acciones para AWS FIS

Para crear una plantilla de experimento, debe definir una o más acciones. Para obtener una lista de las acciones predefinidas proporcionadas por AWS FIS, consulteReferencia de las acciones.

Puede ejecutar una acción solo una vez durante un experimento. Para ejecutar la misma AWS FIS acción más de una vez en el mismo experimento, agrégala a la plantilla varias veces con nombres diferentes.

Sintaxis de acción

A continuación, se presenta la sintaxis de una acción:

{ "actions": { "action_name": { "actionId": "aws:service:action-type", "description": "string", "parameters": { "name": "value" }, "startAfter": ["action_name", ...], "targets": { "ResourceType": "target_name" } } } }

Cuando se define un destino, se proporciona lo siguiente:

action_name

Un nombre para la acción.

actionId

El identificador de la acción.

description

Una descripción opcional.

parameters

Cualquier parámetro de acción.

startAfter

Cualquier acción que deba completarse antes de que se pueda iniciar esta acción. De lo contrario, la acción se ejecuta al inicio del experimento.

targets

Cualquier destino de acción.

Para ver ejemplos, consulta Acciones de ejemplo.

Identificadores de acciones

Cada acción de AWS FIS tiene un identificador con el siguiente formato:

aws:service-name:action-type

Por ejemplo, la siguiente acción detiene las EC2 instancias de Amazon de destino:

aws:ec2:stop-instances

Para ver la lista completa de acciones, consulte AWS FIS Referencia de acciones.

Parámetros de acciones

Algunas acciones de AWS FIS tienen parámetros adicionales que son específicos de la acción. Estos parámetros se utilizan para pasar información a AWS FIS cuando se ejecuta la acción.

AWS FISadmite tipos de error personalizados mediante la aws:ssm:send-command acción, que utiliza el SSM agente y un documento de SSM comandos para crear la condición de error en las instancias de destino. La aws:ssm:send-command acción incluye un documentArn parámetro que toma el nombre del recurso de Amazon (ARN) de un SSM documento como valor. Los valores de los parámetros se especifican al agregar la acción a la plantilla de experimento.

Para obtener más información acerca de cómo especificar parámetros para la acción aws:ssm:send-command, consulte Use la aws:ssm:send-command acción.

Siempre que sea posible, puede introducir una configuración de reversión (también denominada acción posterior) en los parámetros de la acción. Una acción posterior devuelve el destino al estado en el que se encontraba antes de que se ejecutara la acción. La acción posterior se ejecuta después del tiempo especificado en la duración de la acción. No todas las acciones admiten acciones posteriores. Por ejemplo, si la acción termina una EC2 instancia de Amazon, no podrás recuperarla una vez finalizada.

Destinos de acciones

Una acción se ejecuta en los recursos de destino que especifique. Tras definir un destino, puede especificar su nombre al definir una acción.

"targets": { "ResourceType": "resource_name" }

Las acciones AWS FIS admiten los siguientes tipos de recursos para los destinos de acciones:

  • AutoScalingGroups— Grupos de Amazon EC2 Auto Scaling

  • Buckets: buckets de Amazon S3

  • Clúster: EKS clústeres de Amazon

  • Clústeres: clústeres de Amazon o ECS clústeres de bases de datos de Amazon Aurora

  • DBInstances— Instancias de Amazon RDS DB

  • Tablas: tablas globales de Amazon DynamoDB

  • Instancias: EC2 instancias de Amazon

  • Grupos de nodos: grupos de nodos de Amazon EKS

  • Pods: pods de Kubernetes en Amazon EKS

  • ReplicationGroups— ElastiCache Grupos de replicación de Redis

  • Funciones: IAM funciones

  • SpotInstances— Instancias EC2 puntuales de Amazon

  • Subredes: VPC subredes

  • Tareas: ECS tareas de Amazon

  • TransitGateways— Pasarelas de tránsito

  • Volúmenes — EBS Volúmenes de Amazon

Para ver ejemplos, consulta Acciones de ejemplo.

Duración de la acción

Si una acción incluye un parámetro que se puede usar para especificar la duración de la acción, la acción se considera completa de forma predeterminada solo después de que haya transcurrido la duración especificada. Si ha establecido la opción de experimento de emptyTargetResolutionMode en skip, la acción se completará inmediatamente con el estado 'omitida' cuando no se hayan resuelto destinos. Por ejemplo, si especifica una duración de 5 minutos, AWS FIS considerará que la acción ha finalizado transcurridos 5 minutos. A continuación, inicia la siguiente acción, hasta que se hayan completado todas las acciones.

La duración puede ser el tiempo durante el que se mantiene una condición de acción o el tiempo durante el que se monitorizan las métricas. Por ejemplo, la latencia se inyecta durante el tiempo especificado. Para los tipos de acción casi instantáneos, como la terminación de una instancia, las condiciones de detención se monitorizan durante el tiempo especificado.

Si una acción incluye una acción posterior en los parámetros de acción, la acción posterior se ejecuta una vez completada la acción. El tiempo que se tarda en completar la acción posterior puede provocar un retraso entre la duración de la acción especificada y el comienzo de la siguiente acción (o el final del experimento, si se han completado todas las demás acciones).

Acciones de ejemplo

A continuación, se muestran algunos ejemplos.

Ejemplo: detener EC2 instancias

La siguiente acción detiene las EC2 instancias identificadas mediante el objetivo nombradotargetInstances. Después de dos minutos, reinicia las instancias de destino.

"actions": { "stopInstances": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M" }, "targets": { "Instances": "targetInstances" } } }
Ejemplo: Interrumpir instancias de spot

La siguiente acción detiene las instancias puntuales identificadas mediante el objetivo nombradotargetSpotInstances. Espera dos minutos antes de interrumpir la instancia de spot.

"actions": { "interruptSpotInstances": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M" }, "targets": { "SpotInstances": "targetSpotInstances" } } }
Ejemplo: Interrumpir el tráfico de red

La siguiente acción deniega el tráfico entre las subredes de destino y las subredes de otras zonas de disponibilidad.

"actions": { "disruptAZConnectivity": { "actionId": "aws:network:disrupt-connectivity", "parameters": { "scope": "availability-zone", "duration": "PT5M" }, "targets": { "Subnets": "targetSubnets" } } }
Ejemplo: despedir EKS a trabajadores

La siguiente acción termina el 50% de las EC2 instancias del EKS clúster identificadas con el objetivo indicado. targetNodeGroups

"actions": { "terminateWorkers": { "actionId": "aws:eks:terminate-nodegroup-instances", "parameters": { "instanceTerminationPercentage": "50" }, "targets": { "Nodegroups": "targetNodeGroups" } } }