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.
Enchaînez les services AWS en utilisant une approche sans serveur
Créée par Aniket Braganza (AWS)
Environnement : Production | Technologies : sans serveur ; ; CloudNative DevelopmentAndTesting ; Modernisation DevOps ; Infrastructure | Services AWS : Amazon S3 ; Amazon SNS ; Amazon SQS ; AWS Lambda |
Récapitulatif
Ce modèle illustre une approche évolutive et sans serveur pour traiter un fichier importé en enchaînant Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon SNS), Amazon Simple Queue Service (Amazon SQS) et AWS Lambda. L'exemple de fichier téléchargé est destiné à des fins de démonstration. Vous pouvez utiliser une approche sans serveur pour effectuer d'autres tâches en enchaînant les différents services AWS nécessaires pour atteindre vos objectifs commerciaux. L'approche sans serveur utilise un flux de travail asynchrone qui repose sur des notifications pilotées par des événements, un stockage résilient et une fonction en tant que service (FaaS) pour traiter les demandes. Vous pouvez utiliser l'approche sans serveur pour évoluer afin de répondre à la demande tout en minimisant les coûts.
Remarque : Il existe plusieurs options pour enchaîner les services AWS par le biais d'une approche sans serveur. Par exemple, vous pouvez utiliser une approche qui combine Lambda avec Amazon S3 au lieu d'Amazon SNS et Amazon SQS. Toutefois, ce modèle utilise Amazon SNS et Amazon SQS, car cette approche permet d'ajouter plusieurs points d'intégration dans le processus d'invocation Lambda lors d'une notification d'événement et d'étendre l'implémentation pour inclure plusieurs écouteurs dans une orchestration sans serveur tout en minimisant la charge de traitement.
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Accès programmatique au compte AWS. Pour plus d’informations, consultez :
Conditions requises dans la documentation du kit de développement du cloud AWS (AWS CDK)
Conditions requises dans la documentation de l'interface de ligne de commande AWS (AWS CLI)
CLI AWS, installée et configurée
Versions du produit
Kit de développement logiciel AWS 2.x
Python 3.9
Architecture
Le schéma suivant montre comment les services AWS enchaînés peuvent permettre à un utilisateur de télécharger un fichier dans un compartiment S3 pour le traiter.
![Flux de travail permettant de télécharger un fichier dans un compartiment S3 à l'aide des services AWS enchaînés.](images/pattern-img/8b298cfc-509a-4502-97b2-f1af09914b99/images/f3ca9202-96eb-40cf-85cd-4bb569fcd083.png)
Le schéma suivant illustre le flux de travail suivant :
Un utilisateur télécharge un fichier dans le compartiment S3.
Le téléchargement déclenche un événement S3 qui publie un message sur une rubrique SNS. Le message contient les détails de l'événement S3.
Le message publié dans la rubrique SNS est inséré dans une file d'attente SQS, qui est abonnée et reçoit des notifications pour cette rubrique.
Une fonction Lambda interroge la file d'attente SQS (en tant que source d'événements) et attend le traitement des messages.
Lorsque la fonction Lambda reçoit des messages de la file d'attente SQS, elle les traite et accuse réception de ces messages.
Si un message n'est pas traité par Lambda, il est renvoyé dans la file d'attente SQS et est finalement transféré dans une file d'attente de lettres mortes SQS.
Pile technologique
Amazon S3
Amazon SNS
Amazon SQS
AWS Lambda
Outils
Services AWS
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
Amazon Simple Notification Service (Amazon SNS) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
Amazon Simple Queue Service (Amazon SQS) fournit 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.
AWS Lambda est un service de calcul qui vous permet d'exécuter du code sans avoir à provisionner ou à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
Autres outils
AWS Cloud Development Kit (AWS CDK) est le principal outil permettant d'interagir avec votre application AWS CDK. Il exécute votre application, interroge le modèle d'application que vous avez défini, produit et déploie les CloudFormation modèles AWS générés par le CDK AWS.
L'interface de ligne de commande AWS (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.
Python
est un langage de programmation de haut niveau interprété à usage général.
Code
Le code de ce modèle est disponible dans le référentiel GitHub Chaining S3 to SNS to SQS to Lambda
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Pour cloner le référentiel. | Clonez le référentiel | Développeur d'applications |
Configurez un environnement virtuel. |
| Développeur d'applications |
Installez les dépendances. | Exécutez la commande | Développeur d'applications |
Tâche | Description | Compétences requises |
---|---|---|
Exécutez des tests unitaires. |
| Développeur d'applications, ingénieur de test |
Tâche | Description | Compétences requises |
---|---|---|
Configurez l'environnement bootstrap. | Suivez les instructions de la section Bootstrapping de la documentation AWS pour démarrer l'environnement de déploiement d'AWS CDK dans chaque région AWS où la CloudFormation pile sera déployée. Remarque : Cette étape nécessite que vous disposiez d'informations d'identification avec accès par programmation. | Développeur d'applications, DevOps ingénieur, ingénieur de données |
Déployez la CloudFormation pile. | Exécutez la | Développeur d'applications, DevOps ingénieur, AWS DevOps |
Tâche | Description | Compétences requises |
---|---|---|
Supprimez la CloudFormation pile et supprimez les ressources associées. | Pour supprimer la CloudFormation pile créée et supprimer toutes les ressources associées, exécutez la commande | Développeur d'applications |