Cluster so konfigurieren, dass Benachrichtigungen per E-Mail empfangen werden


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. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the GKE, Application Integration and Pub/Sub APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the GKE, Application Integration and Pub/Sub APIs.

    Enable the APIs

  8. Aktivieren Sie GKE-Clusterbenachrichtigungen.
  9. 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:

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:

  1. Rufen Sie in der Google Cloud Console die Seite Application Integration auf.

    Zu „Application Integration“

  2. Klicken Sie im Navigationsmenü auf Integrationen. Die Seite Integrationen wird angezeigt.

  3. Klicken Sie auf Integration erstellen.

  4. Geben Sie unter Name der Integration einen Namen für die Integration ein, die Sie erstellen.

  5. 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.

  6. 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:

  1. Wählen Sie im Integrationseditor Trigger aus, um eine Liste der verfügbaren Trigger aufzurufen.

  2. Klicken Sie auf das Element Pub/Sub-Trigger und platzieren Sie es im Designer.

  3. Klicken Sie im Integrationseditor auf das Element Pub/Sub-Trigger, um den Trigger-Konfigurationsbereich aufzurufen.

  4. 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 Thema gke-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":

  1. Wählen Sie Aufgaben aus, um eine Liste der verfügbaren Aufgaben anzuzeigen.

  2. Klicken Sie auf das Element Datenabgleich und platzieren Sie es im Integrationsdesigner.

  3. Klicken Sie im Designer auf die Aufgabe Datenabgleich, um den Konfigurationsbereich der Aufgabe zu öffnen.

  4. 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“.

  5. 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:

    1. Maximieren Sie die JSON-Variable CloudPubSubMessage in der Liste der Variablen und ziehen Sie die Variable CloudPubSubMessage.data in die erste Eingabe-Zeile.
    2. 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:
      1. Geben Sie im Feld Name message_data ein.
      2. Wählen Sie in der Liste Variablentyp die Option Ausgabe aus Integration aus.
      3. Wählen Sie in der Liste Datentyp die Option String aus.
      4. Klicken Sie auf Erstellen. Die Variable message_data wird unter Ausgabe angezeigt.
    3. Ziehen Sie die Variable CloudPubSubMessage.attributes aus der Liste Variablen in die zweite Zeile der Eingabespalte.
    4. 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:

      1. Geben Sie im Feld Name attributes ein.
      2. Wählen Sie in der Liste Variablentyp die Option Kein aus.
      3. Wählen Sie in der Liste Datentyp die Option JSON aus.
      4. 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"
            }
          }
        }
        
      5. Klicken Sie auf Erstellen. Die Variable attributes wird unter Ausgabe angezeigt. Die Variable „attributes“ sollte in etwa so aussehen:

        Lokale Variablen in Application Integration

    5. 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.

    6. 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:

      1. Geben Sie im Feld Name cluster_name ein.
      2. Wählen Sie in der Liste Variablentyp die Option Ausgabe aus Integration aus.
      3. Wählen Sie in der Liste Datentyp die Option String aus.
      4. Klicken Sie auf Erstellen. Die Variable cluster_name wird unter Ausgabe angezeigt.
    7. Wiederholen Sie die Schritte e und f für project_id, cluster_location, type_url und payload.

    8. Schließen Sie den Datenableichs-Editor, sobald die Zuordnung abgeschlossen ist. Alle Änderungen werden automatisch gespeichert.

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:

  1. Wählen Sie Aufgaben aus, um eine Liste der verfügbaren Aufgaben anzuzeigen.
  2. Klicken Sie auf das Element Data Transformer (Script) und platzieren Sie es im Integrationseditor.
  3. Klicken Sie im Designer auf die Aufgabe Data Transformer, um den Konfigurationsbereich der Aufgabe zu öffnen.
  4. 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“.
  5. 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:

    1. 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.
    2. Wählen Sie Script aus.

    3. 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))}
      
    4. 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":

  1. Wählen Sie im Integrationseditor Aufgaben aus, um die Liste der verfügbaren Aufgaben aufzurufen.
  2. Klicken Sie auf das Element E-Mail senden und platzieren Sie es im Integrationseditor.
  3. 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".
  4. Klicken Sie im Designer auf das Element E-Mail senden, um den Konfigurationsbereich der Aufgabe zu öffnen. Legen Sie die folgenden Attribute fest:
    1. An Empfänger: Geben Sie eine E-Mail-Adresse ein. Mit dieser E-Mail bestätigen Sie den erfolgreichen Abschluss der Integration.
    2. Betreff: Geben Sie GKE Notifications ein.
    3. Text in Nur-Text: Wählen Sie die Variable full_message aus, die zuvor in der Aufgabe Data Transformer erstellt wurde.
    4. 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:

Canvas „Application Integration“

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Einzelne Ressourcen löschen

  1. Löschen Sie Application Integration.

  2. Löschen Sie Ihr Pub/Sub-Thema.

Nächste Schritte