Überblick über Eventarc

Mit Eventarc können Sie ereignisgesteuerte Architekturen erstellen, ohne die zugrunde liegende Infrastruktur implementieren, anpassen oder verwalten zu müssen. Es bietet eine standardisierte Lösung, um den Ablauf der Statusänderungen, die sogenannten Ereignisse, zwischen entkoppelten Mikrodiensten zu verwalten. Eventarc leitet diese Ereignisse an Cloud Run weiter und verwaltet dabei die Zustellung, Sicherheit, Autorisierung, Beobachtbarkeit und Fehlerbehandlung für Sie.

Architektur: Eventarc

Sie können Eventarc über die Google Cloud Console (mit Cloud Run), über die Befehlszeile mit dem Cloud SDK oder mit der Eventarc API verwalten.

Gängige Anwendungsfälle

Eventarc unterstützt viele Anwendungsfälle für Anwendungen, die in Cloud Run ausgeführt werden. Einige Beispiele:

Konfigurieren und Monitoring
  • Systemkonfiguration: Sofort nach dem Start auf einer neuen VM ein Konfigurationsverwaltungstool installieren.
  • Automatisierte Korrektur: Erkennen, wenn ein Dienst nicht richtig reagiert, und ihn automatisch neustarten.
  • Warnungen und Benachrichtigungen: Guthaben einer Kryptowährung-Wallet-Adresse überwachen und Benachrichtigungen auslösen.
Optimieren
  • Verzeichnisregistrierungen: Mitarbeiterlogo aktivieren, sobald ein neuer Mitarbeiter einem Unternehmen beitritt.
  • Datensynchronisierung: Einen Abrechnungsworkflow auslösen, wenn ein Kunde in einem CRM-System konvertiert wird.
  • Ressourcen-Labeling: Den Ersteller einer VM mit einem Label versehen, wenn die VM erstellt wird.
Analysieren
  • Sentimentanalyse: Die Cloud Natural Language API verwenden, um ein ML-Modell zu trainieren und bereitzustellen, das nach Abschluss eines Service-Tickets einen Zufriedenheitswert angibt.
  • Retusche und Analysen von Bildern: Der Hintergrund wird entfernt und Bilder werden automatisch kategorisiert, wenn sie von einem Einzelhändler zu einem Objektspeicher hinzugefügt werden.

Veranstaltungen

Ein Ereignis ist ein Datensatz, der ein Vorkommen und seinen Kontext wiedergibt. Ein Ereignis ist eine von allen anderen Ereignissen unabhängige Kommunikationseinheit. Ein Ereignis kann z. B. eine Änderung von Daten in einer Datenbank, eine zu einem Speichersystem hinzugefügte Datei oder ein geplanter Auftrag sein.

Eine Liste der von Eventarc unterstützten Ereignisse finden Sie unter Von Eventarc unterstützte Ereignisse.

Ereignisquellen

Ereignisse werden von einem Ereignisersteller (der Quelle) an interessierte Ereignisnutzer weitergeleitet. Das Routing wird auf der Grundlage der im Ereignis enthaltenen Informationen durchgeführt, aber ein Ereignis identifiziert kein bestimmtes Routing-Ziel. Derzeit unterstützt Eventarc Ereignisse aus den folgenden zwei Arten von Quellen:

  • Mehr als 90 Google Cloud-Quellen. Ereignisse aus diesen Quellen sind Einträge von Cloud-Audit-Logs und verwenden Events Core und Pub/Sub als Transportebene.
  • Benutzerdefinierte Quellen. Für Ereignisse aus benutzerdefinierten Anwendungen wird Pub/Sub zum Senden von Ereignisbenachrichtigungen verwendet.

Informationen zum Weiterleiten von Ereignissen an einen Cloud Run-Dienst finden Sie unter Optionen für die Ereignisweiterleitung.

Ereignisziele

Ereignisse werden an ein bestimmtes Ziel weitergeleitet, das als Ereignisempfänger (oder Nutzer) bezeichnet wird. Derzeit ist Cloud Run der einzige Ereignisempfänger von Eventarc. Erfahren Sie, wie Sie einen Ereignisempfängerdienst erstellen, der in Cloud Run eingesetzt werden kann.

Ereignisformat und Bibliotheken

Eventarc liefert Ereignisse, unabhängig von der Quelle, an den CloudRun-Zieldienst in einem CloudEvents-Format unter Verwendung einer HTTP-Anfrage im Binär-Inhaltsmodus. CloudEvents ist eine Spezifikation für die allgemeine Beschreibung von Ereignis-Metadaten, die der Cloud Native Computing Foundation untersteht und von der Serverless Working Group der Foundation organisiert wird.

