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. des déclencheurs Firestore pour Eventarc génère des événements à partir de modifications à un document particulier de votre base de données. Le déclencheur peut acheminer les événements vers une destination compatible :
- Fonctions Cloud Run (2e génération) compatibles avec les bibliothèques clientes Cloud et le SDK Firebase
- Cloud Run
- Google Kubernetes Engine
- Workflows
Eventarc offre une solution standardisée pour gérer le flux de des changements d'état, appelés événements, entre des microservices découplés. Lorsqu'il est déclenché, Eventarc achemine ces événements vers différentes destinations tout en gérant la diffusion, la sécurité, les autorisations, l'observabilité et la gestion des erreurs.
Limites
Notez que les déclencheurs Firestore suivants présentent les limites suivantes : 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 générer des résultats ou des effets secondaires inattendus lorsqu'un événement est diffusé plusieurs fois. Consultez Créer des fonctions idempotentes pour en savoir plus
Un déclencheur est associé à une seule base de données. Vous ne pouvez pas créer un déclencheur qui correspond à 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 multirégions 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 de Firestore aux régions Eventarc suivantes :
Firestore – Plusieurs régions | Région Eventarc |
---|---|
nam5 |
us-central1 |
eur3 |
europe-west4 |
Différences entre les fonctions Cloud Run 2e et 1re génération
Les fonctions Cloud Run (2e génération) utilisent des événements Eventarc pour tous les environnements d'exécution. Auparavant, les fonctions Cloud Run (1re génération) n'utilisaient les événements Eventarc que pour certains environnements d'exécution. Les événements Eventarc présentent les différences suivantes par rapport aux fonctions Cloud Run (1re génération).
Déclencheurs Firestore pour la compatibilité Eventarc en plus des fonctions Cloud Run. Vous pouvez acheminer
CloudEvents
vers plusieurs destinations, y compris mais sans s'y limiter, Cloud Run, GKE WorkflowsLes déclencheurs Firestore pour Eventarc récupèrent du déclencheur au début d'une opération d'écriture de la base de données et utilise cette définition pour décider si Firestore doit émettre un événement. La l'opération d'écriture ne tient pas compte des modifications apportées à la définition du déclencheur qui pourrait se produire pendant son exécution.
Les fonctions Cloud Run (1re génération) récupèrent la définition du déclencheur lors de l'évaluation de l'écriture dans la base de données. Les modifications apportées au déclencheur lors de l'évaluation peuvent affecter l'émission d'un événement par Firestore ou non.
Interopérabilité des événements dans les modes Datastore et natif
Eventarc est compatible avec les déclencheurs d'événements pour le mode Datastore et le 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 le code Eventarc entre des bases de données Firestore de différents types.
Conversions d'événement
Si vous appliquez un déclencheur d'événement en mode natif à un datastore mode base de données, 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.
Étape suivante
- Apprenez-en plus sur les architectures basées sur des événements.