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.
Abonnement d'une fonction Lambda aux notifications d'événements provenant de compartiments S3 dans différentes régions AWS
Créée par Suresh Konathala, Andrew Preston et Arindom Sarkar
Récapitulatif
Les notifications d'événements Amazon Simple Storage Service (Amazon S3) publient des notifications pour certains événements de votre compartiment S3 (par exemple, les événements créés, les événements de suppression d'objets ou les événements de restauration d'objets). Vous pouvez utiliser une fonction AWS Lambda pour traiter ces notifications conformément aux exigences de votre application. Cependant, la fonction Lambda ne peut pas s'abonner directement aux notifications provenant de compartiments S3 hébergés dans différentes régions AWS.
L'approche de ce modèle déploie un scénario de fanout pour traiter les notifications Amazon S3 provenant de compartiments S3 interrégionaux en utilisant une rubrique Amazon Simple Notification Service (Amazon SNS) pour chaque région. Ces rubriques SNS régionales envoient les notifications d'événements Amazon S3 à une file d'attente Amazon Simple Queue Service (Amazon SQS) située dans une région centrale qui contient également votre fonction Lambda. La fonction Lambda s'abonne à cette file d'attente SQS et traite les notifications d'événements conformément aux exigences de votre organisation.
Conditions préalables et limitations
Prérequis
Un compte AWS actif.
Des compartiments S3 existants dans plusieurs régions, y compris une région centrale pour héberger la file d'attente Amazon SQS et la fonction Lambda.
Interface de ligne de commande AWS (AWS CLI), installée et configurée. Pour plus d'informations à ce sujet, consultez la section Installation, mise à jour et désinstallation de l'interface de ligne de commande AWS dans la documentation de l'interface de ligne de commande AWS.
Connaissance du scénario de fanout dans Amazon SNS. Pour plus d'informations à ce sujet, consultez les scénarios Amazon SNS courants dans la documentation Amazon SNS.
Architecture
Le schéma suivant montre l'architecture de l'approche de ce modèle.

Le schéma suivant illustre le flux de travail suivant :
Amazon S3 envoie des notifications d'événements concernant les compartiments S3 (par exemple, un objet créé, un objet supprimé ou un objet restauré) à une rubrique SNS de la même région.
La rubrique SNS publie l'événement dans une file d'attente SQS de la région centrale.
La file d'attente SQS est configurée comme source d'événements pour votre fonction Lambda et met en mémoire tampon les messages d'événement de la fonction Lambda.
La fonction Lambda interroge la file d'attente SQS à la recherche de messages et traite les notifications d'événements Amazon S3 conformément aux exigences de votre application.
Pile technologique
Lambda
Amazon SNS
Amazon SQS
Amazon S3
Outils
AWS CLI — L'interface de ligne de commande AWS (AWS CLI) est un outil open source permettant d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande. Avec une configuration minimale, vous pouvez exécuter des commandes de l'interface de ligne de commande AWS qui mettent en œuvre des fonctionnalités équivalentes à celles fournies par la console de gestion AWS basée sur un navigateur à partir d'une invite de commande.
AWS CloudFormation — AWS vous CloudFormation aide à modéliser et à configurer vos ressources AWS, à les approvisionner rapidement et de manière cohérente, et à les gérer tout au long de leur cycle de vie. Vous pouvez utiliser un modèle pour décrire vos ressources et leurs dépendances, puis les lancer et les configurer ensemble sous forme de pile, au lieu de gérer les ressources individuellement. Vous pouvez gérer et approvisionner des piles sur plusieurs comptes AWS et régions AWS.
AWS Lambda — AWS Lambda est un service de calcul qui prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. Vous payez uniquement le temps de calcul que vous utilisez. Vous n'exposez aucuns frais quand votre code n'est pas exécuté.
Amazon SNS — Amazon Simple Notification Service (Amazon SNS) coordonne et gère la distribution ou l'envoi de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail. Les abonnés reçoivent tous les messages publiés dans les rubriques auxquelles ils sont abonnés, et tous les abonnés à une rubrique reçoivent les mêmes messages.
Amazon SQS — Amazon Simple Queue Service (Amazon SQS) propose une file d'attente hébergée sécurisée, durable et disponible qui vous permet d'intégrer et de dissocier les systèmes et composants logiciels distribués. Amazon SQS prend en charge les files d'attente standard et FIFO.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Créez une file d'attente SQS avec un déclencheur Lambda. | Connectez-vous à l'AWS Management Console et suivez les instructions du didacticiel Using Lambda with Amazon SQS de la documentation AWS Lambda pour créer les ressources suivantes dans votre région centrale :
NoteAssurez-vous de configurer la file d'attente SQS comme source d'événements pour votre fonction Lambda. | AWS DevOps, architecte du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Créez une rubrique SNS pour recevoir des notifications d'événements Amazon S3. | Créez une rubrique SNS dans une région à partir de laquelle vous souhaitez recevoir des notifications d'événements Amazon S3. Pour plus d'informations à ce sujet, consultez la rubrique Création d'un réseau SNS dans la documentation Amazon SNS. ImportantAssurez-vous d'enregistrer le nom de ressource Amazon (ARN) de votre rubrique SNS. | AWS DevOps, architecte du cloud |
Abonnez la rubrique SNS à la file d'attente SQS centrale. | Abonnez votre rubrique SNS à la file d'attente SQS hébergée par votre région centrale. Pour plus d'informations à ce sujet, consultez la section Abonnement à une rubrique SNS dans la documentation Amazon SNS. | AWS DevOps, architecte du cloud |
Mettez à jour la politique d'accès de la rubrique SNS. |
| AWS DevOps, architecte du cloud |
Configurez des notifications pour chaque compartiment S3 de la région. | Configurez des notifications d'événements pour chaque compartiment S3 de la région. Pour plus d'informations à ce sujet, consultez la section Activation et configuration des notifications d'événements à l'aide de la console Amazon S3 dans la documentation Amazon S3. NoteDans la section Destination, choisissez le sujet SNS et spécifiez l'ARN du sujet SNS que vous avez créé précédemment. | AWS DevOps, architecte du cloud |
Répétez cette épopée pour toutes les régions requises. | ImportantRépétez les tâches de cette épopée pour chaque région dont vous souhaitez recevoir des notifications d'événements Amazon S3, y compris votre région centrale. | AWS DevOps, architecte du cloud |
Ressources connexes
Configuration d'une politique d'accès (documentation Amazon SQS)
Configuration d'une file d'attente SQS en tant que source d'événements (documentation AWS Lambda)
Configuration d'une file d'attente SQS pour lancer une fonction Lambda (documentation Amazon SQS)
AWS::Lambda::Function ressource ( CloudFormation documentation AWS)