Ereignisgesteuerte Architekturen mit Eventarc erstellen

Mit Eventarc und Firestore zum Erstellen ereignisgesteuerte Architekturen Firestore-Trigger für Eventarc generiert Ereignisse aus Änderungen bestimmte Dokumente in Ihrer Datenbank. Der Trigger kann Ereignisse an ein unterstütztes Ziel weiterleiten:

Eventarc bietet eine standardisierte Lösung zur Verwaltung des Datenflusses Zustandsänderungen, sogenannte Ereignisse, zwischen entkoppelten Mikrodiensten. Bei Auslösung leitet Eventarc diese Ereignisse an verschiedene Ziele weiter und verwaltet dabei die Bereitstellung, Sicherheit, Autorisierung, Beobachtbarkeit und Fehlerbehandlung.

Beschränkungen

Beachten Sie die folgenden Einschränkungen für Firestore-Trigger für Eventarc:

  • Die Reihenfolge ist nicht garantiert. Schnelle Änderungen können Ereignisse in einer unvorhergesehenen Reihenfolge auslösen.
  • Ereignisse werden mindestens einmal bereitgestellt.

    Achten Sie darauf, dass Ihr Ereignis-Handler idempotent ist, und vermeiden Sie unerwartete Ergebnisse oder Nebenwirkungen, wenn ein Ereignis mehrmals gesendet wird. Weitere Informationen finden Sie unter Weitere Informationen finden Sie unter Idempotente Funktionen erstellen.

  • Ein Trigger ist einer einzelnen Datenbank zugeordnet. Sie können keinen Trigger erstellen, der mit mehreren Datenbanken übereinstimmt.

  • Durch das Löschen einer Datenbank werden nicht automatisch die Trigger für diese Datenbank gelöscht. Die Der Trigger liefert keine Ereignisse mehr. Er bleibt jedoch bestehen, bis Sie den Trigger löschen.

Eventarc- und Firestore-Standorte

Eventarc unterstützt keine Mehrfachregionen für Firestore-Ereignisse Trigger, aber Sie können trotzdem Trigger für Firestore-Datenbanken erstellen an multiregionalen Standorten. Eventarc-Zuordnung in Firestore Multiregionale Standorte in die folgenden Eventarc-Regionen:

Firestore (multiregional) Eventarc-Region
nam5 us-central1
eur3 europe-west4

Unterschiede zwischen Cloud Run-Funktionen der 2. Generation und der 1. Generation

Cloud Run-Funktionen (2. Generation) verwenden Eventarc-Ereignisse für alle Laufzeiten. Bisher haben Cloud Run-Funktionen (1. Generation) Eventarc-Ereignisse für nur einige Laufzeiten. Eventarc-Ereignisse führen zu folgenden Unterschieden Cloud Run-Funktionen (1. Generation)

  • Die Firestore-Trigger für die Eventarc-Unterstützung neben Cloud Run-Funktionen weitere Ziele. Du kannst CloudEvents weiterleiten. mit einer Reihe von Zielen, darunter: aber nicht beschränkt auf Cloud Run, GKE und Workflows

  • Firestore-Trigger für Eventarc rufen die Triggerdefinition zu Beginn eines Datenbankschreibvorgangs um zu entscheiden, ob Firestore ein Ereignis ausgeben soll. Der Schreibvorgang berücksichtigt keine Änderungen an der Triggerdefinition, die während der Ausführung auftreten können.

    Cloud Run-Funktionen (1. Generation) rufen die Triggerdefinition während der Auswertung des Datenbankschreibvorgangs und Änderungen am Trigger während kann sich darauf auswirken, ob Firestore ein Ereignis ausgibt oder nicht.

Interoperabilität von Ereignissen im Datastore-Modus und im nativen Modus

Eventarc unterstützt Ereignistrigger sowohl für den Datastore-Modus als auch für den nativen Modus. Diese Ereignistrigger sind mit beiden Datenbanktypen interoperabel. Eine Firestore-Datenbank im nativen Modus kann Datastore empfangen und eine Firestore-Datenbank im Datastore-Modus kann Ereignisse im nativen Modus.

Dank der Interoperabilität von Ereignissen können Sie Eventarc-Code für andere Firestore-Datenbanken verschiedener Typen.

Ereignis-Conversions

Wenn Sie einen Ereignistrigger im nativen Modus auf einen Datastore anwenden verwendet Eventarc die folgenden Conversions:

  • Der Namespace der Entität wird im Attribut PartitionId des Ereignisses gespeichert.
  • Eingebettete Entitäten werden in map-Typen des nativen Modus konvertiert.

Nächste Schritte