

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: crea una EventBridge regola che reagisca alle chiamate AWS API tramite CloudTrail
<a name="eb-log-api-call"></a>

Puoi utilizzare EventBridge [le regole](eb-rules.md) di Amazon per reagire alle chiamate API effettuate da un AWS servizio registrato da AWS CloudTrail.

In questo tutorial, crei un [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)trail, una funzione Lambda e una regola nella EventBridge console. La regola richiama la funzione Lambda quando un'istanza Amazon EC2 viene interrotta.

**Topics**
+ [Fase 1: Creare un AWS CloudTrail percorso](#eb-log-api-create-ct-trail)
+ [Fase 2: Creare una AWS Lambda funzione](#eb-api-create-lambda-function)
+ [Passaggio 3: creare una regola](#eb-api-create-rule)
+ [Passaggio 4: testare la regola](#eb-api-test-rule)
+ [Passaggio 5: verificare il corretto completamento del tutorial](#success)
+ [Fase 6: eliminare le risorse](#cleanup)

## Fase 1: Creare un AWS CloudTrail percorso
<a name="eb-log-api-create-ct-trail"></a>

Se un trail è già configurato, vai al passaggio 2.

**Come creare un trail**

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

1. Scegliere **Trails (Trail)**, **Create trail (Crea trail)**.

1. In **Trail name** (Nome trail), digita un nome per il trail.

1. In **Posizione archiviazione**, in **Crea un nuovo bucket S3**, scegli Sì.

1. In **Alias AWS KMS **, digita un alias per la chiave KMS.

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

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

1. Scegliere **Create trail (Creare trail)**.

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

Crea una funzione Lambda per registrare gli eventi di chiamate API. 

**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 `LogEC2StopInstance`.

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('LogEC2StopInstance');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Seleziona **Implementa**.

## Passaggio 3: creare una regola
<a name="eb-api-create-rule"></a>

Crea una regola per eseguire la funzione Lambda creata nel passaggio 2 ogni volta che arresti un'istanza Amazon EC2.

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

   1. Per **Tipo di evento**, seleziona **AWS API Call via CloudTrail** dall'elenco a discesa.

   1. Scegli **Operazioni specifiche** e immetti `StopInstances`.

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

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

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

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

## Passaggio 4: testare la 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 interrompa, quindi controlla le AWS Lambda metriche 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 5: 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.

## Fase 6: 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 **Elimina**.

**Per eliminare i CloudTrail percorsi**

1. Apri la [pagina Trails](https://console.aws.amazon.com/cloudtrail/home#/trails) della CloudTrail console.

1. Seleziona il trail creato.

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

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