

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

# Tutorial: Registra lo stato di un gruppo di Auto Scaling usando EventBridge
<a name="eb-log-as-group-state"></a>

Puoi eseguire una funzione [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) che registra [eventi](eb-events.md) ogni volta che un gruppo con dimensionamento automatico avvia o termina un'istanza Amazon EC2 che indica se l'evento è stato eseguito correttamente.

Per informazioni su altri scenari che utilizzano gli eventi di Amazon EC2 Auto Scaling[, EventBridge consulta Use to handle Auto Scaling events nella Amazon *EC2 Auto*](https://docs.aws.amazon.com/autoscaling/latest/userguide/automating-ec2-auto-scaling-with-eventbridge.html) Scaling User Guide.

In questo tutorial, crei una funzione Lambda e crei una [regola](eb-rules.md) nella EventBridge console che richiama tale funzione quando un gruppo Amazon EC2 Auto Scaling avvia o termina un'istanza.

**Topics**
+ [Prerequisiti](#eb-as-prereqs)
+ [Fase 1: creare una funzione Lambda](#eb-as-create-lambda-function)
+ [Fase 2: Creazione di una regola](#eb-as-create-rule)
+ [Fase 3: Test della regola](#eb-as-test-rule)
+ [Passaggio 4: verificare il corretto completamento del tutorial](#success)
+ [Passaggio 5: eliminare le risorse](#cleanup)

## Prerequisiti
<a name="eb-as-prereqs"></a>

Per completare questo tutorial, avrai bisogno delle seguenti risorse:
+ Un gruppo con dimensionamento automatico. Per ulteriori informazioni sulla creazione di un gruppo con dimensionamento automatico, consulta [Creazione di un gruppo con dimensionamento automatico utilizzando una configurazione di avvio](https://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg.html) nella Guida per l'utente di Dimensionamento automatico Amazon EC2.

## Fase 1: creare una funzione Lambda
<a name="eb-as-create-lambda-function"></a>

Crea una funzione Lambda per la registrazione degli eventi di dimensionamento orizzontale e verticale per il gruppo Auto Scaling. 

**Come creare una funzione Lambda**

1. Apri la console all'indirizzo. AWS Lambda [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Selezionare **Create function (Crea funzione)**.

1. Scegli **Author from scratch** (Crea da zero).

1. Immetti un nome per la funzione Lambda. Ad esempio, denomina la funzione `LogAutoScalingEvent`.

1. Per le altre opzioni, mantieni il valore predefinito e scegli **Crea funzione**.

1. Nella scheda **Codice** della pagina della funzione, fai doppio clic su **index.js**.

1. Sostituisci il codice esistente con il seguente.

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogAutoScalingEvent');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Selezionare **Deploy (Distribuisci)**.

## Fase 2: Creazione di una regola
<a name="eb-as-create-rule"></a>

Crea una regola per eseguire la funzione Lambda creata nella sezione Passaggio 1. La regola viene eseguita quando il gruppo con dimensionamento automatico avvia o arresta un'istanza.

**Per creare una regola**

1. Apri la EventBridge console Amazon all'indirizzo [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Nel pannello di navigazione, scegli **Regole**.

1. Scegli **Crea regola**.

1. Inserisci un nome e una descrizione per la regola. Ad esempio, assegnale il nome `TestRule`.

1. Per **Router di eventi**, scegli quello che desideri associare a questa regola. Se vuoi che questa regola corrisponda agli eventi provenienti dal tuo account, seleziona **Predefinito**. Quando un servizio di AWS nell'account emette un evento, passa sempre al bus di eventi predefinito dell'account.

1. Per **Tipo di regola**, scegli **Regola con un modello di eventi**.

1. Scegli **Next (Successivo)**.

1. Per **Origine evento**, scegli **Servizi AWS **.

1. Per **Event pattern** (Modello di eventi), procedi come segue:

   1. In **Origine evento**, seleziona **Auto Scaling** dall'elenco a discesa.

   1. In **Tipo di evento**, seleziona **Avvia e termina istanza** dall'elenco a discesa.

   1. Scegli **Qualsiasi evento relativo all'istanza** e **Qualsiasi nome di gruppo**.

1. Scegli **Next (Successivo)**.

1. Per **Tipi di destinazione**, scegli **servizio AWS **.

1. In **Seleziona una destinazione**, scegli la **funzione Lambda** dall'elenco a discesa.

1. In **Funzione**, seleziona la funzione Lambda che hai creato nella sezione **Passaggio 1: creare una funzione Lambda**. In questo esempio, seleziona `LogAutoScalingEvent`.

1. Scegli **Next (Successivo)**.

1. Scegli **Next (Successivo)**.

1. Rivedi i dettagli della regola e scegli **Crea regola**.

## Fase 3: Test della regola
<a name="eb-as-test-rule"></a>

Puoi testare la regola dimensionando manualmente un gruppo con dimensionamento automatico in modo che avvii un'istanza. Attendi alcuni minuti per l'evento di scalabilità orizzontale, quindi verifica che la funzione Lambda sia stata richiamata.

**Per testare la regola tramite un gruppo Auto Scaling**

1. Per aumentare le dimensioni del gruppo con dimensionamento automatico, procedi come segue:

   1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

   1. Nel riquadro di navigazione, selezionare **Auto Scaling**, **Auto Scaling Groups (Gruppi Auto Scaling)**.

   1. Seleziona la casella di controllo accanto al gruppo Auto Scaling.

   1. Nella scheda **Dettagli**, seleziona **Modifica**. In **Desired** (Desiderato), aumenta la capacità desiderata di una unità. Ad esempio, se il valore corrente è **2**, immetti **3**. La capacità desiderata deve essere minore o uguale alla dimensione massima del gruppo. Se il nuovo valore di **Desired (Desiderato)** è superiore a **Max**, devi aggiornare **Max**. Al termine, seleziona **Salva**.

1. Per visualizzare l'output della funzione Lambda, procedi nel seguente modo:

   1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

   1. Nel riquadro di navigazione scegli **Logs (Log)**.

   1. Seleziona il nome del gruppo di log per la funzione Lambda (`/aws/lambda/function-name`).

   1. Seleziona il nome del flusso di log per visualizzare i dati forniti dalla funzione per l'istanza avviata.

1. (Facoltativo) Al termine, puoi diminuire la capacità desiderata di una unità, in modo che il gruppo con dimensionamento automatico torni alle dimensioni precedenti.

## Passaggio 4: verificare il corretto completamento del tutorial
<a name="success"></a>

Se vedi l'evento Lambda nei CloudWatch log, significa che hai completato con successo questo tutorial. Se l'evento non è presente nei tuoi CloudWatch registri, inizia la risoluzione dei problemi verificando che la regola sia stata creata correttamente e, se la regola sembra corretta, verifica che il codice della tua funzione Lambda sia corretto.

## Passaggio 5: eliminare le risorse
<a name="cleanup"></a>

Ora è possibile eliminare le risorse create per questo tutorial, a meno che non si voglia conservarle. Eliminando AWS le risorse che non utilizzi più, eviti addebiti inutili sul tuo account. AWS 

**Per eliminare la/le EventBridge regola/e**

1. Apri la [pagina Regole](https://console.aws.amazon.com/events/home#/rules) della EventBridge console.

1. Seleziona la regola che hai creato.

1. Scegliere **Delete (Elimina)**.

1. Scegliere **Delete (Elimina)**.

**Per eliminare la funzione Lambda**

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Seleziona la funzione creata.

1. Scegliere **Actions (Operazioni)**, **Delete (Elimina)**.

1. Scegli **Delete** (Elimina).