

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.

# Tutoriel : Enregistrez les opérations au niveau des objets Amazon S3 à l'aide de EventBridge
<a name="eb-log-s3-data-events"></a>

Vous pouvez journaliser les opérations d’API au niveau de l’objet dans vos compartiments [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html). Avant qu'Amazon EventBridge puisse faire correspondre ces [événements](eb-events.md), vous [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)devez créer et configurer un suivi pour recevoir ces événements.

Dans ce didacticiel, vous allez créer une CloudTrail trace, créer une [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)fonction, puis créer une [règle](eb-rules.md) dans la EventBridge console qui invoque cette fonction en réponse à un événement de données S3.

**Topics**
+ [Étape 1 : Configurez votre AWS CloudTrail parcours](#eb-configure-trail)
+ [Étape 2 : Création d'une AWS Lambda fonction](#eb-log-s3-create-lambda-function)
+ [Étape 3 : Création d'une règle](#eb-log-s3-create-rule)
+ [Étape 4 : Test de la règle](#eb-log-s3-test-rule)
+ [Étape 5 : Confirmer la bonne exécution](#success)
+ [Étape 6 : Nettoyer vos ressources](#cleanup)

## Étape 1 : Configurez votre AWS CloudTrail parcours
<a name="eb-configure-trail"></a>

Pour consigner les événements de données d'un compartiment S3 à AWS CloudTrail et EventBridge, vous devez d'abord créer un suivi. Un *journal de suivi* capture les appels d’API et les événements associés de votre compte et transmet les fichiers journaux au compartiment S3 que vous spécifiez. Vous pouvez mettre à jour un journal de suivi existant ou en créer une nouveau.

Pour plus d’informations, consultez [Événements de données](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-and-data-events-with-cloudtrail.html#logging-data-events) dans le *Guide de l’utilisateur AWS CloudTrail *. 

**Pour créer un journal de suivi**

1. Ouvrez la CloudTrail console à l'adresse [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1. Choisissez **Trails (Suivis)**, **Create trail (Créer un suivi)**.

1. Dans **Trail name**, tapez un nom pour le journal.

1. Pour **Emplacement de stockage**, choisissez **Créer un compartiment S3**.

1. Dans **Alias AWS KMS **, entrez un alias pour la clé KMS.

1. Choisissez **Suivant**.

1. Pour **Type d’événement**, choisissez **Événements de données**

1. Pour **Événements de données**, effectuez l’une des opérations suivantes :
   + Pour enregistrer des événements de données pour tous les objets Amazon S3 d'un compartiment, précisez un compartiment S3 et un préfixe vide. Lorsqu'un événement se produit sur un objet de ce compartiment , celui-ci est traité et enregistré par le suivi.
   + Pour journaliser les événements de données relatifs à certains objets Amazon S3, spécifiez un compartiment S3 et le préfixe d’objet. Lorsqu'un événement se produit sur un objet de ce compartiment et que l'objet commence par le préfixe spécifié, le suivi traite et consigne l'événement.

1. Pour chaque ressource, optez pour une journalisation des événements en **Lecture**, en **Écriture** ou les deux.

1. Choisissez **Suivant**.

1. Choisissez **Create trail (Créer un journal de suivi)**.

## Étape 2 : Création d'une AWS Lambda fonction
<a name="eb-log-s3-create-lambda-function"></a>

Créez une fonction Lambda pour enregistrer les événements de données de vos compartiments S3. 

**Pour créer une fonction Lambda**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Choisissez **Créer une fonction**.

1. Choisissez **Créer à partir de zéro**.

1. Saisissez un nom et une description pour la fonction Lambda. Par exemple, nommez la fonction `LogS3DataEvents`.

1. Gardez les autres options comme valeurs par défaut et choisissez **Créer une fonction**.

1. Dans l’onglet **Code** de la page de fonction, double-cliquez sur **index.js**.

1. Remplacez le code existant par le code suivant.

   ```
   'use strict';
   
   exports.handler = (event, context, callback) => {
       console.log('LogS3DataEvents');
       console.log('Received event:', JSON.stringify(event, null, 2));
       callback(null, 'Finished');
   };
   ```

1. Choisissez **Déployer**.

## Étape 3 : Création d'une règle
<a name="eb-log-s3-create-rule"></a>

Créez une règle pour exécuter la fonction Lambda que vous avez créée à l’étape 2. Cette règle s’exécutera en réponse à un événement de données Amazon S3.

**Pour créer une règle**

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

1. Dans le panneau de navigation, choisissez **Rules**.

1. Choisissez **Créer une règle**.

1. Saisissez un nom et une description pour la règle. Par exemple, nommez la règle `TestRule`

1. Pour **Event bus** (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle mette en correspondance les événements en provenance de votre compte, sélectionnez **Par défaut**. Lorsqu'un service AWS de votre compte émet un événement, il accède toujours au bus d'événement par défaut de votre compte.

1. Pour **Type de règle**, choisissez **Règle avec un modèle d’événement**.

1. Choisissez **Suivant**.

1. Pour **Source d'événement**, choisissez **Services AWS **.

1. Pour **Event pattern** (Modèle d’événement), procédez comme suit :

   1. Sous **Source d’événement**, sélectionnez **Simple Storage Service (S3)** dans la liste déroulante.

   1. Pour le **type d'événement**, sélectionnez **Appel d'API au niveau de l'objet via CloudTrail** dans la liste déroulante.

   1. Choisissez **Opération (s) spécifique (s)**, puis choisissez **PutObject**.

   1. Par défaut, la règle correspond aux événements de données pour tous les compartiments de la région. Pour faire correspondre des événements de données pour des compartiments spécifiques, choisissez **Specify bucket(s) by name (Spécifier les compartiments par nom)**, puis précisez un ou plusieurs compartiments.

1. Choisissez **Suivant**.

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

1. Pour **Sélectionner une cible**, choisissez **Fonction Lambda** dans la liste déroulante.

1. Pour **Fonction**, sélectionnez la fonction Lambda `LogS3DataEvents` que vous avez créée à l’étape 1.

1. Choisissez **Suivant**.

1. Choisissez **Suivant**.

1. Consultez les détails de la règle et choisissez **Create rule** (Créer une règle).

## Étape 4 : Test de la règle
<a name="eb-log-s3-test-rule"></a>

Pour tester la règle, placez un objet dans votre compartiment S3. Vous pouvez vérifier que votre fonction Lambda a été appelée.

**Pour afficher les journaux de votre fonction Lambda**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, sélectionnez **Logs** (Journaux).

1. Sélectionnez le nom du groupe de journaux pour votre fonction Lambda (`/aws/lambda/{{function-name}}`).

1. Sélectionnez le nom du flux de journaux pour afficher les données fournies par la fonction concernant l'instance que vous avez lancée.

Vous pouvez également consulter vos CloudTrail journaux dans le compartiment S3 que vous avez spécifié pour votre parcours. Pour plus d'informations, consultez la section [Obtenir et consulter vos fichiers CloudTrail journaux](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/get-and-view-cloudtrail-log-files.html) dans le *guide de AWS CloudTrail l'utilisateur*.

## Étape 5 : Confirmer la bonne exécution
<a name="success"></a>

Si vous voyez l'événement Lambda dans les CloudWatch journaux, cela signifie que vous avez terminé ce didacticiel avec succès. Si l'événement ne figure pas dans vos CloudWatch journaux, commencez le dépannage en vérifiant que la règle a été créée avec succès et, si la règle semble correcte, vérifiez que le code de votre fonction Lambda est correct.

## Étape 6 : Nettoyer vos ressources
<a name="cleanup"></a>

Vous pouvez maintenant supprimer les ressources que vous avez créées pour ce didacticiel, sauf si vous souhaitez les conserver. En supprimant AWS les ressources que vous n'utilisez plus, vous évitez des frais inutiles sur votre AWS compte.

**Pour supprimer la ou les EventBridge règles**

1. Ouvrez la [page Règles](https://console.aws.amazon.com/events/home#/rules) de la EventBridge console.

1. Sélectionnez la ou les règles que vous avez créées.

1. Sélectionnez **Delete (Supprimer)**.

1. Sélectionnez **Delete (Supprimer)**.

**Pour supprimer la ou les fonctions Lambda**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Sélectionnez la ou les fonctions que vous avez créées.

1. Sélectionnez **Actions**, **Supprimer**.

1. Sélectionnez **Supprimer**.

**Pour supprimer le ou les CloudTrail parcours**

1. Ouvrez la [page Trails](https://console.aws.amazon.com/cloudtrail/home#/trails) de la CloudTrail console.

1. Sélectionnez le ou les journaux de suivi que vous avez créés.

1. Sélectionnez **Delete (Supprimer)**.

1. Sélectionnez **Supprimer**.