Gestion des flux de travail et des événements Lambda - AWS Lambda

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.

Gestion des flux de travail et des événements Lambda

Lorsque vous créez des applications sans serveur avec Lambda, vous avez souvent besoin de moyens pour orchestrer l'exécution des fonctions et gérer les événements. AWS propose plusieurs approches pour coordonner les fonctions Lambda :

  • Fonctions durables Lambda pour une orchestration de flux de travail axée sur le code au sein de Lambda

  • AWS Step Functions pour une orchestration visuelle du flux de travail entre plusieurs services

  • Amazon EventBridge Scheduler et Amazon EventBridge pour les architectures et la planification axées sur les événements

Vous pouvez également intégrer ces approches ensemble. Par exemple, vous pouvez utiliser EventBridge Scheduler pour déclencher des fonctions durables ou des flux de travail Step Functions lorsque des événements spécifiques se produisent, ou configurer des flux de travail pour publier des événements sur EventBridge Scheduler à des points d'exécution définis. Les rubriques suivantes de cette section fournissent des informations supplémentaires sur la manière dont vous pouvez utiliser ces options d'orchestration.

Orchestration axée sur le code avec fonctions durables

Les fonctions Lambda durables offrent une approche d'orchestration des flux de travail axée sur le code, vous permettant de créer des flux de travail dynamiques et de longue durée directement dans vos fonctions Lambda. Contrairement aux services d'orchestration externes, les fonctions durables maintiennent la logique de votre flux de travail dans le code, ce qui facilite la mise à jour, le test et la maintenance parallèlement à votre logique métier.

Les fonctions durables sont idéales lorsque vous avez besoin de :

  • Définition du flux de travail axée sur le code : définissez les flux de travail à l'aide de langages de programmation familiers plutôt que de JSON ou de concepteurs visuels

  • Processus de longue durée : exécutez des flux de travail pouvant s'exécuter jusqu'à un an, bien au-delà de la limite de 15 minutes prévue par les fonctions Lambda standard

  • Développement simplifié : conservez la logique du flux de travail et la logique métier dans la même base de code pour faciliter la maintenance et les tests

  • Temps d'attente rentable : interrompez l'exécution pendant les états d'attente sans consommer de ressources informatiques

  • Gestion d'état intégrée : point de contrôle automatique et persistance de l'état sans configuration de stockage externe

Choisir entre les fonctions durables et les Step Functions

Les fonctions durables et les Step Functions fournissent toutes deux des capacités d'orchestration des flux de travail, mais elles répondent à différents cas d'utilisation :

Considération Fonctions durables Step Functions
Définition du flux de travail Le code d'abord (JavaScriptPython, Java) Amazon States Language ou concepteur visuel basé sur JSON
Approche de développement Base de code unique avec logique métier Définition du flux de travail et code de fonction distincts
Intégration de service Grâce au code de fonction Lambda et AWS SDKs Intégrations natives avec de nombreux services AWS
Durée d'exécution Jusqu'à 1 an Jusqu'à 1 an (Standard), 5 minutes (Express)
Traitement parallèle Promise.all () et modèles basés sur le code État parallèle et carte distribuée
Gestion des erreurs Blocs Try-catch et logique de nouvelle tentative personnalisée États de nouvelle tentative et de capture intégrés
Surveillance visuelle CloudWatch journaux et tableaux de bord personnalisés Graphique d'exécution visuel et historique détaillé
Idéal pour Flux de travail centrés sur le développeur, logique métier complexe, prototypage rapide Orchestration multiservice, flux de travail visuels, gouvernance d'entreprise

Utilisez des fonctions durables lorsque :

  • Votre équipe préfère les approches de développement axées sur le code

  • La logique du flux de travail est étroitement liée à la logique métier

  • Vous avez besoin d'un prototypage et d'une itération rapides

  • Vos flux de travail impliquent principalement des fonctions Lambda et de simples appels de service

Utilisez Step Functions lorsque :

  • Vous avez besoin d'une conception et d'un suivi visuels du flux de travail

  • Vos flux de travail orchestrent de manière approfondie plusieurs AWS services

  • Vous avez besoin de fonctionnalités de gouvernance et de conformité d'entreprise

  • Les parties prenantes non techniques doivent comprendre la logique du flux de travail

Pour plus d'informations sur les fonctions durables, consultez la section Fonctions durables pour Lambda.

Orchestration de flux de travail avec Step Functions

