

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Actions pour la AWS FIS
<a name="action-sequence"></a>

Pour créer un modèle de test, vous devez définir une ou plusieurs actions. Pour obtenir la liste des actions prédéfinies fournies par le AWS FIS, voir[Référence des actions](fis-actions-reference.md).

Vous ne pouvez exécuter une action qu'une seule fois au cours d'une expérience. Pour exécuter la même action AWS FIS plusieurs fois dans le même test, ajoutez-la plusieurs fois au modèle en utilisant des noms différents.

**Topics**
+ [Syntaxe des actions](#action-syntax)
+ [Identifiants d'action](#action-identifiers)
+ [Paramètres d'action](#action-parameters)
+ [Objectifs d'action](#action-targets)
+ [Durée de l'action](#action-duration)
+ [Exemples d'actions](#example-actions)

## Syntaxe des actions
<a name="action-syntax"></a>

Voici la syntaxe d'une action.

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

Lorsque vous définissez une action, vous fournissez les informations suivantes :

***action\$1name***  
Nom de l'action.

**actionId**  
[Identifiant de l'action](#action-identifiers).

**description**  
Description facultative.

**parameters**  
Tous les [paramètres d'action](#action-parameters).

**startAfter**  
Toutes les actions qui doivent être terminées avant que cette action ne puisse démarrer. Dans le cas contraire, l'action s'exécute au début de l'expérience.

**targets**  
Toutes les [cibles d'action](#action-targets).

Pour obtenir des exemples, consultez [Exemples d'actions](#example-actions).

## Identifiants d'action
<a name="action-identifiers"></a>

Chaque action AWS FIS possède un identifiant au format suivant :

```
aws:service-name:action-type
```

Par exemple, l'action suivante arrête les instances Amazon EC2 cibles :

```
aws:ec2:stop-instances
```

Pour une liste complète des actions, consultez le[AWS FIS Référence des actions](fis-actions-reference.md).

## Paramètres d'action
<a name="action-parameters"></a>

Certaines actions AWS FIS comportent des paramètres supplémentaires spécifiques à l'action. Ces paramètres sont utilisés pour transmettre des informations au AWS FIS lorsque l'action est exécutée. 

AWS FIS prend en charge les types de pannes personnalisés à l'aide de l'`aws:ssm:send-command`action, qui utilise l'agent SSM et un document de commande SSM pour créer la condition de panne sur les instances ciblées. L'`aws:ssm:send-command`action inclut un `documentArn` paramètre qui prend le nom de ressource Amazon (ARN) d'un document SSM comme valeur. Vous spécifiez des valeurs pour les paramètres lorsque vous ajoutez l'action à votre modèle d'expérience.

Pour plus d'informations sur la définition des paramètres de l'`aws:ssm:send-command`action, consultez[Utilisez l'aws:ssm:send-commandaction](actions-ssm-agent.md#specifying-ssm-actions).

Dans la mesure du possible, vous pouvez saisir une configuration de restauration (également appelée action de *post-action*) dans les paramètres de l'action. Une post action restaure la cible dans l’état dans lequel elle se trouvait avant l’exécution de l’action. L'action de publication s'exécute après le délai spécifié dans la durée de l'action. Toutes les actions ne peuvent pas prendre en charge les actions de publication. Par exemple, si l'action met fin à une instance Amazon EC2, vous ne pouvez pas récupérer l'instance une fois qu'elle a été résiliée.

## Objectifs d'action
<a name="action-targets"></a>

Une action s'exécute sur les ressources cibles que vous spécifiez. Après avoir défini une cible, vous pouvez indiquer son nom lorsque vous définissez une action.

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

AWS Les actions de la FIS prennent en charge les types de ressources suivants pour les cibles d'action :
+ **AutoScalingGroups**— Groupes Amazon EC2 Auto Scaling
+ **Compartiments** — Compartiments Amazon S3
+ **Cluster — Clusters** Amazon EKS
+ **Clusters : clusters** de base de données Amazon ECS, Aurora DSQL ou Amazon Aurora
+ **DBInstances**— Instances de base de données Amazon RDS
+ **Fonctions** — AWS Lambda fonctions
+ **Instances : instances** Amazon EC2
+ **KinesisStreams**— Flux de données Kinesis
+ **ManagedResources**— Les clusters Amazon EKS, les équilibreurs de charge d'application et de réseau Amazon EC2 et les groupes Amazon EC2 Auto Scaling activés pour le changement de zone ARC.
+ **MultiRegionClusters**— Clusters multirégionaux Amazon MemoryDB
+ Groupes de **nœuds : groupes** de nœuds Amazon EKS
+ **Pods — Pods** Kubernetes sur Amazon EKS
+ **ReplicationGroups**— Groupes ElastiCache de réplication
+ **Rôles — Rôles** IAM
+ **SpotInstances**— Instances ponctuelles Amazon EC2
+ **Sous-réseaux : sous-réseaux** VPC
+ **Tableaux — Tableaux** globaux multirégionaux très cohérents d'Amazon DynamoDB
+ **Tâches — Tâches** Amazon ECS
+ **TransitGateways**— Passerelles de transport
+ **VirtualInterfaces**— Interfaces Direct Connect virtuelles
+ **Volumes — Volumes** Amazon EBS
+ **VPCEndpoints**— Points de terminaison Amazon VPC

Pour obtenir des exemples, consultez [Exemples d'actions](#example-actions).

## Durée de l'action
<a name="action-duration"></a>

Si une action inclut un paramètre que vous pouvez utiliser pour spécifier la durée de l'action, par défaut, l'action n'est considérée comme terminée qu'une fois la durée spécifiée écoulée. Si vous avez défini l'option d'`emptyTargetResolutionMode`expérimentation sur`skip`, l'action se terminera immédiatement avec le statut « ignoré » lorsqu'aucune cible n'a été résolue. Par exemple, si vous spécifiez une durée de 5 minutes, AWS FIS considère que l'action est terminée au bout de 5 minutes. Il lance ensuite l'action suivante, jusqu'à ce que toutes les actions soient terminées.

La durée peut être soit la durée pendant laquelle une condition d'action est maintenue, soit la durée pendant laquelle les métriques sont surveillées. Par exemple, la latence est injectée pendant la durée spécifiée. Pour les types d'action quasi instantanés, tels que la mise hors service d'une instance, les conditions d'arrêt sont surveillées pendant la durée spécifiée.

Si une action inclut une action de publication dans les paramètres de l'action, l'action de publication s'exécute une fois l'action terminée. Le temps nécessaire pour terminer l'action de publication peut entraîner un délai entre la durée d'action spécifiée et le début de l'action suivante (ou la fin de l'expérience, si toutes les autres actions sont terminées).

## Exemples d'actions
<a name="example-actions"></a>

Voici des exemples d'actions.

**Exemples**
+ [Arrêter les instances EC2](#example-action-stop-instances)
+ [Interruptez les instances ponctuelles](#example-action-send-spot-instance-interupptions)
+ [Perturber le trafic réseau](#example-action-disrupt-connectivity)
+ [Licencier les employés d'E](#example-action-terminate-nodegroup-instances)
+ [Démarrer l'autoshift par zone ARC](#example-start-arc-zonal-autoshift)<a name="example-action-stop-instances"></a>

**Exemple : arrêter les instances EC2**  
L'action suivante arrête les instances EC2 identifiées à l'aide de la cible nommée*targetInstances*. Au bout de deux minutes, il redémarre les instances cibles.

```
"actions": {
    "stopInstances": {
        "actionId": "aws:ec2:stop-instances",
        "parameters": {
            "startInstancesAfterDuration": "PT2M"
        },
        "targets": {
            "Instances": "targetInstances"
        }
    }
}
```<a name="example-action-send-spot-instance-interupptions"></a>

**Exemple : Interrupt Spot Instances**  
L'action suivante arrête les instances Spot identifiées à l'aide de la cible nommée*targetSpotInstances*. Il attend deux minutes avant d'interrompre l'instance Spot.

```
"actions": {
    "interruptSpotInstances": {
        "actionId": "aws:ec2:send-spot-instance-interruptions",
        "parameters": {
            "durationBeforeInterruption": "PT2M"
        },
        "targets": {
            "SpotInstances": "targetSpotInstances"
        }
    }
}
```<a name="example-action-disrupt-connectivity"></a>

**Exemple : perturber le trafic réseau**  
L'action suivante refuse le trafic entre les sous-réseaux cibles et les sous-réseaux des autres zones de disponibilité.

```
"actions": {
    "disruptAZConnectivity": {
        "actionId": "aws:network:disrupt-connectivity",
        "parameters": {
            "scope": "availability-zone",
            "duration": "PT5M"
        },
        "targets": {
            "Subnets": "targetSubnets"
        }
    }
}
```<a name="example-action-terminate-nodegroup-instances"></a>

**Exemple : licencier des employés d'EKS**  
L'action suivante met fin à 50 % des instances EC2 du cluster EKS identifiées à l'aide de la cible nommée. *targetNodeGroups*

```
"actions": {
    "terminateWorkers": {
        "actionId": "aws:eks:terminate-nodegroup-instances",
        "parameters": {
            "instanceTerminationPercentage": "50"
        },
        "targets": {
            "Nodegroups": "targetNodeGroups"
        }
    }
}
```<a name="example-start-arc-zonal-autoshift"></a>

**Exemple : démarrer l'autoshift par zone ARC**  
L'action suivante lance un changement automatique par zone ARC qui déplace les ressources gérées de *az-in-parameters* la zone pour. *duration-in-parameteres* Le type de ressource `ManagedResources` est utilisé comme clé pour le nom de la cible dans le modèle d'expérience AWS FIS.

```
{
    "description": "aaa",
    "targets": {
        "ManagedResources-Target-1": {
            "resourceType": "aws:arc:zonal-shift-managed-resource",
            "resourceArns": [
                "arn:aws:elasticloadbalancing:us-east-1:0124567890:loadbalancer/app/application/11223312312516",
            ],
            "selectionMode": "ALL"
        }
    },
    "actions": {
        "arc": {
            "actionId": "aws:arc:start-zonal-autoshift",
            "parameters": {
                "availabilityZoneIdentifier": "us-east-1a",
                "duration": "PT1M"
            },
            "targets": {
               "ManagedResources": "ManagedResources-Target-1"
            }
        }
    },
    "stopConditions": [
        {
            "source": "none"
        }
    ],
    "roleArn": "arn:aws:iam::718579638765:role/fis",
    "tags": {},
    "experimentOptions": {
        "accountTargeting": "single-account",
        "emptyTargetResolutionMode": "fail"
    }
}
```