1. Einführung

Mit Eventarc lassen sich Google Cloud-Dienste ganz einfach mit Ereignissen aus verschiedenen Quellen verbinden. Damit können Sie ereignisgesteuerte Architekturen erstellen, in denen Mikrodienste lose gekoppelt und verteilt sind. Außerdem werden die Aufnahme, Bereitstellung, Sicherheit, Autorisierung und Fehlerbehandlung von Ereignissen für Sie übernommen, was die Agilität von Entwicklern und die Ausfallsicherheit von Anwendungen verbessert.
Datadog ist eine Monitoring- und Sicherheitsplattform für Cloud-Anwendungen. Es führt End-to-End-Traces, Messwerte und Logs zusammen, um Ihre Anwendungen, Infrastruktur und Drittanbieterdienste beobachtbar zu machen.
In diesem ersten Codelab erfahren Sie, wie Sie eine einfache Datadog-Monitoring-Benachrichtigung mit Eventarc an Google Cloud weiterleiten.
Lerninhalte
- So finden Sie den Datadog-Anbieter.
- So richten Sie einen Kanal für den Datadog-Anbieter ein.
- So erstellen Sie einen Workflow zum Protokollieren von Ereignissen.
- Eventarc-Trigger mit dem Channel erstellen
- So erstellen Sie einen Datadog-Monitor.
- So testen Sie den Datadog-Monitor, den Eventarc-Trigger und den Workflow.
2. Einrichtung und Anforderungen
Umgebung zum selbstbestimmten Lernen einrichten
- Melden Sie sich in der Google Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder Google Workspace-Konto haben, müssen Sie eines erstellen.



- Der Projektname ist der Anzeigename für die Teilnehmer dieses Projekts. Es handelt sich um einen String, der nicht von Google APIs verwendet wird. Sie können ihn jederzeit aktualisieren.
- Die Projekt-ID muss für alle Google Cloud-Projekte eindeutig sein und ist unveränderlich (kann nach der Festlegung nicht mehr geändert werden). In der Cloud Console wird automatisch ein eindeutiger String generiert. Normalerweise ist es nicht wichtig, wie dieser String aussieht. In den meisten Codelabs müssen Sie auf die Projekt-ID verweisen (sie wird in der Regel als
PROJECT_IDangegeben). Wenn Ihnen die generierte ID nicht gefällt, können Sie eine andere zufällige ID generieren. Alternativ können Sie es mit einem eigenen versuchen und sehen, ob es verfügbar ist. Sie kann nach diesem Schritt nicht mehr geändert werden und bleibt für die Dauer des Projekts bestehen. - Zur Information: Es gibt einen dritten Wert, die Projektnummer, die von einigen APIs verwendet wird. Weitere Informationen zu diesen drei Werten
- Als Nächstes müssen Sie die Abrechnung in der Cloud Console aktivieren, um Cloud-Ressourcen/-APIs zu verwenden. Die Durchführung dieses Codelabs sollte keine oder nur geringe Kosten verursachen. Wenn Sie Ressourcen herunterfahren möchten, damit Ihnen nach Abschluss dieser Anleitung keine Kosten mehr in Rechnung gestellt werden, können Sie die von Ihnen erstellten Ressourcen oder das gesamte Projekt löschen. Neue Nutzer von Google Cloud kommen für das Programm für kostenlose Testversionen mit einem Guthaben von 300$ infrage.
Cloud Shell starten
Während Sie Google Cloud von Ihrem Laptop aus per Fernzugriff nutzen können, wird in diesem Codelab Google Cloud Shell verwendet, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.
Klicken Sie in der Google Cloud Console rechts oben in der Symbolleiste auf das Cloud Shell-Symbol:

Die Bereitstellung und Verbindung mit der Umgebung sollte nur wenige Augenblicke dauern. Anschließend sehen Sie in etwa Folgendes:

