

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation AWS Lambda pour gérer les EventBridge événements
<a name="using_lambda"></a>

Vous pouvez utiliser Amazon EBS et Amazon EventBridge pour automatiser votre flux de sauvegarde des données. Cela vous oblige à créer une politique IAM, une AWS Lambda fonction pour gérer l'événement et une EventBridge règle qui fait correspondre les événements entrants et les achemine vers la fonction Lambda.

La procédure suivante utilise l’événement `createSnapshot` pour copier automatiquement un instantané terminé vers une autre région pour la reprise après sinistre. 

**Pour copier un instantané terminé vers une autre région**

1. Créez une politique IAM, telle que celle illustrée dans l'exemple suivant, pour autoriser l'utilisation de l'`CopySnapshot`action et l'écriture dans le EventBridge journal. Assignez la politique à l'utilisateur qui gérera l' EventBridge événement.

------
#### [ 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. Définissez une fonction dans Lambda qui sera disponible depuis la EventBridge console. L'exemple de fonction Lambda ci-dessous, écrit dans Node.js, est invoqué EventBridge lorsqu'un `createSnapshot` événement correspondant est émis par Amazon EBS (indiquant qu'un instantané est terminé). Lorsqu’elle est appelée, la fonction copie l’instantané de `us-east-2` vers `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);
           }
       });
   };
   ```

   Pour vous assurer que votre fonction Lambda est disponible depuis la EventBridge console, créez-la dans la région où l' EventBridge événement se produira. Pour plus d’informations, consultez le [Guide du développeur AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/).

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le volet de navigation, sélectionnez **Rules (Règles)**, puis **Create rule (Créer une règle)**.

1. Pour **Step 1: Define rule detail** (Étape 1 : Définir les détails de la règle), procédez comme suit :

   1. Saisissez un **Name** (Nom) et une **Description** pour la règle.

   1. Pour **Event bus** (Bus d’événements), gardez **default** (par défaut).

   1. Vérifiez que l’option **Enable the rule on the selected event bus** (Activer la règle sur le bus d’événements sélectionné) est activée.

   1. Pour **Event type** (Type d’événement), choisissez **Rule with an event pattern** (Règle avec un modèle d’événement).

   1. Choisissez **Suivant**.

1. Pour **Step 2: Build event pattern** (Étape 2 : Créer un modèle d’événement), procédez comme suit :

   1. Dans **Source de l'événement**, sélectionnez **AWS des événements ou des événements EventBridge partenaires**.

   1. Dans la section **Modèle d’événement**, pour **Origine de l’événement**, assurez-vous que **Service AWS ** est sélectionné, et pour **Service AWS **, sélectionnez **EC2**.

   1. Pour **Event type** (Type d’événement), sélectionnez **EBS Snapshot Notification** (Notification Instantanée EBS), **Specific event(s)** (Événement(s) spécifique), puis choisissez **createSnapshot**.

   1. Sélectionnez **Specific result(s)** (Résultat(s) spécifique(s)), puis choisissez **succeeded**.

   1. Choisissez **Suivant**.

1. Pour **Step 3: Select targets** (Étape 3 : Sélectionner les cibles), procédez comme suit :

   1. Pour **Types de cibles**, choisissez **service AWS **.

   1. Pour **Select target** (Sélectionner la cible), choisissez **Lambda function** (Fonction Lambda), et pour **Fonction**, sélectionnez la fonction que vous avez créée précédemment.

   1. Choisissez **Next** (Suivant)

1. Pour **Step 4: Configure tags** (Étape 4 : Configurer les balises), spécifiez des balises pour la règle si nécessaire, puis choisissez **Next** (Suivant).

1. Pour **Step 5: Review and create** (Étape 5 : Examen et création), passez en revue la règle, puis choisissez **Create rule** (Créer une règle).

Votre règle doit désormais apparaître sur l’onglet **Rules**. Dans l’exemple présenté, l’événement que vous avez configuré doit être émis par EBS la prochaine fois que vous copiez un instantané.