In dieser Anleitung erfahren Sie, wie Sie Application Integration so konfigurieren, dass Sie GKE-Clusterbenachrichtigungen (Google Kubernetes Engine) per E-Mail erhalten.
Sie erstellen eine Integration mit einem Pub/Sub-Trigger, um ein vorhandenes Thema zu überwachen, das Benachrichtigungen von einem GKE-Cluster empfängt. Anschließend können Sie die Aufgaben „Datenabgleich“ und „Data Transformer“ verwenden, um die Pub/Sub-Nachricht zu transformieren und einen E-Mail-Textkörper im Nur-Text-Format zu erstellen.
Ziele
- Erstellen Sie eine Application Integration-Anwendung, um externe Benachrichtigungen von GKE zu empfangen und zu transformieren.
- Sie schreiben eine Aufgabe zum Senden von E-Mails, die Pub/Sub-Benachrichtigungen an E-Mail-Adressen sendet.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE, Application Integration and Pub/Sub APIs.
- Aktivieren Sie GKE-Clusterbenachrichtigungen.
- Wenn Sie Application Integration in Ihrem Projekt zum ersten Mal verwenden, müssen Sie Application Integration einrichten.
Erforderliche Rollen
Damit service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com die erforderlichen Berechtigungen zum Einrichten von E-Mail-Benachrichtigungen für Clusterbenachrichtigungen hat, bitten Sie Ihren Administrator, service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com die folgenden IAM-Rollen für Ihr Projekt zuzuweisen:
-
Pub/Sub-Bearbeiter (
roles/pubsub.editor
) -
Application Integration-Bearbeiter (
roles/integrations.editor
)
Clusterbenachrichtigungen für Ihren GKE-Cluster einrichten
Wenn Sie Pub/Sub verwenden möchten, um Benachrichtigungen zu Ihrem GKE-Cluster zu erhalten, folgen Sie der Anleitung unter Clusterbenachrichtigungen erhalten.
Neue Integration erstellen
So erstellen Sie eine neue Integration:
Rufen Sie in der Google Cloud Console die Seite Application Integration auf.
Klicken Sie im Navigationsmenü auf Integrationen. Die Seite Integrationen wird angezeigt.
Klicken Sie auf Integration erstellen.
Geben Sie unter Name der Integration einen Namen für die Integration ein, die Sie erstellen.
Wenn Sie mehrere Regionen aktiviert haben, wird ein Drop-down-Menü angezeigt, über das Sie eine Region für die Integration auswählen können. Wenn nur eine Region aktiviert ist, wird standardmäßig diese Region verwendet und das Drop-down-Menü wird nicht angezeigt.
Hinweis: Im Drop-down-Menü Regionen werden nur die in Ihrem Google Cloud-Projekt bereitgestellten Regionen aufgeführt. Klicken Sie zum Bereitstellen einer neuen Region unten im Feld auf Region aktivieren.
Klicken Sie auf Erstellen, um den Integrationseditor zu öffnen.
Pub/Sub-Trigger hinzufügen und konfigurieren
So fügen Sie der Integration einen Pub/Sub-Trigger hinzu:
Wählen Sie im Integrationseditor Trigger aus, um eine Liste der verfügbaren Trigger aufzurufen.
Klicken Sie auf das Element Pub/Sub-Trigger und platzieren Sie es im Designer.
Klicken Sie im Integrationseditor auf das Element Pub/Sub-Trigger, um den Trigger-Konfigurationsbereich aufzurufen.
Geben Sie im Feld Pub/Sub-Thema das Thema, das der Trigger überwachen soll, in folgendem Format an:
projects/PROJECT_ID/topics/TOPIC_ID
Ersetzen Sie Folgendes:
PROJECT_ID
: das Google Cloud-Projekt, in dem das Thema erstellt wurde.TOPIC_ID
: die ID des Pub/Sub-Themas, das Sie unter Umgebung einrichten erstellt haben.Wenn Ihr Projekt beispielsweise den Namen
my-project
hat und Sie das Themagke-notifications
benannt haben, geben Sie Folgendes ein:projects/my-project/topics/gke-notifications
Alle verfügbaren Themen in Ihrem Google Cloud-Projekt finden Sie in der Spalte Themenname unter Themen. Der Pub/Sub-Trigger-Konfigurationsbereich befüllt das Feld Triggerausgabe automatisch mit einer Variablen, die die Pub/Sub-Nachricht enthält.
Aufgabe „Datenabgleich“ hinzufügen und konfigurieren
Mit der Aufgabe „Datenabgleich“ können Sie relevante Variablen aus der Pub/Sub-Benachrichtigung extrahieren. Sie nimmt die JSON-Datei der Pub/Sub-Nachricht als Eingabe an und extrahiert Variablen als Ausgabe.
So konfigurieren Sie die Aufgabe "Datenabgleich":
Wählen Sie Aufgaben aus, um eine Liste der verfügbaren Aufgaben anzuzeigen.
Klicken Sie auf das Element Datenabgleich und platzieren Sie es im Integrationsdesigner.
Klicken Sie im Designer auf die Aufgabe Datenabgleich, um den Konfigurationsbereich der Aufgabe zu öffnen.
Wenn Sie eine Edge-Verbindung vom Pub/Sub-Trigger zum Datenabgleich hinzufügen möchten, bewegen Sie den Mauszeiger auf einen Steuerpunkt im Pub/Sub-Trigger und ziehen Sie eine Linie zu einem Steuerpunkt in der Aufgabe „Datenabgleich“. Der Edge kennzeichnet den Steuerungsfluss vom Pub/Sub-Trigger zur Aufgabe „Datenabgleich“.
Klicken Sie auf Datenabgleichs-Editor öffnen. Mit den vorhandenen Transformationsfunktionen im Datenabgleichs-Editor können Sie Eingabevariablen den ausgewählten Ausgabevariablen zuordnen. Die Ausgabe ist dann als Variable für alle anderen Integrationsaufgaben oder Trigger verfügbar. Weitere Informationen zu Variablen in Application Integration finden Sie unter Variablen.
Führen Sie für diese Anleitung die folgenden Schritte aus, um eine Zuordnung mit
CloudPubSubMessage
als Eingabe zu erstellen:- Maximieren Sie die JSON-Variable
CloudPubSubMessage
in der Liste der Variablen und ziehen Sie die VariableCloudPubSubMessage.data
in die erste Eingabe-Zeile. - Klicken Sie auf die erste Zeile in der Spalte Ausgabe, um eine neue Ausgabevariable zu erstellen, die den Wert der transformierten Daten enthält. Führen Sie anschließend folgende Schritte aus:
- Geben Sie im Feld Name
message_data
ein. - Wählen Sie in der Liste Variablentyp die Option Ausgabe aus Integration aus.
- Wählen Sie in der Liste Datentyp die Option String aus.
- Klicken Sie auf Erstellen. Die Variable
message_data
wird unter Ausgabe angezeigt.
- Geben Sie im Feld Name
- Ziehen Sie die Variable
CloudPubSubMessage.attributes
aus der Liste Variablen in die zweite Zeile der Eingabespalte. Klicken Sie auf die zweite Zeile in der Spalte Ausgabe, um eine neue Ausgabevariable zu erstellen, die den Wert der JSON-Nutzlast mit den Clusterattributen enthält. Füllen Sie die folgenden Felder aus:
- Geben Sie im Feld Name
attributes
ein. - Wählen Sie in der Liste Variablentyp die Option Kein aus.
- Wählen Sie in der Liste Datentyp die Option JSON aus.
Wählen Sie in den Optionen für JSON-Schemas die Option JSON-Schema eingeben aus und fügen Sie die folgende Nutzlast ein:
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "cluster_name": { "type": "string" }, "payload": { "type": "string" }, "project_id": { "type": "string" }, "cluster_location": { "type": "string" }, "type_url": { "type": "string" } } }
Klicken Sie auf Erstellen. Die Variable
attributes
wird unter Ausgabe angezeigt. Die Variable „attributes“ sollte in etwa so aussehen:
- Geben Sie im Feld Name
Klicken Sie in der Spalte Eingabe auf die dritte Zeile und wählen Sie im Bereich Variablen die Option
attributes.cluster_name
aus. Möglicherweise müssen Sie attributes eingeben, um alle fünf Attribute zu sehen, die im Schema, das im vorherigen Schritt eingegeben wurde, definiert werden.Klicken Sie in der Spalte Ausgabe auf die entsprechende Zeile, um eine neue Ausgabevariable zu erstellen, die den Wert des Attributs „Clustername“ enthält. Füllen Sie die folgenden Felder aus:
- Geben Sie im Feld Name
cluster_name
ein. - Wählen Sie in der Liste Variablentyp die Option Ausgabe aus Integration aus.
- Wählen Sie in der Liste Datentyp die Option String aus.
- Klicken Sie auf Erstellen. Die Variable
cluster_name
wird unter Ausgabe angezeigt.
- Geben Sie im Feld Name
Wiederholen Sie die Schritte e und f für
project_id
,cluster_location
,type_url
undpayload
.Schließen Sie den Datenableichs-Editor, sobald die Zuordnung abgeschlossen ist. Alle Änderungen werden automatisch gespeichert.
- Maximieren Sie die JSON-Variable
Aufgabe „Data Transformer (Script)“ hinzufügen und konfigurieren
Die Aufgabe „Data Transformer“ nimmt Variablen als Eingabe, die aus der Aufgabe „Datenabgleich“ extrahiert wurden, und wandelt sie in einen Nachrichtentext für Endnutzer um.
So konfigurieren Sie die Data Transformer-Aufgabe:
- Wählen Sie Aufgaben aus, um eine Liste der verfügbaren Aufgaben anzuzeigen.
- Klicken Sie auf das Element Data Transformer (Script) und platzieren Sie es im Integrationseditor.
- Klicken Sie im Designer auf die Aufgabe Data Transformer, um den Konfigurationsbereich der Aufgabe zu öffnen.
- Wenn Sie eine Edge-Verbindung von der Aufgabe „Datenabgleich“ zur Aufgabe „Data Transformer“ hinzufügen möchten, halten Sie den Mauszeiger auf einen Steuerungspunkt im Datenabgleich und ziehen Sie eine Linie zu einem Steuerungspunkt in der Data Transformer-Aufgabe. Der Edge kennzeichnet den Steuerungsfluss von der Aufgabe „Datenabgleich“ zur Aufgabe „Data Transformer“.
Klicken Sie auf Data Transformer-Editor öffnen. Mit dem Data Transformer-Editor können Sie benutzerdefinierte Jsonnet-Vorlagen schreiben, bearbeiten und auswerten, um eine Datenzuordnung in Ihrer Integration durchzuführen. Die Ausgabe ist dann als Variable für alle anderen Integrationsaufgaben oder Trigger verfügbar. Weitere Informationen zu dieser Transformer-Aufgabe finden Sie unter Data Transformer-Aufgabe. Führen Sie für diese Kurzanleitung die folgenden Schritte aus, um ein Script zu erstellen:
Klicken Sie im linken Bereich Variablen auf
Erstellen. Daraufhin wird rechts der Bereich Variable erstellen geöffnet. Füllen Sie die folgenden Felder aus:- Name: Geben Sie
full_message
ein. - Wählen Sie im Drop-down-Menü Variablentyp die Option
Output from integration
aus. - Wählen Sie im Drop-down-Menü Datentyp die Option
String
aus. - Klicken Sie auf Erstellen, um die Variable zu erstellen, und schließen Sie den Bereich. Die neue Variable
full_message
wird in der Liste Variablen angezeigt.
- Name: Geben Sie
Wählen Sie Script aus.
Verwenden Sie das folgende Beispielscript als Vorlage für den Nachrichtentext, wenn Benachrichtigungen von Ihrem Cluster gesendet werden:
local message_data = std.extVar("message_data"); local cluster_name = std.extVar("cluster_name"); local project_id = std.extVar("project_id"); local cluster_location = std.extVar("cluster_location"); local type_url = std.extVar("type_url"); local payload = std.extVar("payload"); {full_message: "Project ID: " + project_id + "\n" + "Cluster Name: " + cluster_name + "\n" + "Location: " + cluster_location + "\n" + "Event Type: " + type_url + "\n" + "Message: " + message_data + "\n" + "Payload: " + std.manifestJson(std.parseJson(payload))}
Schließen Sie den Datenableichs-Editor, sobald die Zuordnung abgeschlossen ist. Alle Änderungen werden automatisch gespeichert.
Aufgabe „E-Mail senden” hinzufügen und konfigurieren
So konfigurieren Sie die Aufgabe "E-Mail senden":
- Wählen Sie im Integrationseditor Aufgaben aus, um die Liste der verfügbaren Aufgaben aufzurufen.
- Klicken Sie auf das Element E-Mail senden und platzieren Sie es im Integrationseditor.
- Wenn Sie eine Edge-Verbindung von der Aufgabe „Data Transformer“ zur Aufgabe „E-Mail senden“ hinzufügen möchten, bewegen Sie den Mauszeiger auf einen Steuerungspunkt in der Aufgabe „Data Transformer“ und ziehen Sie eine Linie zu einem Steuerungspunkt in der Aufgabe „E-Mail senden“. Der Edge kennzeichnet den Steuerungsfluss von der Aufgabe "Datenabgleich" zur Aufgabe "E-Mail senden".
- Klicken Sie im Designer auf das Element E-Mail senden, um den Konfigurationsbereich der Aufgabe zu öffnen. Legen Sie die folgenden Attribute fest:
- An Empfänger: Geben Sie eine E-Mail-Adresse ein. Mit dieser E-Mail bestätigen Sie den erfolgreichen Abschluss der Integration.
- Betreff: Geben Sie
GKE Notifications
ein. - Text in Nur-Text: Wählen Sie die Variable
full_message
aus, die zuvor in der Aufgabe Data Transformer erstellt wurde. - Die restlichen Optionen können in der Standardkonfiguration beibehalten werden.
Ihre Änderungen an den Attributen werden automatisch gespeichert. Ihr Canvas sollte in etwa so aussehen:
Integration testen
Wenn Sie die neue Integration testen möchten, klicken Sie oben im Integrationsdiagramm in der Navigationsleiste auf Testen. Daraufhin wird rechts ein Steuerfeld geöffnet. Sie können die folgende Beispiel-Pub/Sub-Nachricht im Abschnitt JSON-Wert hinzufügen verwenden:
{
"data": "Node pool projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool is upgrading to version 1.29.1-gke.1589017.",
"attributes": {
"cluster_location": "us-central1-c",
"cluster_name": "cluster-1",
"payload": "{\"resourceType\":\"NODE_POOL\",\"operation\":\"operation-upgrade\",\"operationStartTime\":\"2024-05-07T20:09:35.528855756Z\",\"currentVersion\":\"1.28.7-gke.1026000\",\"targetVersion\":\"1.29.1-gke.1589017\",\"resource\":\"projects/my-project/locations/us-central1-c/clusters/cluster-1/nodePools/default-pool\"}",
"project_id": "my-project",
"type_url": "type.googleapis.com/google.container.v1beta1.UpgradeEvent"
}
}
Nachdem Sie auf die Schaltfläche Integration testen geklickt haben, wird eine E-Mail an die E-Mail-Adresse gesendet, die Sie in der Aufgabe „E-Mail senden“ konfiguriert haben.
Integration veröffentlichen
Nachdem Sie diese Integration erfolgreich getestet haben, klicken Sie auf Veröffentlichen, damit die Nachrichten verarbeitet werden.
Sie können nur eine DRAFT
-Version der Integration bearbeiten und nur die ACTIVE
-Version der Integration ausführen. Wenn Sie die Integration bearbeiten möchten, klicken Sie auf der Seite „Integrationsdesigner“ auf Bearbeitung aktivieren und erstellen Sie dann eine Entwurfsversion. Weitere Informationen finden Sie unter Bearbeitungssperren für Integrationen.
Bereinigen
Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.
Projekt löschen
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Einzelne Ressourcen löschen
Nächste Schritte
- Mehr über die Arten von Clusterbenachrichtigungen erfahren
- Weitere Informationen finden Sie in der Pub/Sub-Dokumentation.