

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.

# Ajoutez des hooks de cycle de vie à votre groupe Auto Scaling
<a name="adding-lifecycle-hooks"></a>

Pour mettre vos instances Auto Scaling en état d'attente et effectuer des actions personnalisées sur celles-ci, vous pouvez ajouter des hooks de cycle de vie à votre groupe Auto Scaling. Les actions personnalisées sont exécutées au lancement des instances ou avant qu'elles ne se terminent. Les instances restent dans un état d'attente jusqu'à ce que vous terminiez l'action du cycle de vie ou que le délai d'expiration se termine.

Après avoir créé un groupe Auto Scaling à partir du AWS Management Console, vous pouvez y ajouter un ou plusieurs hooks de cycle de vie, jusqu'à un total de 50 hooks de cycle de vie. Vous pouvez également utiliser le AWS CLI CloudFormation, ou un SDK pour ajouter des hooks de cycle de vie à un groupe Auto Scaling lors de sa création.

Par défaut, lorsque vous ajoutez un hook de cycle de vie dans la console, Amazon EC2 Auto Scaling envoie des notifications d'événements liés au cycle de vie à Amazon EventBridge. L'utilisation EventBridge d'un script de données utilisateur est une bonne pratique recommandée. Pour créer un hook de cycle de vie qui envoie des notifications directement à Amazon SNS, Amazon SQS, AWS Lambda ou vous pouvez utiliser [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)la commande, comme indiqué dans les exemples de cette rubrique.

