

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'istanza Amazon EC2 utilizzando EventBridge
<a name="eb-log-ec2-instance-state"></a>

È possibile creare una funzione [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) che registri le modifiche dello stato per un'istanza [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html). Successivamente, puoi scegliere di creare una [regola](eb-rules.md) che esegua la funzione Lambda ogni volta che si verifica una transizione di stato o una transizione a uno o più stati di interesse. In questo tutorial, registrerai l'avvio di qualsiasi nuova istanza.

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

## Fase 1: Creare una funzione AWS Lambda
<a name="eb-ec2-create-lambda-function"></a>

Crea una funzione Lambda per registrare gli [eventi](eb-events.md) di modifica dello stato. Quando crei la regola nella sezione Passaggio 2, specifichi questa funzione.

**Come creare una funzione Lambda**

1. Apri la AWS Lambda console all'indirizzo [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. Digitare un nome e una descrizione per la funzione Lambda. Ad esempio, denomina la funzione `LogEC2InstanceStateChange`.

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('LogEC2InstanceStateChange');
       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-ec2-create-rule"></a>

Crea una regola per eseguire la funzione Lambda creata nella sezione Passaggio 1. La regola viene eseguita quando avvii un'istanza Amazon EC2.

**Per creare la EventBridge 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 **EC2** dall'elenco a discesa.

   1. In **Tipo di evento**, scegli **Notifica del cambio di stato istanza EC2** dall'elenco a discesa.

   1. Scegli **Stati specifici** e scegli **In esecuzione** dall'elenco a discesa.

   1. Scegli **Qualsiasi istanza**.

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

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-api-test-rule"></a>

Puoi testare la regola arrestando un'istanza Amazon EC2 tramite la console Amazon EC2. Attendi qualche minuto che l'istanza si fermi, quindi controlla i AWS Lambda parametri sulla CloudWatch console per verificare che la funzione funzioni.

**Test della regola arrestando un'istanza**

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

1. Avvia un'istanza. Per ulteriori informazioni, consulta [Launch Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) nella *Amazon EC2 User Guide*.

1. Arrestare l’istanza. Per ulteriori informazioni, consulta [Stop and Start Your Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html) nella *Amazon EC2 User Guide*.

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. Selezionare il nome del flusso di log per visualizzare i dati forniti dalla funzione per l'istanza arrestata.

1. (Facoltativo) Al termine, terminare l'istanza arrestata. Per ulteriori informazioni, consulta [Terminazione dell'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html) nella *Guida per l'utente di Amazon EC2*.

## 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 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 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 le EventBridge regole**

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