Créer des architectures basées sur des événements avec Eventarc
Vous pouvez utiliser Eventarc et Firestore pour créer des architectures basées sur des événements. Les déclencheurs Firestore pour Eventarc génèrent des événements à partir des modifications apportées à un document particulier de votre base de données. Le déclencheur peut acheminer les événements vers une destination compatible:
- Cloud Functions (2nd gen), compatible avec les bibliothèques clientes Cloud et le SDK Firebase
- Cloud Run
- Google Kubernetes Engine
- Workflows
Eventarc propose une solution standardisée pour gérer le flux des changements d'état, appelés événements, entre les microservices découplés. Lorsqu'il est déclenché, Eventarc achemine ces événements vers différentes destinations tout en gérant automatiquement la diffusion, la sécurité, les autorisations, l'observabilité et la gestion des erreurs.
Limites
Notez les limites suivantes pour les déclencheurs Firestore pour Eventarc:
- L'ordre n'est pas garanti. Les modifications rapides peuvent déclencher des événements dans un ordre inattendu.
Les événements sont diffusés au moins une fois.
Assurez-vous que votre gestionnaire d'événements est idempotent et évitez de produire des résultats ou des effets secondaires inattendus lorsqu'un événement est diffusé plusieurs fois. Pour en savoir plus, consultez la page Créer des fonctions idempotentes.
Un déclencheur est associé à une seule base de données. Vous ne pouvez pas créer de déclencheur correspondant à plusieurs bases de données.
La suppression d'une base de données ne supprime pas automatiquement les déclencheurs de cette base de données. Le déclencheur cesse de diffuser des événements, mais continue d'exister jusqu'à ce que vous le supprimiez.
Emplacements Eventarc et Firestore
Eventarc n'est pas compatible avec les emplacements multirégionaux pour les déclencheurs d'événements Firestore, mais vous pouvez toujours créer des déclencheurs pour les bases de données Firestore dans des emplacements multirégionaux. Eventarc mappe les emplacements multirégionaux Firestore sur les régions Eventarc suivantes:
Firestore - Plusieurs régions | Région Eventarc |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Différences entre Cloud Functions 2e et 1re génération
Cloud Functions (2nd gen) utilise les événements Eventarc pour tous les environnements d'exécution. Auparavant, Cloud Functions (1re génération) n'utilisait les événements Eventarc que pour certains environnements d'exécution. Les événements Eventarc présentent les différences suivantes par rapport à Cloud Functions (1re génération).
En plus de Cloud Functions, les déclencheurs Firestore pour Eventarc acceptent des destinations supplémentaires. Vous pouvez acheminer
CloudEvents
vers plusieurs destinations, y compris, mais sans s'y limiter, Cloud Run, GKE et Workflows.Les déclencheurs Firestore pour Eventarc récupèrent la définition du déclencheur au démarrage d'une opération d'écriture de base de données et utilisent cette définition pour décider si Firestore doit émettre un événement. L'opération d'écriture ne prend pas en compte les modifications apportées à la définition du déclencheur qui pourraient se produire lors de son exécution.
Cloud Functions (1re génération) récupère la définition du déclencheur lors de l'évaluation de l'écriture de la base de données. Les modifications apportées au déclencheur lors de l'évaluation peuvent avoir une incidence sur l'émission d'un événement par Firestore.
Mode Datastore et interopérabilité des événements en mode natif
Eventarc est compatible avec les déclencheurs d'événements en mode Datastore et en mode natif. Ces déclencheurs d'événements sont interopérables avec les deux types de bases de données. Une base de données Firestore en mode natif peut recevoir des événements Datastore, et une base de données Firestore en mode Datastore peut recevoir des événements en mode natif.
L'interopérabilité des événements vous permet de partager du code Eventarc entre différents types de bases de données Firestore.
Conversions d'événements
Si vous appliquez un déclencheur d'événement en mode natif à une base de données en mode Datastore, Eventarc effectue les conversions suivantes:
- L'espace de noms de l'entité est stocké dans l'attribut
PartitionId
de l'événement. - Les entités intégrées sont converties en types
map
en mode natif.
Étapes suivantes
- Découvrez les architectures basées sur des événements.