

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à.

# Aggiungi gli hook del ciclo di vita al tuo gruppo Auto Scaling
<a name="adding-lifecycle-hooks"></a>

Per mettere le istanze Auto Scaling in uno stato di attesa ed eseguire operazioni personalizzate su di esse, puoi aggiungere hook del ciclo di vita al gruppo con scalabilità automatica. Le operazioni personalizzate vengono eseguite all'avvio o prima della fine delle istanze. Le istanze rimarranno in stato di attesa finché non avrai completato l’operazione del ciclo di vita oppure finché il periodo di timeout non sarà terminato.

Dopo aver creato un gruppo Auto Scaling da Console di gestione AWS, è possibile aggiungervi uno o più hook del ciclo di vita, fino a un totale di 50 hook del ciclo di vita. Puoi anche utilizzare AWS CLI CloudFormation, o un SDK per aggiungere hook del ciclo di vita a un gruppo Auto Scaling durante la creazione.

Per impostazione predefinita, quando aggiungi un hook del ciclo di vita nella console, Amazon EC2 Auto Scaling invia notifiche sugli eventi del ciclo di vita ad Amazon. EventBridge L'utilizzo EventBridge o di uno script di dati utente è una best practice consigliata. Per creare un hook del ciclo di vita che invii notifiche direttamente ad Amazon SNS, Amazon SQS AWS Lambda oppure puoi usare [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)il comando, come mostrato negli esempi in questo argomento.