**Topics**
+ [Ajouter des hooks de cycle de vie (console)](#adding-lifecycle-hooks-console)
+ [Ajouter des hooks de cycle de vie (AWS CLI)](#adding-lifecycle-hooks-aws-cli)

## Ajouter des hooks de cycle de vie (console)
<a name="adding-lifecycle-hooks-console"></a>

Procédez comme suit pour ajouter des hooks de cycle de vie à votre groupe Auto Scaling. Pour ajouter des hooks de cycle de vie pour la montée en puissance (lancement d’instances) et la mise à l’échelle horizontale (résiliation d’instances ou renvois dans le groupe chaud), vous devez créer deux hooks distincts. 

Avant de commencer, confirmez que vous avez configuré une action personnalisée, selon vos besoins, comme décrit dans [Vous préparer à ajouter un hook de cycle de vie à un groupe Auto Scaling](prepare-for-lifecycle-notifications.md).

**Pour ajouter un hook de cycle de vie destiné à la montée en puissance**

1. Ouvrez la console Amazon EC2 à l'adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/), puis sélectionnez **Auto Scaling Groups** dans le volet de navigation.

1. Cochez la case située en regard de votre groupe Auto Scaling. Un volet fractionné s'ouvre en bas de la page. 

1. Sous l'onglet **Instance management** (Gestion des instances) dans **Lifecycle hooks** (Hooks du cycle de vie), choisissez **Create lifecycle hook** (Créer un hook de cycle de vie.

1. Pour définir un hook de cycle de vie pour la montée en puissance (lancement d’instances), procédez comme suit :

   1. Pour le **Lifecycle Hook Name** (Nom du hook de cycle de vie), spécifiez un nom pour le hook de cycle de vie.

   1. Dans le champ **Lifecycle transition** (Transition du cycle de vie), choisissez **Instance launch** (Lancement d'instance).

   1. Pour **Délai de pulsation**, spécifiez la durée (en secondes) pendant laquelle les instances doivent rester en état d’attente lors de l’évolutivité horizontale avant l’expiration du hook. La plage est comprise entre `30` et `7200` secondes. La définition d’une longue période de délai d’attente donne plus de temps à votre action personnalisée pour aboutir. Ensuite, si vous terminez avant la fin du délai imparti, envoyez la [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)commande pour permettre à l'instance de passer à l'état suivant. 

   1. Pour **Default result** (Résultat par défaut), définissez l'action à entreprendre lorsque le délai d'attente du hook de cycle de vie est écoulé ou qu'un échec inattendu se produit. Vous pouvez choisir d’**ABANDONNER** ou de **CONTINUER**.
      + Si vous sélectionnez **CONTINUER**, le groupe Auto Scaling peut exécuter n’importe quel hook de cycle de vie, puis mettre l’instance en service.
      + Si vous choisissez **ABANDONNER**, le groupe Auto Scaling interrompt les actions restantes et résilie immédiatement l’instance.

   1. (Facultatif) Dans le champ **Métadonnées de notification**, spécifiez les informations supplémentaires que vous souhaitez inclure lorsque Amazon EC2 Auto Scaling envoie un message à la cible de notification. 

1. Choisissez **Créer**.

**Pour ajouter un hook de cycle de vie destiné à la mise à l’échelle horizontale**

1. Choisissez **Créer un hook de cycle de vie** pour continuer là où vous vous êtes arrêté après la création d’un hook de cycle de vie destiné à la montée en puissance.

1. Pour définir un hook de cycle de vie pour la mise à l’échelle horizontale (instances résiliées ou revenant à un groupe chaud), procédez comme suit :

   1. Pour le **Lifecycle Hook Name** (Nom du hook de cycle de vie), spécifiez un nom pour le hook de cycle de vie.

   1. Dans le champ **Transition du cycle de vie**, choisissez **Résiliation d'instance**. 

   1. Pour **Délai de pulsation**, spécifiez la durée (en secondes) pendant laquelle les instances doivent rester en état d’attente lors de l’évolutivité horizontale avant l’expiration du hook. Nous recommandons un court délai d'attente de deux `30` à `120` secondes, en fonction du temps dont vous avez besoin pour effectuer les tâches finales, telles que l'extraction des journaux EC2. CloudWatch

   1. Dans le champ **Default result** (Résultat par défaut), spécifiez l'action que le groupe Auto Scaling doit entreprendre lorsque le délai d'attente est écoulé ou qu'un échec inattendu se produit. Les paramètres **ABANDON** (ABANDONNER) et **CONTINUE** (CONTINUER) permettent tous les deux de résilier l'instance. 
      + Si vous choisissez **CONTINUE** (CONTINUER), le groupe Auto Scaling peut exécuter toutes les actions restantes, comme les hooks de cycle de vie, avant la résiliation. 
      + Si vous choisissez **ABANDONNER**, le groupe Auto Scaling résilie immédiatement l’instance. 

   1. (Facultatif) Dans le champ **Métadonnées de notification**, spécifiez les informations supplémentaires que vous souhaitez inclure lorsque Amazon EC2 Auto Scaling envoie un message à la cible de notification.

1. Choisissez **Créer**.

## Ajouter des hooks de cycle de vie (AWS CLI)
<a name="adding-lifecycle-hooks-aws-cli"></a>

Vous pouvez créer et mettre à jour des hooks du cycle de vie avec la commande [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html).

Pour exécuter une action sur l'augmentation de la taille des instances, utilisez la commande suivante.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-launch-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING
```

Pour exécuter une action sur la diminution de la taille des instances, ajoutez plutôt la commande suivante.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING
```

Pour recevoir des notifications à l'aide d'Amazon SNS ou d'Amazon SQS, ajoutez les options `--notification-target-arn` et `--role-arn`. Pour recevoir des notifications en utilisant AWS Lambda, ajoutez le`--notification-target-arn`.

L'exemple suivant crée un hook de cycle de vie qui spécifie une rubrique SNS nommée `my-sns-topic` comme cible de notification.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook  \
  --auto-scaling-group-name my-asg \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
  --notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic \
  --role-arn arn:aws:iam::123456789012:role/my-notification-role
```

La rubrique reçoit une notification test avec la paire clé-valeur suivante.

```
"Event": "autoscaling:TEST_NOTIFICATION"
```

Par défaut, la [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)commande crée un hook du cycle de vie avec un délai d'expiration de `3600` quelques secondes (une heure). 

Pour modifier le délai de pulsation d'un hook de cycle de vie existant, ajoutez le paramètre `--heartbeat-timeout`, comme illustré dans l'exemple suivant.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \
  --auto-scaling-group-name my-asg --heartbeat-timeout 120
```

Si une instance est déjà en état d'attente, vous pouvez empêcher l'expiration du cycle de vie du hook en enregistrant un battement de cœur à l'aide de la commande [record-lifecycle-action-heartbeat](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html)CLI. Cela prolonge le délai d'attente de la valeur d'attente spécifiée lorsque vous créez le hook de cycle de vie. Si vous terminez avant la fin du délai imparti, vous pouvez envoyer la commande [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)CLI pour permettre à l'instance de passer à l'état suivant. Pour plus d’informations et d’exemples, consultez [Réaliser une action du cycle de vie dans un groupe Auto Scaling](completing-lifecycle-hooks.md).