Diese virtuelle Maschine verfügt über sämtliche Entwicklertools, die Sie benötigen. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft in Google Cloud, was die Netzwerkleistung und Authentifizierung erheblich verbessert. Alle Aufgaben in diesem Codelab können in einem Browser ausgeführt werden. Sie müssen nichts installieren.
gcloud einrichten
Legen Sie in Cloud Shell Ihre Projekt-ID fest und speichern Sie sie als Variable PROJECT_ID.
Legen Sie außerdem eine REGION-Variable auf us-central1 fest. In dieser Region erstellen Sie später Ressourcen.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
APIs aktivieren
Aktivieren Sie alle erforderlichen Dienste:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Datadog-Anbieter
Ein Eventarc-Anbieter ist ein Dienst oder eine Entität, der bzw. die Ereignisse direkt an Google Cloud senden und dann an Ihr Projekt weiterleiten kann. Drittanbieter wie Datadog sind Anbieter außerhalb von Google Cloud, die über Eventarc in Google Cloud eingebunden sind.
Führen Sie in Cloud Shell den folgenden Befehl aus, um die Liste der Google Cloud- und Drittanbieter aufzurufen:
gcloud eventarc providers list
Hier finden Sie eine Liste der Google Cloud- und Drittanbieter sowie der Standorte, an denen sie verfügbar sind:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Mit diesem Befehl können Sie die Liste auf Drittanbieter eingrenzen:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Datadog sollte in der Liste angezeigt werden:
NAME: datadog LOCATION: us-central1
Sie können auch den Datadog-Anbieter beschreiben, um die von ihm unterstützten Ereignisse zu sehen:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Kanal einrichten
Sie müssen einen Kanal einrichten, um Ihr Projekt in einen Anbieter zu integrieren. Dazu gehört, einen Kanal zu erstellen, Kanaldetails abzurufen und diese Details an den Anbieter zu senden. Sobald der Anbieter die Verbindung zum Channel initialisiert hat, kann er Ereignisse an Ihr Projekt senden.
Channel erstellen
Sie können einen Channel für den Datadog-Anbieter mit gcloud erstellen:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Sie können ihn auch im Bereich „Channels“ auf der Eventarc-Seite in der Google Cloud Console erstellen:

Kanaldetails abrufen
Nachdem der Kanal erstellt wurde, rufen Sie die Details des Kanals aus gcloud ab:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Die Ausgabe sollte in etwa so aussehen:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Sie können den Channel auch in der Google Cloud Console aufrufen:

Der Kanalstatus gibt den Status des Kanals an. Mögliche Werte:
PENDING: Der Kanal wurde erstellt und es ist ein Aktivierungstoken verfügbar, um eine Verbindung mit dem Anbieter herzustellen. Damit der Status des Kanals vonPENDINGzuACTIVEgeändert werden kann, muss das Token dem Anbieter zur Verfügung gestellt und innerhalb von 24 Stunden nach der Erstellung des Kanals verwendet werden, um den Kanal zu verbinden.ACTIVE: Der Kanal wurde mit dem Anbieter verknüpft. EinACTIVE-Kanal ist bereit, Ereignisse vom Anbieter zu empfangen und weiterzuleiten.INACTIVE: Der Kanal kann keine Ereignisse empfangen und nicht reaktiviert werden. Der Anbieter ist entweder nicht mit diesem Kanal verbunden oder das Kanalaktivierungstoken ist abgelaufen und der Anbieter ist nicht verbunden. Wenn Sie die Verbindung zu einem Anbieter wiederherstellen möchten, müssen Sie einen neuen Kanal für den Anbieter erstellen.
Ein Aktivierungstoken ist ein einmalig verwendbares, zeitlich begrenztes Token, das zum Herstellen einer Verbindung zwischen einem Anbieter und dem Projekt eines Abonnenten verwendet wird. Das Token kann nur von einem bestimmten Anbieter verwendet werden, der bei der Kanaleinrichtung ausgewählt wurde. Das Token ist 24 Stunden nach der Erstellung des Kanals gültig. Nach 24 Stunden wird der Kanal INACTIVE.
Kanaldetails an den Anbieter senden
Sie müssen dem Datadog-Anbieter die folgenden Kanaldetails senden:
- Kanalname (z. B.
projects/project-id/locations/us-central1/channels/datadog-channel) - Aktivierungstoken (z. B.
so5g4Kdasda7y2MSasdaGn8njB2)
Melden Sie sich in Datadog an, rufen Sie die Seite „Integrations“ auf und prüfen Sie, ob die Google Eventarc-Integration installiert ist:

Geben Sie im Konfigurationsbereich von Google Eventarc den vollständigen Kanalnamen und das Aktivierungstoken ein:

Der Kanal sollte jetzt in der Liste der Kanäle angezeigt werden. Nach einigen Sekunden sollte er auch in der Google Cloud Console aktiv sein:

