

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 le operazioni a livello di oggetto di Amazon S3 utilizzando EventBridge
<a name="eb-log-s3-data-events"></a>

Puoi registrare le operazioni API a livello di oggetto nei tuoi bucket [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html). Prima che Amazon EventBridge possa corrispondere a questi [eventi](eb-events.md), [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)devi impostare e configurare un percorso per ricevere questi eventi.

In questo tutorial, crei un CloudTrail trail, crei una [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)funzione e quindi crei una [regola](eb-rules.md) nella EventBridge console che richiama quella funzione in risposta a un evento relativo ai dati S3.

**Topics**
+ [

## Passaggio 1: configura il percorso AWS CloudTrail
](#eb-configure-trail)
+ [

## Fase 2: Creare una AWS Lambda funzione
](#eb-log-s3-create-lambda-function)
+ [

## Passaggio 3: creare una regola
](#eb-log-s3-create-rule)
+ [

## Fase 4: test della regola
](#eb-log-s3-test-rule)
+ [

## Passaggio 5: verificare il corretto completamento del tutorial
](#success)
+ [

## Fase 6: eliminare le risorse
](#cleanup)

## Passaggio 1: configura il percorso AWS CloudTrail
<a name="eb-configure-trail"></a>

Per registrare gli eventi relativi ai dati di un bucket S3 su AWS CloudTrail e EventBridge, devi prima creare un trail. Un *trail* acquisisce chiamate API e i relativi eventi nel tuo account e quindi distribuisce i file di log a un bucket S3 specificato. Puoi aggiornare un trail esistente oppure crearne uno.

Per ulteriori informazioni, consulta [Eventi di dati](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) nella *Guida per l'utente di AWS CloudTrail *. 

**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. In **Tipo di evento**, scegli **Eventi di dati**.

1. In **Eventi di dati**, esegui una delle operazioni descritte di seguito:
   + Per registrare gli eventi di dati per tutti gli oggetti Amazon S3 in un bucket, specifica un S3 Bucket e un prefisso vuoto. Quando si verifica un evento in un oggetto incluso in tale bucket, il trail elabora e registra l'evento.
   + Per registrare eventi di dati per oggetti Amazon S3 specifici, specifica un bucket S3 e il prefisso dell'oggetto. Quando si verifica un evento in un oggetto incluso in tale bucket e l'oggetto inizia con il prefisso specificato, il trail elabora e registra l'evento.

1. Per ciascuna risorsa, scegli se registrare gli eventi **Lettura**, **Scrittura** o entrambi.

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

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

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

Crea una funzione Lambda per la registrazione di eventi di dati per gli S3 Bucket. 

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

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

1. Seleziona **Implementa**.

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

Crea una regola per eseguire la funzione Lambda creata nella sezione Passaggio 2. Questa regola viene eseguita in risposta a un evento di dati Amazon S3.

**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 **Simple Storage Service (S3)** dall'elenco a discesa.

   1. Per **Tipo di evento**, seleziona **Chiamata API a livello di oggetto tramite CloudTrail** dall'elenco a discesa.

   1. Scegli **Operazioni specifiche, quindi** scegli. **PutObject**

   1. Per impostazione predefinita, la regola abbina gli eventi di dati per tutti i bucket nella Regione. Per abbinare eventi di dati per bucket specifici, selezionare **Specify bucket(s) by name (Specifica bucket per nome)**, quindi specificare uno o più bucket.

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 `LogS3DataEvents` che hai creato in Passaggio 1.

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

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

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

## Fase 4: test della regola
<a name="eb-log-s3-test-rule"></a>

Per testare la regola, inserisci un oggetto nel bucket S3. Puoi verificare che la funzione Lambda sia stata invocata.

**Per visualizzare i registri della funzione Lambda**

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.

Puoi anche controllare CloudTrail i log nel bucket S3 che hai specificato per il percorso. *Per ulteriori informazioni, consulta [Ottenere e visualizzare i file di CloudTrail registro](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html) nella Guida per l'AWS CloudTrail utente.*

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

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