

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Se utiliza AWS Lambda para gestionar eventos EventBridge
<a name="using_lambda"></a>

Puede utilizar Amazon EBS y Amazon EventBridge para automatizar el flujo de trabajo de copia de seguridad de datos. Esto requiere que cree una política de IAM, una AWS Lambda función para gestionar el evento y una EventBridge regla que haga coincidir los eventos entrantes y los dirija a la función Lambda.

En el procedimiento siguiente se usa el evento `createSnapshot` para copiar automáticamente una instantánea completada en otra región para la recuperación de desastres. 

**Para copiar una instantánea completada en otra región**

1. Cree una política de IAM, como la que se muestra en el siguiente ejemplo, para proporcionar permisos para usar la `CopySnapshot` acción y escribir en el registro. EventBridge Asigne la política al usuario que gestionará el 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. Defina una función en Lambda que estará disponible en la EventBridge consola. El ejemplo de función Lambda que aparece a continuación, escrito en Node.js, se invoca EventBridge cuando Amazon EBS emite un `createSnapshot` evento coincidente (lo que indica que se ha completado una instantánea). Cuando se le llama, la función copia la instantánea de `us-east-2` en `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);
           }
       });
   };
   ```

   Para asegurarse de que la función Lambda esté disponible en la EventBridge consola, créela en la región en la que se producirá el EventBridge evento. Para obtener más información, consulte la [Guía para desarrolladores de AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

1. Abre la EventBridge consola de Amazon en [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. En el panel de navegación, elija **Rules** (Reglas) y, a continuación, elija **Create rule** (Crear regla).

1. En **Step 1: Define rule detail** (Paso 1: definición de detalles de reglas), haga lo siguiente:

   1. Introduzca valores para **Name** (Nombre) y **Description** (Descripción).

   1. En **Event bus** (Bus de eventos), mantenga la opción de **default** (Valor predeterminado).

   1. Asegúrese de que la opción **Enable the rule on the selected event bus** (Habilitar la regla en el bus de eventos seleccionado) esté activada.

   1. En **Event type** (Tipo de evento), seleccione **Rule with an event pattern** (Regla con un patrón de evento).

   1. Elija **Siguiente**.

1. En **Step 2: Build event pattern** (Paso 2: crear patrón de eventos), haga lo siguiente:

   1. Para la **fuente del evento**, selecciona **AWS eventos o eventos EventBridge asociados**.

   1. En la sección **Patrón de eventos**, en **Origen del evento**, asegúrese de que la opción **Servicio de AWS ** esté seleccionada y, en **Servicio de AWS **, seleccione **EC2**.

   1. En **Event type**, seleccione **EBS Snapshot Notification** (Notificación de instantáneas de EBS), seleccione **Specific event(s)** (Eventos específicos) y, a continuación, elija **createSnapshot**.

   1. Seleccione **Specific result(s)** (Resultados específicos) y luego elija **succeeded**.

   1. Elija **Siguiente**.

1. En **Step 3: Select targets** (Paso 3: seleccionar destinos), haga lo siguiente:

   1. En **Tipos de destino**, seleccione **Servicio de AWS **.

   1. En **Select target** (Seleccionar destino), elija **Lambda function** (Función Lambda) y, en **Function** (Función), seleccione la función creada anteriormente.

   1. Elija **Next** (Siguiente).

1. En **Step 4: Configure tags** (Paso 4: configurar etiquetas), especifique las etiquetas para la regla si es necesario y, a continuación, seleccione **Next**.

1. En **Step 5: Review and create** (Paso 5: revisar y crear), revise la regla y, a continuación, elija **Create rule**.

La regla debería aparecer ahora en la pestaña **Rules (Reglas)**. En el ejemplo mostrado, el evento que ha configurado debería activarlo EBS la próxima vez que copie una instantánea.