AWS Step Functions est un service d'orchestration de flux de travail qui vous aide à coordonner plusieurs fonctions Lambda et AWS d'autres services dans des flux de travail structurés. Ces flux de travail peuvent maintenir l’état, gérer les erreurs grâce à des mécanismes de nouvelle tentative sophistiqués et traiter les données à grande échelle.

Step Functions propose deux types de flux de travail pour répondre aux différents besoins d’orchestration :

Flux de travail standard

Idéal pour les flux de travail auditables de longue durée qui nécessitent une sémantique d’exécution unique. Les flux de travail standard peuvent s’exécuter pendant un an au maximum, fournissent un historique d’exécution détaillé et prennent en charge le débogage visuel. Ils conviennent aux processus comme l’exécution des commandes, les pipelines de traitement des données ou les tâches d’analytique en plusieurs étapes.

Flux de travail express

Conçu pour les charges high-event-rate de travail de courte durée avec sémantique at-least-once d'exécution. Les flux de travail express peuvent s’exécuter pendant jusqu’à cinq minutes et sont idéaux pour le traitement d’événements volumineux, les transformations de données de diffusion en continu ou les scénarios d’ingestion de données IoT. Ils offrent un débit plus élevé et un coût potentiellement inférieur par rapport aux flux de travail standard.

Note

Pour plus d’informations sur les types de flux de travail Step Functions, consultez Choix du type de flux de travail dans Step Functions.

Dans le cadre de ces flux de travail, Step Functions fournit deux types d’états Carte pour le traitement parallèle :

Inline Map

Traite les éléments d’un tableau JSON dans l’historique d’exécution du flux de travail parent. Inline Map prend en charge jusqu’à 40 itérations simultanées et convient aux petits jeux de données ou lorsque vous devez conserver tous les traitements dans une seule exécution. Pour plus d’informations, consultez Utilisation de l’état Map en mode Inline.

Plan distribué

Permet le traitement de charges de travail parallèles à grande échelle en itérant sur des jeux de données supérieurs à 256 Kio ou nécessitant plus de 40 itérations simultanées. Prenant en charge jusqu’à 10 000 exécutions parallèles de flux de travail enfants, Distributed Map excelle dans le traitement des données semi-structurées stockées dans Amazon S3, comme les fichiers JSON ou CSV, ce qui le rend idéal pour le traitement par lots et les opérations ETL. Pour plus d’informations, consultez Utilisation de l’état Map en mode Distributed.

En combinant ces types de flux de travail et les états Map, Step Functions fournit un ensemble d’outils flexible et puissant pour orchestrer des applications sans serveur complexes, qu’il s’agisse d’opérations à petite échelle ou de pipelines de traitement de données à grande échelle.

Pour commencer à utiliser Lambda avec Step Functions, consultez Orchestration de fonctions Lambda avec Step Functions.

Gestion des événements avec EventBridge et EventBridge planificateur

Amazon EventBridge est un service de bus d'événements qui vous aide à créer des architectures axées sur les événements. Il achemine les événements entre les AWS services, les applications intégrées et les applications SaaS (Software as a Service). EventBridge Le planificateur est un planificateur sans serveur qui vous permet de créer, d'exécuter et de gérer des tâches à partir d'un service central, en vous permettant d'invoquer des fonctions Lambda selon un calendrier à l'aide d'expressions cron et rate, ou de configurer des appels ponctuels.

Amazon EventBridge et EventBridge Scheduler vous aident à créer des architectures axées sur les événements avec Lambda. EventBridge achemine les événements entre les AWS services, les applications intégrées et les applications SaaS, tandis que EventBridge Scheduler fournit des fonctionnalités de planification spécifiques pour appeler les fonctions Lambda de manière récurrente ou ponctuelle.

Ces services fournissent plusieurs fonctionnalités clés pour travailler avec les fonctions Lambda :

  • Créez des règles qui font correspondre les événements aux fonctions Lambda et les acheminent vers ces fonctions à l'aide de EventBridge

  • Configurez des invocations de fonctions récurrentes à l'aide d'expressions cron et rate avec Scheduler EventBridge

  • Configurer des invocations de fonction ponctuelles à des dates et heures spécifiques

  • Définissez des fenêtres horaires flexibles et des politiques de nouvelle tentative pour les invocations planifiées

Pour de plus amples informations, veuillez consulter Invocation d’une fonction Lambda dans une planification.