Accéder au contenu principal

Amazon EventBridge : Guide sur l'architecture orientée événements

Ce guide vous explique comment utiliser Amazon EventBridge pour créer des applications évolutives et basées sur des événements, à l'aide d'exemples pratiques, d'étapes de configuration et de bonnes pratiques.
Actualisé 7 juil. 2025  · 11 min de lecture

Amazon EventBridge est un service de bus d'événements sans serveur puissant qui permet aux développeurs de créer des architectures orientées événements avec une charge opérationnelle minimale. 

Dans le cadre de mon travail avec les systèmes cloud natifs, j'ai pu constater à quel point la réactivité en temps réel et le découplage des services sont essentiels pour créer des applications évolutives et faciles à maintenir, et c'est exactement ce qu'offre EventBridge.

Qu'est-ce qu'Amazon EventBridge ?

Avant de vous lancer dans la configuration, il est important de comprendre ce qu'est EventBridge, pourquoi il est important et comment il s'intègre dans l'écosystème plus large d'outils événementiels d'AWS.

Présentation d'Amazon EventBridge

Amazon EventBridgeest un service de bus d'événements entièrement géré et sans serveur qui permet aux applications de communiquer via des événements en temps quasi réel.

Il simplifie le routage des événements entre les producteurs d'événements (sources de changement, comme S3, DynamoDB ou des applications personnalisées) et les consommateurs d'événements (services qui agissent sur ces changements, comme Lambda, Step Functions ou SNS).

Image contenant un diagramme visuel des événements de routage Amazon EventBridge depuis les producteurs vers plusieurs cibles.

Image contenant un diagramme visuel des événements de routage Amazon EventBridge depuis les producteurs vers plusieurs cibles. Source : Blogs AWS

EventBridge a été conçu dans un souci de flexibilité et d'évolutivité. 

Il s'adapte automatiquement pour traiter des millions d'événements par seconde et permet une logique de routage complexe grâce à des règles basées sur JSON.

Voici quelques-unes de ses principales fonctionnalités :

  • Intégration native avec plus de 90 services AWS (par exemple, EC2, CodePipeline, CloudTrail)
  • Prise en charge des sources d'événements SaaS externes, telles que Zendesk, Shopify et Datadog.
  • Découverte et registre de schémas intégrés, qui détectent et documentent automatiquement les structures d'événements.
  • Archivage et relecture des événements, pour faciliter le débogage, l'audit ou le retraitement d'événements passés.

Cela fait d'EventBridge un outil fondamental pour la création d'architectures cloud découplées et résilientes.

EventBridge et l'architecture orientée événements

EventBridge est basé sur le modèle d'architecture orientée événements (EDA).

Dans l'EDA, les services communiquent en émettant et en réagissant à des événements, plutôt qu'en s'appelant de manière synchrone.

Par exemple, au lieu qu'un service appelle l'API d'un autre service pour démarrer une tâche, il émet simplement un événement tel que « ImageUploaded », et les autres services à l'écoute de cet événement réagissent en conséquence.

L'image ci-dessous illustre cette configuration, dans laquelle Amazon API Gateway sert de point d'entrée sécurisé vers le bus d'événements central EventBridge.

Image illustrant Amazon API Gateway en tant que point d'entrée sécurisé vers le bus EventBridge central.

Image illustrant Amazon API Gateway en tant que point d'entrée sécurisé vers le bus EventBridge central. Source : Blogs AWS

Avantages de l'architecture orientée événements :

Image illustrant les avantages de l'architecture orientée événements.

Image illustrant les avantages de l'architecture orientée événements.

  • Couplage lâche : Les services sont indépendants et ignorent l'existence les uns des autres.
  • Évolutivité : Les systèmes peuvent faire évoluer les composants individuels de manière indépendante.
  • Tolérance aux pannes : Les défaillances d'une partie du système n'ont pas d'effet en cascade sur les autres parties.
  • Traitement asynchrone : Améliore la réactivité et les performances du système.

EventBridge constitue l'épine dorsale de l'EDA sur AWS, vous permettant de connecter des microservices, des ressources cloud et même des systèmes tiers sans les coupler étroitement.

> Si vous souhaitez acquérir une solide compréhension de l'écosystème événementiel d'AWS, veuillez explorer le cours AWS Cloud Technology and Services.

