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.
AWSEnchaînez les services en utilisant une approche sans serveur
Créée par Aniket Braganza () AWS
Environnement : Production | Technologies : sans serveur ; ; CloudNative DevelopmentAndTesting ; Modernisation DevOps ; Infrastructure | AWSservices : Amazon S3 ; Amazon ; Amazon SNS SQS ; AWS Lambda |
Récapitulatif
Ce modèle illustre une approche évolutive et sans serveur pour traiter un fichier chargé en enchaînant Amazon Simple Storage Service (Amazon S3), Amazon Simple Notification Service (Amazon), Amazon Simple Queue Service (Amazon SNSSQS) et Lambda. AWS 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 la combinaison de AWS services 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 AWS services 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 et SNS Amazon. SQS Cependant, 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 AWS compte actif
Accès programmatique au AWS compte. Pour plus d’informations, consultez :
Conditions requises dans la documentation du AWS Cloud Development Kit (AWSCDK)
Conditions requises dans la documentation de l'interface de ligne de AWS commande (AWSCLI)
AWSCDK, installé
Versions du produit
AWSCDK2. x
Python 3.9
Architecture
Le schéma suivant montre comment les AWS services chaînés peuvent permettre à un utilisateur de télécharger un fichier dans un compartiment S3 pour le traiter.
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 dans une SNS rubrique. Le message contient les détails de l'événement S3.
Le message publié dans le SNS sujet est inséré dans une SQS file d'attente, qui est abonnée et reçoit des notifications pour ce sujet.
Une fonction Lambda interroge la SQS file d'attente (en tant que source d'événements) et attend le traitement des messages.
Lorsque la fonction Lambda reçoit des messages de la SQS file d'attente, elle les traite et accuse réception de ces messages.
Si un message n'est pas traité par Lambda, il est renvoyé dans la SQS file d'attente et est finalement transféré dans une file d'attente de lettres SQSmortes.
Pile technologique
Amazon S3
Amazon SNS
Amazon SQS
AWSLambda
Outils
AWSservices
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 (AmazonSNS) 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 (AmazonSQS) fournit une file d'attente hébergée sécurisée, durable et disponible qui vous aide à intégrer et à dissocier les systèmes et composants logiciels distribués.
AWSLambda est un service de calcul qui vous permet d'exécuter du code sans avoir à approvisionner 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
AWSCloud Development Kit (AWSCDK) est le principal outil permettant d'interagir avec votre AWS CDK application. Il exécute votre application, interroge le modèle d'application que vous avez défini, produit et déploie les AWS CloudFormation modèles générés par le. AWS CDK
AWSL'interface de ligne de commande (AWSCLI) est un outil open source qui vous permet d'interagir avec les AWS services par le biais de commandes dans votre interface 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 to SNS 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 AWS documentation pour amorcer l'environnement à AWS CDK déployer dans chaque AWS région 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 |