

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

# Utilizzo AWS Lambda per gestire gli eventi EventBridge
<a name="using_lambda"></a>

Puoi utilizzare Amazon EBS e Amazon EventBridge per automatizzare il flusso di lavoro di backup dei dati. Ciò richiede la creazione di una policy IAM, una AWS Lambda funzione per gestire l'evento e una EventBridge regola che abbini gli eventi in entrata e li indirizzi alla funzione Lambda.

La seguente procedura utilizza l'evento `createSnapshot` per copiare automaticamente uno snapshot completato in un'altra regione per il disaster recovery. 

**Per copiare uno snapshot completato in un'altra regione**

1. Crea una policy IAM, come quella mostrata nell'esempio seguente, per fornire le autorizzazioni per utilizzare l'`CopySnapshot`azione e scrivere nel registro. EventBridge Assegna la policy all'utente che gestirà l' EventBridge evento.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogGroup",
           "logs:CreateLogStream",
           "logs:PutLogEvents"
         ],
         "Resource": "arn:aws:logs:*:*:*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CopySnapshot"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

1. Definisci una funzione in Lambda che sarà disponibile dalla EventBridge console. La funzione Lambda di esempio riportata di seguito, scritta in Node.js, viene richiamata da EventBridge quando viene emesso un `createSnapshot` evento corrispondente da Amazon EBS (a indicare che uno snapshot è stato completato). Quando viene richiamata, la funzione copia lo snapshot da `us-east-2` in `us-east-1`.

   ```
   // Sample Lambda function to copy an EBS snapshot to a different Region
    
   var AWS = require('aws-sdk');
   var ec2 = new AWS.EC2();
    
   // define variables
   var destinationRegion = '{{us-east-1}}';
   var sourceRegion = '{{us-east-2}}';
   console.log ('Loading function');
    
   //main function
   exports.handler = (event, context, callback) => {
    
       // Get the EBS snapshot ID from the event details
       var snapshotArn = event.detail.snapshot_id.split('/');
       const snapshotId = snapshotArn[1];
       const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`;
       console.log ("snapshotId:", snapshotId);
   
       // Load EC2 class and update the configuration to use destination Region to initiate the snapshot.
       AWS.config.update({region: destinationRegion});
       var ec2 = new AWS.EC2();
   
       // Prepare variables for ec2.modifySnapshotAttribute call
       const copySnapshotParams = {
           Description: description,
           DestinationRegion: destinationRegion,
           SourceRegion: sourceRegion,
           SourceSnapshotId: snapshotId
       };
    
       // Execute the copy snapshot and log any errors
       ec2.copySnapshot(copySnapshotParams, (err, data) => {
           if (err) {
               const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(errorMessage);
               console.log(err);
               callback(errorMessage);
           } else {
               const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`;
               console.log(successMessage);
               console.log(data);
               callback(null, successMessage);
           }
       });
   };
   ```

   Per assicurarti che la tua funzione Lambda sia disponibile dalla EventBridge console, creala nella regione in cui si EventBridge verificherà l'evento. Per ulteriori informazioni, consulta la [Guida per gli sviluppatori di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

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

1. Nel riquadro di navigazione scegli **Rules (Regole)**, quindi **Create rule (Crea regola)**.

1. Per **Step 1: Define rule detail** (Fase 1: Definisci i dettagli della regola), effettua le seguenti operazioni:

   1. Immetti i valori per **Nome** (Nome) e **Description** (Descrizione).

   1. Per **Event bus** (Router di eventi), mantieni **default** (impostazione predefinita).

   1. Verifica che l'opzione **Enable the rule on the selected event bus** (Abilita la regola sul router di eventi selezionato) sia attivata.

   1. Per **Event type** (Tipo di evento), scegli **Rule with an event pattern** (Regola con un modello di eventi).

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

1. Per **Step 2: Build event pattern** (Fase 2: Crea modello di eventi), procedi come segue:

   1. Per **Event source**, seleziona **AWS eventi o eventi EventBridge dei partner**.

   1. Nella sezione **Modello evento**, per **Origine evento** accertati che sia selezionato **Servizio AWS ** e per **Servizio AWS ** seleziona **EC2**.

   1. Per **Event type** (Tipo di evento), seleziona **EBS Snapshot Notification** (Notifica snapshot EBS), seleziona **Specific event(s)** (Eventi specifici), quindi scegli **createSnapshot**.

   1. Selezionare **Specific result(s) Risultati specifici**, quindi scegliere **succeeded (riuscito)**.

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

1. Per **Step 3: Select targets** (Fase 3: Seleziona destinazioni), esegui queste operazioni:

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

   1. For **Select target** (Seleziona destinazione), scegli **Lambda function** (Funzione Lambda) e per **Function** (Funzione) seleziona la funzione creata in precedenza.

   1. Seleziona **Next** (Successivo).

1. Per **Step 4: Configure tags** (Fase 4: Configura i tag), specifica i tag per la regola, se necessario, quindi scegli **Next** (Successivo).

1. Per **Step 5: Review and create** (Fase 5: Rivedi e crea), rivedi la regola e scegli **Create rule** (Crea regola).

La regola ora viene visualizzata nella scheda **Rules (Regole)**. Nell'esempio visualizzato, l'evento configurato deve essere inviato da EBS alla successiva copia di uno snapshot.