

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usando AWS Lambda para lidar com EventBridge eventos
<a name="using_lambda"></a>

Você pode usar o Amazon EBS e a Amazon EventBridge para automatizar seu fluxo de trabalho de backup de dados. Isso exige que você crie uma política do IAM, uma AWS Lambda função para lidar com o evento e uma EventBridge regra que corresponda aos eventos recebidos e os encaminhe para a função Lambda.

O procedimento a seguir usa o evento `createSnapshot` para copiar automaticamente um snapshot concluído em outra região para recuperação de desastres. 

**Como copiar um snapshot concluído em outra região**

1. Crie uma política do IAM, como a mostrada no exemplo a seguir, para fornecer permissões para usar a `CopySnapshot` ação e gravar no EventBridge registro. Atribua a política ao usuário que tratará do 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 uma função no Lambda que estará disponível no EventBridge console. O exemplo da função Lambda abaixo, escrito em Node.js, é invocado EventBridge quando um `createSnapshot` evento correspondente é emitido pelo Amazon EBS (significando que um snapshot foi concluído). Quando invocada, a função copia o snapshot de `us-east-2` em `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 garantir que sua função Lambda esteja disponível no EventBridge console, crie-a na região em que o EventBridge evento ocorrerá. Para obter mais informações, consulte o [Guia do desenvolvedor do AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

1. Abra o EventBridge console da Amazon em [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. No painel de navegação, escolha **Rules** (Regras) e **Create rule** (Criar regras).

1. Em **Step 1: Define rule detail** (Etapa 1: definir detalhe da regra), faça o seguinte:

   1. Insira valores para **Name** (Nome) e **Description** (Descrição).

   1. Em **Event bus** (Barramento de eventos), mantenha o valor **default** (padrão).

   1. Certifique-se de que **Enable the rule on the selected event bus** (Habilitar a regra nos barramentos de eventos selecionados) esteja ativada.

   1. Em **Rule type** (Tipo de regra), escolha **Rule with an event pattern** (Regra com um padrão de evento).

   1. Escolha **Próximo**.

1. Em **Step 2: Build event pattern** (Etapa 2: criar padrão de evento), faça o seguinte:

   1. Em **Origem do evento**, selecione **AWS eventos ou eventos de EventBridge parceiros**.

   1. Na seção **Padrão dos eventos**, em **Origem dos eventos**, certifique-se de que a opção **Serviço da AWS ** esteja selecionada e, em **Serviço da AWS **, selecione **EC2**.

   1. Em **Event type** (Tipo de evento), selecione **EBS Snapshot Notification** (Notificação de snapshot de EBS), selecione **Specific event(s)** (Eventos específicos) e, em seguida, selecione **createSnapshot**.

   1. Selecione **Specific result(s)** (Resultados específicos) e depois escolha **succeeded** (com êxito).

   1. Escolha **Próximo**.

1. Em **Etapa 3: Select targets** (Etapa 3: selecionar destinos), faça o seguinte:

   1. Em **Tipos de destino**, escolha **Serviço da AWS **.

   1. Em **Select target** (Selecionar destino), escolha **Lambda function** (Função do Lambda) e, em **Function** (Função), selecione a função criada anteriormente.

   1. Escolha **Next** (Avançar).

1. Em **Step 4: Configure tags** (Etapa 4: configurar etiquetas), especifique as etiquetas para a regra, se necessário e, em seguida, escolha **Next** (Avançar).

1. Em **Step 5: Review and create** (Etapa 5: revisar e criar), revise a regra e escolha **Create rule** (Criar regra).

A regra agora deve aparecer na guia **Rules (Regras)**. No exemplo mostrado, o evento que você configurou deve ser emitido pelo EBS na próxima vez você copiar um snapshot.