Jetzt können Sie den Channel verwenden.
5. Workflow erstellen
Sie benötigen ein Ziel in Google Cloud, um Ereignisse vom Anbieter zu empfangen. Eventarc unterstützt eine Reihe von Ereigniszielen wie Cloud Run, Workflows und Kubernetes-Dienste. Stellen Sie in diesem Fall einen Workflow bereit, um die empfangenen Ereignisse einfach zu protokollieren.
Erstellen Sie eine workflow-datadog1.yaml-Datei mit folgendem Inhalt:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Beachten Sie, dass der Workflow ein Ereignis als Parameter empfängt. Dieses Ereignis stammt von der Datadog-Überwachung über Eventarc. Sobald das Ereignis empfangen wurde, wird es im Workflow protokolliert.
Stellen Sie den Workflow bereit:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Der Workflow wurde bereitgestellt, wird aber noch nicht ausgeführt. Sie wird von einem Eventarc-Trigger ausgeführt, wenn eine Datadog-Warnung empfangen wird.
6. Eventarc-Trigger erstellen
Sie können jetzt Ereignisse vom Datadog-Anbieter mit einem Eventarc-Trigger mit Workflows verbinden.
Dienstkonto konfigurieren
Sie benötigen ein Dienstkonto mit der Rolle eventarc.eventReceiver, wenn Sie einen Trigger erstellen. Sie können entweder ein spezielles Dienstkonto erstellen oder das Standarddienstkonto von Compute verwenden.
Verwenden Sie zur Vereinfachung das Compute-Standarddienstkonto und weisen Sie die Rolle eventarc.eventReceiver zu:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role roles/eventarc.eventReceiver
Trigger erstellen
Erstellen Sie einen Trigger mit dem Datadog-Channel, dem Ereignistyp und einem Workflow-Ziel:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sie können die Trigger auflisten, um zu sehen, ob der neu erstellte Trigger aktiv ist:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Datadog-Monitor erstellen
Sie erstellen jetzt einen Datadog-Monitor und verbinden ihn mit Eventarc.
Es handelt sich um einen Monitor vom Typ „Hallo Welt“ mit Standardwerten. Sie lösen sie manuell aus, um die Monitoringbenachrichtigungen zu generieren, die wiederum ein Eventarc-Ereignis in Google Cloud generieren.
Melden Sie sich in Datadog an, um einen Monitor zu erstellen. Bewegen Sie den Mauszeiger im Hauptmenü auf Monitors und klicken Sie im Untermenü auf New Monitor. Es gibt viele Monitortypen. Wählen Sie den Monitortyp Metric aus.
Übernehmen Sie auf der Seite New Monitor die Standardeinstellungen für die Schritte 1 und 2.
- Legen Sie in Schritt 3 den Wert
Alert thresholdauf 1 fest. - Legen Sie in Schritt 4
Test monitor for Eventarcals Monitornamen undNotify your teamauf@eventarc_<your-project-id>_<your-region>_<your-channel-name>fest.
Lassen Sie die Monitorseite für den nächsten Schritt geöffnet, in dem Sie den Monitor testen.
8. Monitor und Trigger testen
Um den Datadog-Monitor und den Eventarc-Trigger zu testen, lösen Sie den Monitor manuell aus.
Klicken Sie unten auf der Seite zum Erstellen von Monitoren auf die Schaltfläche Test Notifications:

Klicken Sie dann auf die Schaltfläche Run Test:

Dadurch sollte der Statusübergang im Monitor simuliert und ein Eventarc-Ereignis ausgelöst werden.
Prüfen Sie den workflow-datadog1-Workflow. Sie sollten sehen, dass eine neue Ausführung vorhanden ist:

Prüfen Sie die Details der Ausführung. Der Datadog-Ereignistyp datadog.v1.alert, der aus der Monitoring-Benachrichtigung generiert wurde, sollte in der Eingabe des Workflows und in den Logs angezeigt werden:

9. Glückwunsch
Herzlichen Glückwunsch! Sie haben das Codelab abgeschlossen. Im zweiten Codelab erfahren Sie, wie Sie mit Workflows auf Datadog-Überwachungswarnungen reagieren.
Behandelte Themen
- So finden Sie den Datadog-Anbieter.
- So richten Sie einen Kanal für den Datadog-Anbieter ein.
- So erstellen Sie einen Workflow zum Protokollieren von Ereignissen.
- Eventarc-Trigger mit dem Channel erstellen
- So erstellen Sie einen Datadog-Monitor.
- So testen Sie den Datadog-Monitor, den Eventarc-Trigger und den Workflow.