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.
Ejemplo AWS FISplantillas de experimentos
Si está utilizando el AWS FISAPIo una herramienta de línea de comandos para crear una plantilla de experimento, puedes crear la plantilla en JavaScript Object Notation (JSON). Para obtener más información acerca de los componentes de una plantilla de experimento, consulte AWS FIScomponentes de plantillas de experimentos.
Para crear un experimento con una de las plantillas de ejemplo, guárdalo en un JSON archivo (por ejemplo,my-template.json
) y sustituye los valores de los marcadores de posición en italics
con sus propios valores y, a continuación, ejecute el siguiente create-experiment-templatecomando.
aws fis create-experiment-template --cli-input-json file://
my-template
.json
Plantillas de ejemplo
- Detenga EC2 las instancias en función de los filtros
- Detenga un número específico de EC2 instancias
- Ejecute una configuración preconfigurada AWS FISSSMdocumento
- Ejecución de un manual de procedimientos de Automation
- Limite las API acciones en las EC2 instancias con el rol de destino IAM
- Prueba de esfuerzo de los pods de un CPU clúster de Kubernetes
Detenga EC2 las instancias en función de los filtros
El siguiente ejemplo detiene todas las EC2 instancias de Amazon en ejecución en la región especificada con la etiqueta especificada en la región especificadaVPC. Las reinicia después de dos minutos.
{ "tags": { "Name": "StopEC2InstancesWithFilters" }, "description": "Stop and restart all instances in us-east-1b with the tag env=prod in the specified VPC", "targets": { "myInstances": { "resourceType": "aws:ec2:instance", "resourceTags": { "
env
": "prod
" }, "filters": [ { "path": "Placement.AvailabilityZone", "values": ["us-east-1b
"] }, { "path": "State.Name", "values": ["running
"] }, { "path": "VpcId", "values": [ "vpc-aabbcc11223344556
"] } ], "selectionMode": "ALL
" } }, "actions": { "StopInstances": { "actionId": "aws:ec2:stop-instances", "description": "stop the instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "myInstances" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
Detenga un número específico de EC2 instancias
En el siguiente ejemplo, se detienen tres instancias con la etiqueta especificada. AWS FISselecciona las instancias específicas para detenerlas de forma aleatoria. Reinicia estas instancias después de dos minutos.
{ "tags": { "Name": "StopEC2InstancesByCount" }, "description": "Stop and restart three instances with the specified tag", "targets": { "myInstances": { "resourceType": "aws:ec2:instance", "resourceTags": { "
env
": "prod
" }, "selectionMode": "COUNT(3)
" } }, "actions": { "StopInstances": { "actionId": "aws:ec2:stop-instances", "description": "stop the instances", "parameters": { "startInstancesAfterDuration": "PT2M
" }, "targets": { "Instances": "myInstances" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
Ejecute una configuración preconfigurada AWS FISSSMdocumento
El siguiente ejemplo ejecuta una inyección CPU de errores durante 60 segundos en la EC2 instancia especificada mediante una configuración preconfigurada AWS FISSSMdocumento, AWSFIS-Run- -Stress. CPU AWS FISmonitorea el experimento durante dos minutos.
{ "tags": { "Name": "CPUStress" }, "description": "Run a CPU fault injection on the specified instance", "targets": { "myInstance": { "resourceType": "aws:ec2:instance", "resourceArns": ["arn:aws:ec2:
us-east-1
:111122223333
:instance/instance-id
"], "selectionMode": "ALL
" } }, "actions": { "CPUStress": { "actionId": "aws:ssm:send-command", "description": "run cpu stress using ssm", "parameters": { "duration": "PT2M
", "documentArn": "arn:aws:ssm:us-east-1
::document/AWSFIS-Run-CPU-Stress
", "documentParameters": "{\"DurationSeconds\": \"60
\", \"InstallDependencies\": \"True
\", \"CPU\": \"0
\"}" }, "targets": { "Instances": "myInstance" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
Ejecución de un manual de procedimientos de Automation
En el siguiente ejemplo, se publica una notificación a Amazon SNS mediante un manual proporcionado por Systems Manager, AWSublishSNSNotification-P. El rol debe tener permisos para publicar notificaciones en el tema especificadoSNS.
{ "description": "Publish event through SNS", "stopConditions": [ { "source": "none" } ], "targets": { }, "actions": { "sendToSns": { "actionId": "aws:ssm:start-automation-execution", "description": "Publish message to SNS", "parameters": { "documentArn": "arn:aws:ssm:
us-east-1
::document/AWS-PublishSNSNotification", "documentParameters": "{\"Message\": \"Hello, world
\", \"TopicArn\": \"arn:aws:sns:us-east-1
:111122223333
:topic-name
\"}", "maxDuration": "PT1M
" }, "targets": { } } }, "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
Limite las API acciones en las EC2 instancias con el rol de destino IAM
El siguiente ejemplo limita el 100% de las API llamadas especificadas en la definición de acción para API las llamadas realizadas por los IAM roles especificados en la definición de destino.
nota
{ "tags": { "Name": "ThrottleEC2APIActions" }, "description": "Throttle the specified EC2 API actions on the specified IAM role", "targets": { "myRole": { "resourceType": "aws:iam:role", "resourceArns": ["arn:aws:iam::
111122223333
:role/role-name
"], "selectionMode": "ALL
" } }, "actions": { "ThrottleAPI": { "actionId": "aws:fis:inject-api-throttle-error", "description": "Throttle APIs for 5 minutes", "parameters": { "service": "ec2", "operations": "DescribeInstances,DescribeVolumes
", "percentage": "100
", "duration": "PT2M
" }, "targets": { "Roles": "myRole" } } }, "stopConditions": [ { "source": "aws:cloudwatch:alarm", "value": "arn:aws:cloudwatch:us-east-1
:111122223333
:alarm:alarm-name
" } ], "roleArn": "arn:aws:iam::111122223333
:role/role-name
" }
Prueba de esfuerzo de los pods de un CPU clúster de Kubernetes
En el siguiente ejemplo, se utiliza Chaos Mesh para realizar pruebas de stress CPU de los pods de un clúster de Amazon EKS Kubernetes durante un minuto.
{ "description": "ChaosMesh StressChaos example", "targets": { "Cluster-Target-1": { "resourceType": "aws:eks:cluster", "resourceArns": [ "arn:aws:eks:arn:aws::
111122223333
:cluster/cluster-id
" ], "selectionMode": "ALL
" } }, "actions": { "TestCPUStress": { "actionId": "aws:eks:inject-kubernetes-custom-resource", "parameters": { "maxDuration": "PT2M
", "kubernetesApiVersion": "chaos-mesh.org/v1alpha1", "kubernetesKind": "StressChaos", "kubernetesNamespace": "default", "kubernetesSpec": "{\"selector\":{\"namespaces\":[\"default\"],\"labelSelectors\":{\"run\":\"nginx\"}},\"mode\":\"all\",\"stressors\": {\"cpu\":{\"workers\":1,\"load\":50}},\"duration\":\"1m\"}" }, "targets": { "Cluster": "Cluster-Target-1" } } }, "stopConditions": [{ "source": "none" }], "roleArn": "arn:aws:iam::111122223333
:role/role-name
", "tags": {} }
En el siguiente ejemplo, se usa Litmus para hacer una prueba de stress CPU de los pods de un clúster de Amazon EKS Kubernetes durante un minuto.
{ "description": "Litmus CPU Hog", "targets": { "MyCluster": { "resourceType": "aws:eks:cluster", "resourceArns": [ "arn:aws:eks:arn:aws::
111122223333
:cluster/cluster-id
" ], "selectionMode": "ALL
" } }, "actions": { "MyAction": { "actionId": "aws:eks:inject-kubernetes-custom-resource", "parameters": { "maxDuration": "PT2M
", "kubernetesApiVersion": "litmuschaos.io/v1alpha1", "kubernetesKind": "ChaosEngine", "kubernetesNamespace": "litmus", "kubernetesSpec": "{\"engineState\":\"active\",\"appinfo\":{\"appns\":\"default\",\"applabel\":\"run=nginx\",\"appkind\":\"deployment\"},\"chaosServiceAccount\":\"litmus-admin\",\"experiments\":[{\"name\":\"pod-cpu-hog\",\"spec\":{\"components\":{\"env\":[{\"name\":\"TOTAL_CHAOS_DURATION\",\"value\":\"60\"},{\"name\":\"CPU_CORES\",\"value\":\"1\"},{\"name\":\"PODS_AFFECTED_PERC\",\"value\":\"100\"},{\"name\":\"CONTAINER_RUNTIME\",\"value\":\"docker\"},{\"name\":\"SOCKET_PATH\",\"value\":\"/var/run/docker.sock\"}]},\"probe\":[]}}],\"annotationCheck\":\"false\"}" }, "targets": { "Cluster": "MyCluster" } } }, "stopConditions": [{ "source": "none" }], "roleArn": "arn:aws:iam::111122223333
:role/role-name
", "tags": {} }