En quoi EventBridge diffère-t-il des autres options basées sur les événements ?

AWS propose plusieurs outils pour la gestion des événements et des messages, mais EventBridge offre des fonctionnalités uniques qui le distinguent des alternatives telles que SNS et SQS.

SNS (Service de notification simple) 

SNS est idéal pour la messagerie pub/sub simple.

Vous pouvez publier un message sur un sujet et le transmettre à plusieurs abonnés, par exemple par e-mail, SMS ou Lambda. 

Cependant, il manque de fonctionnalités avancées de routage et de filtrage des événements.

SQS (Service de file d'attente simple)

SQS fournit une file d'attente fiable et évolutive pour le stockage et le traitement des messages. 

Les consommateurs interrogent la file d'attente pour obtenir des messages, ce qui est utile pour les systèmes asynchrones et découplés, mais ne prend pas en charge le routage en temps réel basé sur la technologie push.

EventBridge

EventBridge combine le meilleur des deux mondes : routage en temps réel, filtrage avancé, validation de schémas et intégration SaaS. 

Il est conçu pour les systèmes complexes, à grande échelle et événementiels qui nécessitent des règles flexibles, des cibles multiples et une intégration transparente entre les services.

Événements CloudWatch

CloudWatch Events était le précurseur d'EventBridge. 

EventBridge est son remplaçant de nouvelle génération, qui ajoute :

  • Intégration des partenaires SaaS
  • Autocars événementiels personnalisés
  • Découverte et registre de schémas
  • Amélioration de la gestion des règles et des autorisations

Si vous utilisez toujours CloudWatch Events, envisagez de migrer vers EventBridge pour bénéficier de fonctionnalités plus avancées.

Voici une comparaison rapide des différents services évoqués :

Caractéristique

SNS

SQS

EventBridge

Modèle de livraison

Push (pub/sub)

Sondage (file d'attente)

Push (avec routage basé sur des règles)

Filtrage des événements

Basique (attributs du message)

Aucun

Avancé (correspondance de modèles JSON)

Prise en charge du fan-out

Oui

Non

Oui

Prise en charge des schémas

Non

Non

Oui (registre de schémas)

Intégration avec SaaS

Limité

Limité

Oui (intégrations SaaS natives)

Rediffusion de l'événement

Non

Avec conservation

Oui

File d'attente des messages non distribués (DLQ)

Oui

Oui

Oui

Composants principaux et fonctionnalités clés d'Amazon EventBridge

Pour utiliser Amazon EventBridge de manière efficace, il est essentiel de comprendre ses composants fondamentaux. 

Ces composants fonctionnent ensemble pour permettre des flux de travail dynamiques et basés sur les événements, avec une infrastructure minimale. 

Vous trouverez ci-dessous une description détaillée de chaque composant, de son fonctionnement et de son utilisation.

Autocars pour événements

Au cœur d'EventBridge se trouve le bus d'événements, qui sert de canal par lequel transitent tous les événements. 

Un bus d'événements reçoit des événements provenant des services AWS, d'applications personnalisées ou de fournisseurs SaaS, puis les achemine vers les destinataires appropriés en fonction de règles de correspondance.

L'image ci-dessous présente la section Bus EventBridge dans la console AWS.

Image contenant une capture d'écran de la console AWS affichant la section Bus EventBridge.

Image contenant une capture d'écran de la console AWS affichant la section Bus EventBridge.

Types d'autocars pour événements

Voici les types de bus événementiels disponibles dans AWS :

Bus d'événements par défaut :

  • Fourni automatiquement dans chaque compte AWS.
  • Principalement utilisé pour recevoir des événements provenant des services AWS (tels que les changements d'état EC2 ou les événements S3).
  • Vous pouvez également envoyer vos propres événements personnalisés au bus par défaut si aucun autre bus n'est requis.

Autobus pour événements personnalisés :

  • Créé par vous pour prendre en charge différents domaines, services ou charges de travail.
  • Idéal pour isoler les événements liés aux applications ou séparer les environnements de développement et de production.
  • Contrôlez plus précisément les politiques d'accès et le routage des événements.

Exemple de cas d'utilisation :

Créez des bus d'événements distincts pour différents domaines, par exemple un pour les opérations de commerce électronique et un autre pour l'analyse, afin de garder les flux d'événements isolés et gérables.

Création d'un bus d'événements personnalisé :

aws events create-event-bus --name my-app-bus

Comprendre les règles et les objectifs

Les règles définissent quels événements doivent être acheminés vers quelles cibles. 

Ils utilisent la correspondance de modèles JSON pour filtrer les événements entrants sur le bus et les transmettre à une ou plusieurs cibles.

Principaux aspects des règles :

  • Vous pouvez filtrer sur n'importe quel attribut d'événement, tel que la source, l' detail-type ou les champs d' detail imbriqués.
  • Plusieurs règles peuvent correspondre au même événement, ce qui permet un comportement en éventail.
  • Une seule règle peut avoir plusieurs cibles, ce qui permet à un événement de déclencher des pipelines de traitement parallèles.

Les cibles prises en charge comprennent :

  • AWS Lambda
  • Fonctions par étapes
  • Flux de données Kinesis
  • SNS, SQS
  • Tâches ECS
  • Passerelle API

Image contenant les icônes des services AWS pour les cibles prises en charge.

Image contenant les icônes des services AWS pour les cibles prises en charge.

L'exemple suivant montre comment définir une règle d'événement et la lier à une fonction Lambda en tant que cible :

aws events put-rule \
  --name "ImageUploadRule" \
  --event-pattern file://event-pattern.json \
  --event-bus-name my-app-bus

aws events put-targets \
  --rule "ImageUploadRule" \
  --targets "Id"="1","Arn"="arn:aws:lambda:region:account-id:function:ImageProcessor"

Exemple de modèle d'événement (event-pattern.json) :

{
  "source": ["myapplication.upload"],
  "detail-type": ["Image Uploaded"]
}

Tuyaux

Les pipes EventBridge simplifient la connexion entre les sources (telles que DynamoDB Streams) et les destinations (telles que SQS ou Lambda) sans nécessiter de code personnalisé.

L'image ci-dessous présente la section EventBridge Pipes dans la console AWS.

Image contenant une capture d'écran de la console AWS affichant la section EventBridge Pipes.

Image contenant une capture d'écran de la console AWS affichant la section EventBridge Pipes.

Principales caractéristiques de Pipes :

  • Filtrage : Utilisez des modèles d'événements pour limiter les événements qui transitent par le canal.
  • Enrichissement : Ajoutez du contexte en appelant une fonction Lambda afin d'enrichir l'événement avant sa livraison.
  • Transformation : Convertissez la forme de l'événement à l'aide de transformateurs d'entrée.

Quand utiliser les pipes :

  • Connecter des flux de données (par exemple, Kinesis ou DynamoDB) aux consommateurs en aval.
  • Intégration des services AWS à différents formats d'événements.

Planificateur

EventBridge Scheduler permet l'exécution de tâches planifiées, ce qui est idéal pour automatiser des opérations telles que les sauvegardes quotidiennes, les synchronisations de données toutes les heures ou le déclenchement de workflows selon un calendrier défini.

L'image ci-dessous présente la section EventBridge Scheduler dans la console AWS.

Image contenant une capture d'écran de la console AWS affichant la section EventBridge Scheduler.

Image contenant une capture d'écran de la console AWS affichant la section EventBridge Scheduler.

Les principales caractéristiques sont les suivantes :

  • Exécutions uniques ou récurrentes
  • Prise en charge des expressions cron ou des expressions basées sur la fréquence
  • Contrôle des fuseaux horaires, des fenêtres de début/fin et de la logique de réessai

Créer un événement planifié :

aws scheduler create-schedule \
  --name "DailyETLJob" \
  --schedule-expression "rate(1 day)" \
  --flexible-time-window '{"Mode":"OFF"}' \
  --target '{"Arn":"arn:aws:lambda:region:account-id:function:RunETL", "RoleArn":"arn:aws:iam::account-id:role/SchedulerExecutionRole"}'

Ce calendrier invoque la fonction Lambda RunETL tous les jours.

Registre de schémas et relectures d'événements

Schema Registry aide les développeurs à comprendre et à documenter la structure des événements. 

Il détecte automatiquement les schémas des services AWS et des applications personnalisées, puis les stocke dans un registre.

Les avantages du registre de schémas sont les suivants :

  • Génération de liaisons de code fortement typées en Java, Python et TypeScript.
  • Amélioration de la cohérence et réduction des erreurs d'analyse dans les applications événementielles.

La fonction Replay des événements vous permet d'archiver les événements sur le bus et de les rejouer ultérieurement. 

Ceci est utile pour :

  • Débogage des workflows ayant échoué
  • Rejouer des événements après la correction d'un bug
  • Récupération de données perdues ou dont le traitement a été retardé

Image contenant un diagramme conceptuel illustrant le routage des événements EventBridge.

Image contenant un diagramme conceptuel illustrant les événements de routage EventBridge.. Source : Blogs AWS

Activer l'archivage des événements :

aws events create-archive \
  --archive-name "MyApplicationArchive" \
  --event-source-arn "arn:aws:events:region:account-id:event-bus/my-application-bus" \
  --retention-days 7

Revoir les événements archivés :

aws events start-replay \
  --replay-name "MyReplay" \
  --source-arn "arn:aws:events:region:account-id:archive/MyApplicationArchive" \
  --destination "arn:aws:events:region:account-id:event-bus/my-application-bus"

Ces composants, à savoir les bus d'événements, les règles, les pipes, le planificateur et le registre de schémas, forment ensemble une plateforme complète et flexible permettant de créer et de gérer des architectures robustes basées sur les événements sur AWS. 

Chacun joue un rôle unique dans la dissociation des services, l'amélioration de l'évolutivité et l'accélération du développement des applications.

Développement d'applications événementielles avec EventBridge

Une fois la configuration de base effectuée, il est temps d'appliquer Amazon EventBridge dans des workflows d'application réels. 

Configurer EventBridge dans votre application

Voici comment émettre des événements personnalisés depuis votre application à l'aide de l'interface CLI AWS :

aws events put-events --entries '[
  {
    "Source": "myapplication.media",
    "DetailType": "ImageUploaded",
    "Detail": "{\"bucket\": \"my-bucket-name\", \"key\": \"image.jpg\"}",
    "EventBusName": "default"
  }
]'

Explication :

  • Source: Nom ou domaine du service émetteur.
  • DetailType: Le type d'événement émis.
  • Detail: La charge utile, encodée sous forme de chaîne JSON.
  • EventBusName: Le bus qui accueillera et acheminera les participants à l'événement.

Vous pouvez intégrer cette logique directement dans vos fonctions Lambda, vos services backend ou vos charges de travail conteneurisées à l'aide de SDK (par exemple, Boto3, AWS SDK pour JavaScript).

Routage des événements entre les services AWS

Le routage des événements entre les services AWS permet des intégrations transparentes, telles que le déclenchement de fonctions Lambda à partir d'actions S3 via EventBridge.

Exemple de scénario : Connectez Amazon S3 à une fonction Lambda via EventBridge.

Étape 01 : Veuillez créer un compartiment S3 et télécharger un objet.

Étape 02 : Activez les notifications d'événements S3 via EventBridge :

  • Accédez au compartiment S3.
  • Activez l'option « EventBridge » sous Notifications d'événements.

Étape 03 : Créez une règle EventBridge correspondant au modèle d'événement :

{
  "source": ["aws.s3"],
  "detail-type": ["Object Created"],
  "detail": {
    "bucket": {
      "name": ["my-bucket"]
    }
  }
}

Étape 04 : Veuillez associer une fonction Lambda comme cible de la règle afin de traiter l'objet téléchargé.

Ce modèle vous permet d'étendre le traitement ultérieurement en ajoutant d'autres cibles telles que Step Functions ou SNS pour les notifications.

Exemple pratique : Flux de travail pour le téléchargement et le redimensionnement des images

Nous pouvons examiner un pipeline événementiel type :

01 : L'utilisateur télécharge une image sur S3.

02 : S3 émet un événement vers le bus EventBridge par défaut.

03 : EventBridge associe une règle pour l' s3:ObjectCreated:* et la redirige vers une fonction Lambda.

04 : Lambda redimensionne l'image, l'enregistre dans un autrecompartiment S3 d' , puis consigne la sortie.

Ce modèle est efficace pour les raisons suivantes :

  • Il est évolutif (c'est-à-dire qu'il peut traiter des milliers d'événements par seconde).
  • Il est modulaire (c'est-à-dire que vous pouvez remplacer la fonction de redimensionnement d'image sans toucher aux autres composants).
  • Il permet le parallélisme (c'est-à-dire que vous pouvez envoyer simultanément le même événement vers des pipelines d'analyse ou de notification).

Ajout de règles pour l'évolutivité et la flexibilité

Vous pouvez facilement répartir les événements en associant plusieurs cibles à une seule règle :

aws events put-targets --rule image-uploaded \
  --targets '[
    {"Id": "resizeLambda", "Arn": "arn:aws:lambda:region:account-id:function:ResizeImage"},
    {"Id": "notifySNS", "Arn": "arn:aws:sns:region:account-id:ImageUploadedTopic"}
]'

Cela permet à votre application de traiter l'événement, d'avertir les utilisateurs et de mettre à jour les journaux, le tout en parallèle, sans coupler ces tâches entre elles.

Optimisation des performances et garantie de la sécurité

Optimisez les performances et la sécurité en concevant des modèles d'événements précis qui minimisent le traitement inutile et réduisent les risques.

Concevoir des modèles d'événements efficaces

Évitez les modèles généraux ou fourre-tout qui déclenchent des exécutions inutiles. Au lieu de cela, filtrez les événements avec précision :

{
  "source": ["myapplication.service"],
  "detail-type": ["ImageUploaded"],
  "detail": {
    "bucket": ["media-uploads"]
  }
}

Cela permet de réduire les coûts, d'améliorer la latence et de garantir que seuls les événements pertinents sont traités.

Mettre en œuvre des contrôles de sécurité robustes

La sécurité est essentielle dans toute architecture sans serveur. Veuillez suivre ces directives :

  • Utilisez le principe du moindre privilège IAM : N'accordez que les autorisations nécessaires pour publier ou consommer des événements.
  • Activer le chiffrement : EventBridge prend en charge le chiffrement au repos à l'aide d'AWS KMS.
  • Mettre en place des DLQ (files d'attente des messages non remis) pour les livraisons ayant échoué :
"DeadLetterConfig": {
  "Arn": "arn:aws:sqs:region:account-id:my-dlq"
}

Les DLQ enregistrent les événements non livrables, ce qui vous permet de les diagnostiquer et de les retraiter ultérieurement.

> Si vous souhaitez approfondir vos connaissances en matière de sécurisation des applications cloud et de gestion des autorisations AWS, veuillez consulter le cours AWS Security and Cost Management.consultez le cours AWS Security and Cost Management.

Gestion des coûts et des quotas de service

Afin de gérer efficacement les coûts et les performances, il est important de bien comprendre le modèle tarifaire d'EventBridge et de surveiller régulièrement les quotas de service.

Comprendre la structure tarifaire

Vous êtes facturé par :

  • Événement publié (en dollars par million d'événements)
  • Événement rejoué
  • Utilisation des tuyaux
  • Tâches planifiées

Le niveau gratuit comprend 100 000 événements par mois, ce qui est généreux pour la plupart des cas d'utilisation liés au développement et à la petite production.

Surveillance et ajustement des quotas de service

Suivez et demandez des augmentations en utilisant :

aws service-quotas list-service-quotas --service-code events

Principaux quotas à surveiller :

  • Règles par bus d'événements
  • Cibles par règle
  • Invocations par seconde

Une mise à l'échelle responsable de votre utilisation garantit la fiabilité de votre système à mesure que la charge augmente.

Configurations avancées et alternatives d'EventBridge

Pour les architectures événementielles plus complexes, il est recommandé d'envisager les fonctionnalités avancées d'EventBridge et d'autres modèles afin d'améliorer le contrôle, la sécurité et la flexibilité de la planification.

Répartition des événements entre comptes

Activez le partage sécurisé des événements entre les comptes AWS :

{
  "Statement": [{
    "Effect": "Allow",
    "Principal": {"AWS": "arn:aws:iam::123456789012:root"},
    "Action": "events:PutEvents",
    "Resource": "arn:aws:events:region:account-id:event-bus/shared-bus"
  }]
}

Veuillez utiliser AWS CloudTrail pour auditer l'utilisation et garantir la conformité.

Fonctionnalités avancées du planificateur EventBridge

Allez au-delà de la planification de base avec :

  • Stratégies de réessai flexibles
  • Respect des délais
  • Prise en charge des expressions cron ou rate()

Exemple d'expression cron :

Déclencher un workflow tous les lundis à 9 h :

--schedule-expression "cron(0 9 ? * MON *)"

Quand envisager des alternatives ?

En fonction de vos besoins, vous pouvez envisager d'autres services AWS mieux adaptés à des cas d'utilisation spécifiques. 

Voici quelques exemples :

Cas d'utilisation

Alternative

FIFO ou ordre strict

Amazon SQS FIFO

Débit élevé et faible latence

Amazon MSK (Kafka)

Orchestration complexe

Fonctions par étapes

Notifications simples

Amazon SNS

Conclusion

Amazon EventBridge est un élément fondamental pour les applications modernes natives du cloud. Il vous permet de créer des systèmes évolutifs et faiblement couplés, de réagir en temps réel aux événements sur les plateformes AWS et SaaS, et d'intégrer des workflows avec une infrastructure minimale. 

Pour réussir avec EventBridge, concentrez-vous sur la conception de domaines modulaires basés sur les événements, appliquez les meilleures pratiques en matière de privilèges minimaux et de files d'attente de messages non distribués, et surveillez en permanence l'utilisation, les quotas et les coûts.

Si vous souhaitez approfondir votre expertise AWS, découvrez le cursus AWS Cloud Practitioner.

Foire aux questions

En quoi EventBridge diffère-t-il de SNS et SQS ?

EventBridge offre un filtrage basé sur des règles, la prise en charge des schémas et des intégrations avec des plateformes SaaS, des fonctionnalités qui ne sont pas disponibles dans SNS ou SQS.

EventBridge est-il sans serveur ?

Oui, EventBridge est un service entièrement géré et sans serveur qui s'adapte automatiquement au volume d'événements.

Puis-je utiliser EventBridge pour déclencher des fonctions Lambda ?

Oui. EventBridge peut acheminer des événements vers des fonctions Lambda en fonction de règles et de filtres personnalisés.

Que sont les pipes EventBridge et quand dois-je les utiliser ?

Les pipes permettent des intégrations directes, point à point, entre les sources et les cibles, avec prise en charge du filtrage, de la transformation et de l'enrichissement.

Comment sécuriser mes workflows EventBridge ?

Utilisez les stratégies IAM, le chiffrement et les files d'attente de messages non remis pour sécuriser et surveiller votre architecture orientée événements.

EventBridge prend-il en charge le routage d'événements entre comptes ?

Oui, EventBridge prend en charge le partage d'événements entre comptes à l'aide de stratégies et d'autorisations basées sur les ressources.

Qu'est-ce que le planificateur EventBridge ?

Le planificateur est une fonctionnalité intégrée permettant de déclencher des événements basés sur le temps, avec une logique de réessai et des options de planification flexibles.

Comment fonctionne la tarification pour EventBridge ?

EventBridge facture en fonction du nombre d'événements publiés, transmis et rejoués, avec une offre gratuite généreuse.

Est-il possible de rejouer des événements passés dans EventBridge ?

Oui, grâce à la fonctionnalité de relecture des événements, les événements archivés peuvent être relus à des fins de dépannage ou de retraitement.


Don Kaluarachchi's photo
Author
Don Kaluarachchi
LinkedIn
Twitter
Je suis Don - consultant, développeur, ingénieur, architecte numérique et écrivain (en gros, j'ai plusieurs casquettes 👨‍💻🎩). J'aime veiller au bon fonctionnement des plates-formes numériques et trouver sans cesse des moyens de les améliorer. Quand je ne code pas, j'écris sur l'intelligence artificielle, la science des données et tout ce qui touche à la technologie.
 
Au fil des ans, j'ai travaillé sur tout, de la construction et de l'optimisation de logiciels au déploiement de modèles d'IA et à la conception de solutions cloud. Je suis titulaire d'un master en intelligence artificielle et d'une licence en informatique, tous deux obtenus à l'université Brunel de Londres.
Sujets

Découvrez AWS grâce à ces cours.

Cours

Concepts d’AWS

2 h
34.2K
Découvrez l'univers d'Amazon Web Services (AWS) et comprenez pourquoi il est à la pointe du cloud computing.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow