Tutoriel : Enregistrez les opérations au niveau des objets Amazon S3 à l'aide de EventBridge - Amazon EventBridge

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

Vous pouvez enregistrer les API opérations au niveau de l'objet sur vos compartiments Amazon S3. Avant qu'Amazon EventBridge puisse faire correspondre ces événements, vous AWS CloudTraildevez 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 Lambdafonction, puis créer une règle dans la EventBridge console qui invoque cette fonction en réponse à un événement de données S3.

Étape 1 : Configurez votre AWS CloudTrail parcours

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 suivi enregistre API les appels et les événements associés dans votre compte, puis envoie les fichiers journaux dans un 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 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/.

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

  3. Dans Trail name, tapez un nom pour le journal.

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

  5. Dans le AWS KMS champ alias, tapez un alias pour la KMS clé.

  6. Choisissez Suivant.

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

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

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

  10. Choisissez Suivant.

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

Étape 2 : Créer une fonction AWS Lambda

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

  2. Choisissez Créer une fonction.

  3. Choisissez Créer à partir de zéro.

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

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

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

  7. 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'); };
  8. Choisissez Deploy (Déployer).

Étape 3 : Création d'une règle

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

  2. Dans le volet de navigation, choisissez Règles.

  3. Choisissez Créer une règle.

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

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

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

  7. Choisissez Suivant.

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

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

    2. Pour le type d'événement, sélectionnez APIAppel au niveau de l'objet via CloudTrail dans la liste déroulante.

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

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

  10. Choisissez Suivant.

  11. Pour Types de cibles, choisissez service AWS .

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

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

  14. Choisissez Suivant.

  15. Choisissez Suivant.

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

Étape 4 : Test de la règle

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

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

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

  4. 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 dans le guide de AWS CloudTrail l'utilisateur.

Étape 5 : Confirmer la bonne exécution

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

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 de la EventBridge console.

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

  3. Sélectionnez Delete.

  4. Sélectionnez Delete.

Pour supprimer la ou les fonctions Lambda
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

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

  3. Sélectionnez Actions, Supprimer.

  4. Sélectionnez Supprimer.

Pour supprimer le ou les CloudTrail parcours
  1. Ouvrez la page Trails de la CloudTrail console.

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

  3. Sélectionnez Delete.

  4. Sélectionnez Supprimer.