**Topics**
+ [Come aggiungere hook del ciclo di vita (console)](#adding-lifecycle-hooks-console)
+ [Aggiunta di hook del ciclo di vita (AWS CLI)](#adding-lifecycle-hooks-aws-cli)

## Come aggiungere hook del ciclo di vita (console)
<a name="adding-lifecycle-hooks-console"></a>

Per aggiungere un hook del ciclo di vita a un gruppo con dimensionamento automatico, segui questa procedura. Per aggiungere hook del ciclo di vita per il dimensionamento orizzontale (avvio delle istanze) o il dimensionamento verticale (terminazione delle istanze o restituzione a un pool caldo), devi creare due hook separati. 

Prima di iniziare, assicurati di avere impostato un'operazione personalizzata, a seconda delle necessità, come descritto in [Preparazione all'aggiunta di un hook del ciclo di vita al gruppo con scalabilità automatica](prepare-for-lifecycle-notifications.md).

**Per aggiungere un hook del ciclo di vita per il dimensionamento orizzontale**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e scegli **Auto Scaling** Groups dal pannello di navigazione.

1. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico. Si aprirà un riquadro diviso nella parte inferiore della pagina. 

1. Nella scheda **Instance management (Gestione istanze)** in **Lifecycle hooks (Hook del ciclo di vita)**, scegliere **Create lifecycle hook (Crea hook del ciclo di vita)**.

1. Per definire un hook del ciclo di vita per il dimensionamento orizzontale (avvio delle istanze), procedi come descritto di seguito:

   1. Per **Lifecycle hook name (Nome hook del ciclo di vita)** specificare un nome per l'hook del ciclo di vita.

   1. In **Lifecycle transition (Transizione ciclo di vita)**, scegli **Instance launch (Avvia istanza)**.

   1. Per **Timeout heartbeat**, specifica quanto a lungo, in secondi, le istanze debbano rimanere in uno stato di attesa durante il dimensionamento orizzontale prima che l'hook scada. L'intervallo è tra `30` e `7200` secondi. L'impostazione di un periodo di timeout esteso fornisce più tempo per il completamento dell'operazione personalizzata. Quindi, se finisci prima della fine del periodo di timeout, invia il [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)comando per consentire all'istanza di passare allo stato successivo. 

   1. Per **Default result** (Risultato di default), specifica l'operazione da intraprendere quando gli hook del ciclo di vita scadono o si verifica un errore imprevisto. Puoi scegliere di **CONTINUARE** o **ABBANDONARE**.
      + Se scegli **CONTINUA**, il gruppo con dimensionamento automatico può procedere con qualsiasi altro hook del ciclo di vita e quindi mettere l'istanza in servizio.
      + Se scegli **ABBANDONA**, il gruppo con dimensionamento automatico arresta tutte le operazioni rimanenti e termina l'istanza immediatamente.

   1. (Facoltativo) In **Metadati delle notifiche**, specifica le altre informazioni che desideri includere ogni volta che Dimensionamento automatico Amazon EC2 invia un messaggio alla destinazione di notifica. 

1. Scegli **Create** (Crea).

**Per aggiungere un hook del ciclo di vita per il dimensionamento verticale**

1. Scegli **Crea hook del ciclo di vita** per continuare da dove avevi interrotto dopo aver creato un hook del ciclo di vita per il dimensionamento orizzontale.

1. Per definire un hook del ciclo di vita per il dimensionamento (istanze che terminano o ritornano a un pool caldo), procedi come segue:

   1. Per **Lifecycle hook name (Nome hook del ciclo di vita)** specificare un nome per l'hook del ciclo di vita.

   1. In **Lifecycle transition (Transizione ciclo di vita)** scegli **Instance terminate (Terminazione istanza)**. 

   1. Per **Timeout heartbeat**, specifica quanto a lungo, in secondi, le istanze debbano rimanere in uno stato di attesa durante il dimensionamento orizzontale prima che l'hook scada. Ti consigliamo un breve periodo di timeout, `30` da 1 a `120` 2 secondi, a seconda del tempo necessario per eseguire le attività finali, come ad esempio estrarre i log EC2. CloudWatch

   1. In **Default result (Risultato di default)**, specifica l'operazione che il gruppo con scalabilità automatica deve intraprendere una volta scaduto il timeout o se si verifica un errore imprevisto. Sia **ABANDON (ABBANDONA)** sia **CONTINUE (CONTINUA)** permettono all'istanza di terminare. 
      + Se scegli **CONTINUE (CONTINUA)**, il gruppo con scalabilità automatica può procedere con qualsiasi operazione restante, ad esempio altri hook del ciclo di vita, prima della terminazione. 
      + Se scegli **ABBANDONA**, il gruppo con dimensionamento automatico termina l'istanza immediatamente. 

   1. (Facoltativo) In **Metadati delle notifiche**, specifica le altre informazioni che desideri includere ogni volta che Dimensionamento automatico Amazon EC2 invia un messaggio alla destinazione di notifica.

1. Scegli **Create** (Crea).

## Aggiunta di hook del ciclo di vita (AWS CLI)
<a name="adding-lifecycle-hooks-aws-cli"></a>

Creare e aggiornare hook del ciclo di vita utilizzando il comando [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html).

Per eseguire un'operazione di aumento orizzontale, utilizza il comando seguente.

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

Per eseguire un'operazione di riduzione orizzontale, utilizza invece il comando seguente.

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

Per ricevere notifiche utilizzando Amazon SNS o Amazon SQS, aggiungi le opzioni `--notification-target-arn` e `--role-arn`. Per ricevere notifiche utilizzando AWS Lambda, aggiungi il. `--notification-target-arn`

Nell'esempio seguente viene creato un hook del ciclo di vita che specifica un argomento SNS denominato `my-sns-topic` come destinazione di notifica.

```
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
```

L'argomento riceve una notifica di test con la seguente coppia chiave-valore:

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

Per impostazione predefinita, il [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)comando crea un hook del ciclo di vita con un timeout del battito cardiaco di `3600` secondi (un'ora). 

Per modificare il timeout dell'heartbeat per un hook del ciclo di vita esistente, aggiungere l'opzione `--heartbeat-timeout`, come mostrato nell'esempio seguente.

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

Se un'istanza è già in stato di attesa, puoi impedire il timeout del lifecycle hook registrando un heartbeat, utilizzando il comando CLI. [record-lifecycle-action-heartbeat](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html) Ciò estende il periodo di timeout del valore di timeout specificato al momento della creazione dell'hook del ciclo di vita. Se finisci prima della fine del periodo di timeout, puoi inviare il comando [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html)CLI per consentire all'istanza di passare allo stato successivo. Per maggiori informazioni ed esempi, consulta [Completa un'azione del ciclo di vita in un gruppo Auto Scaling](completing-lifecycle-hooks.md).