Die Verwendung einer Standardmethode zum Beschreiben von Ereignismetadaten sorgt für Konsistenz, Barrierefreiheit und Übertragbarkeit. Ereignisnutzer können diese Ereignisse direkt lesen, oder Sie können Google CloudEvents SDKs und Bibliotheken in verschiedenen Sprachen (einschließlich C#, Go, Java, Node.js und Python) verwenden, um die Ereignisse zu lesen und zu analysieren:

Eventarc-Parsing-Bibliotheken

Die Struktur des HTTP-Texts für alle Ereignisse ist im GitHub-Repository von Google CloudEvents verfügbar. Weitere Informationen finden Sie unter Ereignisempfänger entwickeln.

Eventarc-Trigger

Ereignisse geschehen unabhängig davon, ob Sie darauf reagieren. Mit einem Trigger können Sie eine Reaktion auf ein Ereignis erstellen. Sie geben damit an, dass Sie an einem bestimmten Ereignis oder an einer Reihe von Ereignissen interessiert sind. Wenn Sie einen Cloud Run-Dienst an einen Trigger binden, können Sie bestimmte Ereignisse erfassen und darauf reagieren. Weitere Informationen finden Sie unter Trigger erstellen und REST-Darstellung einer Trigger-Ressource.

Eventarc unterstützt zwei Triggertypen:

CAL-Ereignisse (Cloud-Audit-Logs)
BeschreibungCloud-Audit-Logs bieten Audit-Logs für Admin-Aktivitäten und Audit-Logs zum Datenzugriff für jedes Cloud-Projekt, jeden Ordner und jede Organisation. Google Cloud-Dienste schreiben Einträge in diese Logs. Der Katalog von Cloud-Audit-Log enthält ein Verzeichnis mit den Werten serviceName und methodName.
EreignisfiltertypEventarc-Trigger mit type=google.cloud.audit.log.v1.written senden Anfragen an Ihren Cloud Run-Dienst, wenn ein Audit-Log erstellt wird, das den Filterkriterien des Triggers entspricht.
Cloud Pub/Sub-Ereignisse
BeschreibungEventarc kann durch Nachrichten ausgelöst werden, die in Pub/Sub-Themen veröffentlicht wurden. Pub/Sub ist ein global verteilter Nachrichtenbus, der automatisch nach Bedarf skaliert wird. Da Eventarc von Nachrichten in einem Pub/Sub-Thema aufgerufen werden kann, können Sie Eventarc problemlos in jeden anderen Dienst einbinden, der Pub/Sub als Ziel unterstützt.
EreignisfiltertypEventarc-Trigger mit type=google.cloud.pubsub.topic.v1.messagePublished senden Anfragen an Ihren Cloud Run-Dienst, wenn eine Nachricht in dem angegebenen Trigger-Thema veröffentlicht wird.

Triggerstandort

Google Cloud-Dienste wie Cloud Storage können als regional oder multiregional eingerichtet werden. Einige Dienste wie Cloud Build können global eingerichtet werden.

Mit Eventarc können Sie regionale Trigger in acht Regionen erstellen. Eventarc ist nicht an Standorten mit zwei oder mehreren Regionen verfügbar. Sie können jedoch einen globalen Trigger erstellen, der nicht für Pub/Sub-Ereignisse gilt, und Ereignisse aus allen Regionen empfangen. Weitere Informationen finden Sie unter Eventarc-Standorte.

Sie sollten den Speicherort des Eventarc-Triggers so festlegen, dass er mit dem Speicherort des Google Cloud-Dienstes übereinstimmt, der die Ereignisse generiert, um Probleme mit der Leistung und dem Datenstandort zu vermeiden, die durch einen globalen Trigger verursacht werden.

Mit dem Flag --location für jeden Befehl können Sie Triggerstandorte angeben. Wenn das Flag --destination-run-region nicht angegeben ist, wird davon ausgegangen, dass sich der Dienst in derselben Region wie der Trigger befindet. Weitere Informationen finden Sie in der Referenz zum gcloud-Befehlszeilentool.

Zuverlässigkeit und Bereitstellung

Die Erwartungen an die Bereitstellung sind:

  • Ereignisse, die Cloud-Audit-Logs verwenden, werden in weniger als einer Minute bereitgestellt.
  • Ereignisse, die Pub/Sub verwenden, werden in Sekunden bereitgestellt.

Es gibt keine garantierte Reihenfolge der Bereitstellung, etwa nach dem Prinzip "First-in-First-out". Beachten Sie, dass eine strikte Reihenfolge die Verfügbarkeits- und Skalierbarkeitsfunktionen von Eventarc beeinträchtigen würde, die mit denen der Transportebene Cloud Pub/Sub übereinstimmen. Weitere Informationen finden Sie unter Nachrichten sortieren.

Latenz und Durchsatz sind Best-Effort. Sie variieren auf Basis verschiedener Faktoren: ob der Eventarc-Trigger regional, multiregional oder global ist; der Konfiguration eines bestimmten Dienstes und der Netzwerkauslastung von Ressourcen in einer Google Cloud-Region.

Beachten Sie, dass es Nutzungskontingente und -limits gibt, die für Eventarc gelten, wenn es mit Cloud Run verwendet wird.

Richtlinie für Ereigniswiederholung

Fehler bei der Ereignisausgabe werden automatisch wiederholt, außer bei Fehlern, die keine Wiederholung rechtfertigen. Dies entspricht den Wiederholungsmerkmalen der Transportebene von Eventarc, Cloud Pub/Sub. Wenn der Cloud Run-Dienst Nachrichten nicht bestätigt, bewahrt Pub/Sub Ereignisse standardmäßig sieben Tage lang auf und versucht noch einmal, Ereignisse an das Ziel zu senden. Weitere Informationen finden Sie unter Pub/Sub-Ressourcenlimits.

Beobachtbarkeit

Es stehen folgende detaillierte Logs zur Verfügung:

Nächste Schritte