Azioni per AWS FIS - AWS Servizio di iniezione dei guasti

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Azioni per AWS FIS

Per creare un modello di esperimento, è necessario definire una o più azioni. Per un elenco di azioni predefinite fornito da AWS FIS, vediRiferimento alle azioni.

È possibile eseguire un'azione solo una volta durante un esperimento. Per eseguire lo stesso AWS FISazione più di una volta nello stesso esperimento, aggiungila al modello più volte usando nomi diversi.

Sintassi dell'azione

Di seguito è riportata la sintassi di un'azione.

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

Quando si definisce un'azione, si fornisce quanto segue:

action_name

Un nome per l'operazione.

actionId

L'identificatore dell'azione.

description

Descrizione facoltativa

parameters

Qualsiasi parametro di azione.

startAfter

Qualsiasi azione che deve essere completata prima che questa azione possa iniziare. Altrimenti, l'azione viene eseguita all'inizio dell'esperimento.

targets

Qualsiasi obiettivo d'azione.

Per alcuni esempi, consulta Esempio di azioni.

Identificatori di azione

Ciascuno AWS FISl'azione ha un identificatore con il seguente formato:

aws:service-name:action-type

Ad esempio, la seguente azione arresta le EC2 istanze Amazon di destinazione:

aws:ec2:stop-instances

Per un elenco completo delle azioni, consulta laAWS FIS Riferimento alle azioni.

Parametri dell'operazione

Medio AWS FISle azioni hanno parametri aggiuntivi specifici dell'azione. Questi parametri vengono utilizzati per passare informazioni a AWS FISquando l'azione viene eseguita.

AWS FISsupporta tipi di errore personalizzati utilizzando l'aws:ssm:send-commandazione, che utilizza l'SSMagente e un documento di SSM comando per creare la condizione di errore sulle istanze di destinazione. L'aws:ssm:send-commandazione include un documentArn parametro che prende come valore l'Amazon Resource Name (ARN) di un SSM documento. Specifichi i valori per i parametri quando aggiungi l'azione al modello di esperimento.

Per ulteriori informazioni sulla specificazione dei parametri per l'aws:ssm:send-commandazione, consultateUtilizzate il aws:ssm:send-command action.

Ove possibile, è possibile inserire una configurazione di rollback (nota anche come azione successiva) all'interno dei parametri dell'azione. Una post-operazione ripristina una destinazione allo stato in cui si trovava prima dell'esecuzione dell'operazione stessa. L'azione di post viene eseguita dopo il tempo specificato nella durata dell'azione. Non tutte le azioni possono supportare le azioni di pubblicazione. Ad esempio, se l'azione interrompe un'EC2istanza Amazon, non è possibile ripristinare l'istanza dopo che è stata interrotta.

Obiettivi d'azione

Un'azione viene eseguita sulle risorse di destinazione specificate. Dopo aver definito un obiettivo, è possibile specificarne il nome quando si definisce un'azione.

"targets": { "resource_type": "resource_name" }

AWS FISle azioni supportano i seguenti tipi di risorse per gli obiettivi d'azione:

  • Gruppi Auto Scaling — Gruppi Amazon Auto EC2 Scaling

  • Bucket: bucket Amazon S3

  • Cluster: EKS cluster Amazon

  • Cluster: cluster Amazon o ECS cluster Amazon Aurora DB

  • DBInstances— istanze Amazon RDS DB

  • Tabelle globali crittografate: Amazon DynamoDB; tabelle globali crittografate con una chiave gestita dal cliente

  • Tabelle globali: Amazon DynamoDB; tabelle globali

  • Istanze: istanze Amazon EC2

  • Nodegroups — Gruppi di nodi Amazon EKS

  • Pods: pod Kubernetes su Amazon EKS

  • ReplicationGroups ElastiCache — Gruppi di replica Redis

  • Ruoli: ruoli IAM

  • SpotInstances— Istanze Amazon EC2 Spot

  • Sottoreti: sottoreti VPC

  • Attività — ECS Attività Amazon

  • TransitGateways— Gateway di transito

  • Volumi: EBS volumi Amazon

Per alcuni esempi, consulta Esempio di azioni.

Durata operazione

Se un'azione include un parametro che è possibile utilizzare per specificare la durata dell'azione, per impostazione predefinita, l'azione viene considerata completa solo dopo la scadenza della durata specificata. Se hai impostato l'opzione dell'emptyTargetResolutionModeesperimento suskip, l'azione verrà completata immediatamente con lo stato «ignorato» quando nessun obiettivo è stato risolto. Ad esempio, se specifichi una durata di 5 minuti, AWS FISconsidera l'azione completa dopo 5 minuti. Quindi avvia l'azione successiva, fino al completamento di tutte le azioni.

La durata può essere il periodo di tempo in cui viene mantenuta una condizione di azione o il periodo di tempo per il quale vengono monitorate le metriche. Ad esempio, la latenza viene iniettata per il periodo di tempo specificato. Per i tipi di azioni quasi istantanee, come l'interruzione di un'istanza, le condizioni di arresto vengono monitorate per la durata specificata.

Se un'azione include un'azione di post all'interno dei parametri dell'azione, l'azione di post viene eseguita dopo il completamento dell'azione. Il tempo necessario per completare l'azione successiva potrebbe causare un ritardo tra la durata dell'azione specificata e l'inizio dell'azione successiva (o la fine dell'esperimento, se tutte le altre azioni sono state completate).

Esempio di azioni

Di seguito sono riportati alcuni esempi di azioni.

Esempio: Stop Instances EC2

La seguente azione arresta le EC2 istanze identificate utilizzando la destinazione denominata targetInstances. Dopo due minuti, riavvia le istanze di destinazione.

"actions": { "stopInstances": { "actionId": "aws:ec2:stop-instances", "parameters": { "startInstancesAfterDuration": "PT2M" }, "targets": { "Instances": "targetInstances" } } }
Esempio: istanze Interrupt Spot

La seguente azione interrompe le istanze Spot identificate utilizzando la destinazione denominata targetSpotInstances. Attende due minuti prima di interrompere l'istanza Spot.

"actions": { "interruptSpotInstances": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M" }, "targets": { "SpotInstances": "targetSpotInstances" } } }
Esempio: interrompere il traffico di rete

L'azione seguente nega il traffico tra le sottoreti di destinazione e le sottoreti in altre zone di disponibilità.

"actions": { "disruptAZConnectivity": { "actionId": "aws:network:disrupt-connectivity", "parameters": { "scope": "availability-zone", "duration": "PT5M" }, "targets": { "Subnets": "targetSubnets" } } }
EKSEsempio: licenziare i lavoratori

La seguente azione interrompe il 50% delle EC2 istanze nel EKS cluster identificate utilizzando la destinazione denominata targetNodeGroups.

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