Benachrichtigungen: Verfügbarkeitsdiagnosen für Pub/Sub-Themen

Benachrichtigungen:
Verfügbarkeitsdiagnosen für Pub/Sub-Themen

Informationen zu diesem Codelab

subjectZuletzt aktualisiert: Juli 7, 2023
account_circleVerfasst von Aron Eidelman

1. Einführung

Zuletzt aktualisiert:21. Juni 2023

Benachrichtigungen für Verfügbarkeitsdiagnosen

Mit Benachrichtigungen für Verfügbarkeitsdiagnosen können Sie Probleme, die sich auf Ihre Dienste auswirken könnten, schnell erkennen und beheben. Indem Sie über Ausfälle informiert werden, können Sie Maßnahmen ergreifen, um die Auswirkungen auf Ihre Nutzer und Kunden zu minimieren.

Verfügbarkeitsdiagnosen finden in Intervallen statt, wobei kürzer als 60 Sekunden sind. Es kann nützlich sein, Fehlercodes auch als dynamische Ereignisse über logbasierte Benachrichtigungen als zusätzlichen Indikator für Nichtverfügbarkeit zu überwachen, wenn Sie einen Detaillierungsgrad über 60 Sekunden benötigen. Wenn ein Intervall von 60 Sekunden oder mehr akzeptabel ist, stellen Verfügbarkeitsdiagnosen eine einfache Möglichkeit dar, Ihren Dienst mit wenig zusätzlicher Konfiguration zu messen.

Wenn ein Dienst nicht verfügbar ist, wird das Problem durch eine Verfügbarkeitsdiagnose erkannt, auch wenn kein Traffic vorhanden ist. Der Verkehr kann hingegen durch Faktoren wie Wartung, Upgrades und sogar systematische Faktoren wie schlechtes Wetter oder Sportereignisse beeinflusst werden, die die Nutzung ablenken.

Weitere Informationen zur Verwendung von Verfügbarkeitsdiagnosen finden Sie unter Verfügbarkeitsdiagnosen sicherstellen.

Pub/Sub-Themen als Kanal für Benachrichtigungen

Ein Pub/Sub-Thema kann als Google Cloud Monitoring-Benachrichtigungskanal verwendet werden, um Benachrichtigungen an ein Pub/Sub-Abo zu senden. So können Sie Cloud Monitoring-Benachrichtigungen in andere Systeme einbinden, einschließlich Benachrichtigungsdiensten von Drittanbietern.

Wenn Sie ein Pub/Sub-Thema als Benachrichtigungskanal verwenden möchten, müssen Sie zuerst ein Pub/Sub-Thema und ein Pub/Sub-Abo erstellen. Anschließend müssen Sie einen Cloud Monitoring-Benachrichtigungskanal erstellen, der das Pub/Sub-Thema als Ziel verwendet.

Wenn eine Benachrichtigung ausgelöst wird, sendet Cloud Monitoring eine Nachricht an das Pub/Sub-Thema. Der Abonnent des Pub/Sub-Abos kann die Nachricht dann verarbeiten und entsprechende Maßnahmen ergreifen.

Inhalt

In diesem Codelab stellen Sie eine Anwendung bereit, erstellen ein Pub/Sub-Thema und erstellen eine Verfügbarkeitsdiagnosen-Benachrichtigung für die Anwendung, die das Pub/Sub-Thema als Benachrichtigungskanal verwendet.

Aufgaben in diesem Lab

  • Pub/Sub-Thema erstellen
  • Verfügbarkeitsdiagnose und Benachrichtigung erstellen

In diesem Codelab geht es vor allem um das Erstellen von Benachrichtigungen für eine Verfügbarkeitsdiagnose. Nicht relevante Konzepte und Anwendungscode werden nicht berücksichtigt und können einfach kopiert und eingefügt werden.

Voraussetzungen

  • Ein Google Cloud-Konto mit Berechtigungen für Folgendes:
  • Cloud Run-Anwendungen bereitstellen
  • Pub/Sub-Themen erstellen
  • Verfügbarkeitsdiagnosen erstellen
  • Benachrichtigungen erstellen

2. Einrichtung

Google Cloud-Projekt auswählen oder erstellen

Wählen Sie über das Drop-down-Menü ein vorhandenes Projekt aus:

b35bf95b8bf3d5d8.png

So erstellen Sie ein neues Projekt in Google Cloud:

  1. Rufen Sie die Google Cloud Platform Console auf.
  2. Klicken Sie auf die Schaltfläche Projekt erstellen.
  3. Geben Sie einen Namen für Ihr Projekt an.
  4. Wählen Sie ein Rechnungskonto für Ihr Projekt aus.
  5. Klicken Sie auf Erstellen.

Ihr Projekt wird erstellt und Sie werden zum Projekt-Dashboard weitergeleitet. Von dort aus können Sie Google Cloud-Dienste verwenden.

Weitere Informationen zu den einzelnen Schritten:

  • Name:Der Name des Projekts darf innerhalb Ihrer Organisation nur einmal vorkommen.
  • Rechnungskonto:Sie können ein vorhandenes Rechnungskonto verwenden oder ein neues erstellen.
  • Erstellen:Wenn Sie alle erforderlichen Informationen eingegeben haben, klicken Sie auf Erstellen, um Ihr Projekt zu erstellen.

Weitere Informationen finden Sie in der Google Cloud-Dokumentation zum Erstellen von Projekten.

3. API-Anwendung bereitstellen

Worum geht es bei der Beispielanwendung oder API?

Bei unserer Anwendung handelt es sich um eine einfache Inventar-API-Anwendung, die einen REST API-Endpunkt mit einigen Vorgängen zur Auflistung der Inventarartikel und zum Abrufen bestimmter Artikelinventarzahlen bereitstellt.

Sobald wir die API bereitstellen und davon ausgehen, dass sie auf https://<somehost> gehostet wird, können wir wie folgt auf die API-Endpunkte zugreifen:

https://<somehost>/inventory

Daraufhin werden alle Produktartikel mit den verfügbaren Inventarebenen angezeigt.

https://<somehost>/inventory/{productid}

Dadurch erhalten Sie einen einzigen Datensatz mit der productid und dem verfügbaren Lagerbestand für dieses Produkt.

Die zurückgegebenen Antwortdaten haben das JSON-Format.

Hinweis: Diese API-Anwendung dient nur zu Demozwecken und stellt keine sichere und robuste API-Implementierung dar. Es soll uns eine schnelle Anwendung zur Verfügung stehen, mit der wir den Hauptzweck des Labs, nämlich Google Cloud Operations, näher kennenlernen können.

Beispieldaten und API-Anfrage/-Antwort

Aus Gründen der Einfachheit wird die Anwendung nicht durch eine Datenbank am Back-End betrieben. Es enthält drei Beispiel-Produkt-IDs und die entsprechenden Inventarebenen.

Produkt-ID

Aktueller Bestand

I-1

10

I-2

20

I-3

30

Im Folgenden finden Sie ein Beispiel für eine API-Anfrage und eine API-Antwort:

API-Anfrage

API-Antwort

https://&lt;somehost&gt;/inventory

[ { &quot;I-1&quot;: 10, &quot;I-2&quot;: 20, &quot;I-3&quot;: 30 }]

https://&lt;somehost&gt;/inventory/I-1

{ &quot;productid&quot;: &quot;I-1&quot;, &quot;qty&quot;: 10}

https://&lt;somehost&gt;/inventory/I-2

{ &quot;productid&quot;: &quot;I-2&quot;, &quot;qty&quot;: 20}

https://&lt;somehost&gt;/inventory/I-200

{ &quot;productid&quot;: I-200, &quot;qty&quot;: -1}

Repository klonen

Sie können Google Cloud zwar von Ihrem Laptop aus aus der Ferne bedienen, in diesem Codelab verwenden Sie jedoch Google Cloud Shell, eine Befehlszeilenumgebung, die in der Cloud ausgeführt wird.

Klicken Sie in der GCP Console oben rechts in der Symbolleiste auf das Cloud Shell-Symbol:

bce75f34b2c53987.png

Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:

f6ef2b5f13479f3a.png

Diese virtuelle Maschine verfügt über alle Entwicklungstools, die Sie benötigen. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud, wodurch die Netzwerkleistung und Authentifizierung erheblich verbessert werden. Sie können alle Aufgaben in diesem Lab ganz einfach in einem Browser erledigen.

gcloud einrichten

Legen Sie in Cloud Shell Ihre Projekt-ID fest und speichern Sie sie als Variable PROJECT_ID.

PROJECT_ID=[YOUR-PROJECT-ID]

gcloud config set project $PROJECT_ID

Führen Sie nun den folgenden Befehl aus:

$ git clone https://github.com/rominirani/cloud-code-sample-repository.git

In diesem Ordner wird ein Ordner mit dem Namen cloud-code-sample-repository erstellt.

(Optional) Anwendung in Cloud Shell ausführen

So können Sie die Anwendung lokal ausführen:

  1. Rufen Sie im Terminal mit dem folgenden Befehl die Python-Version der API auf:

$ cd cloud-code-sample-repository

$ cd python-flask-api

  1. Geben Sie im Terminal den folgenden Befehl ein. Zum Zeitpunkt der Erstellung dieses Dokuments ist Python 3.9.x in Cloud Shell installiert und wir verwenden die Standardversion. Wenn Sie es lokal auf Ihrem Laptop ausführen möchten, können Sie Python ab Version 3.8 verwenden:

$ python app.py

  1. Mit dem folgenden Befehl können Sie den Python-Server lokal starten.

1f798fbddfdc2c8e.png 46edf454cc70c5a6.png

Klicken Sie auf „Preview“ (Vorschau auf Port 8080). 5. Dadurch wird ein Browserfenster geöffnet. Sie erhalten einen 404-Fehler und das ist in Ordnung. Ändern Sie die URL so, dass „/inventory“ nach dem Hostnamen angezeigt wird.

Beispiel: auf meinem Computer sieht, sie so aus:

https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory

Dadurch wird die Liste der Inventarelemente wie zuvor erläutert angezeigt:

709d57ee2f0137e4.png

  1. Sie können den Server jetzt beenden, indem Sie zum Terminal wechseln und Strg + C drücken.

Anwendung bereitstellen

Diese API-Anwendung wird jetzt in Cloud Run bereitgestellt. Dazu wurde der gcloud-Befehlszeilenclient verwendet, um den Befehl zum Bereitstellen des Codes in Cloud Run auszuführen.

Geben Sie im Terminal den folgenden gcloud-Befehl ein:

$ gcloud run deploy --source .

Dabei werden Ihnen mehrere Fragen gestellt. Einige der Punkte sind unten aufgeführt:

  1. Dienstname (python-flask-api): Wählen Sie entweder diesen Standardwert oder einen Wert wie „my-inventory-api“ aus.
  2. Die API [run.googleapis.com] ist im Projekt [613162942481] nicht aktiviert. Möchtest du die Funktion aktivieren und es noch einmal versuchen (dies kann einige Minuten dauern)? (j/N)? Ja
  3. Bitte geben Sie eine Region an: Wählen Sie 31 (us-west-1) aus
  4. Die API [ArtifactRegistry.googleapis.com] ist im Projekt [613162942481] nicht aktiviert. Möchtest du die Funktion aktivieren und es noch einmal versuchen (dies kann einige Minuten dauern)? (j/N)? Ja
  5. Für die Bereitstellung aus der Quelle ist ein Artifact Registry-Docker-Repository erforderlich, um erstellte Container zu speichern. Ein Repository mit dem Namen [cloud-run-source-deploy] in der Region [us-west1] wird erstellt.
  6. Do you want to continue (Y/n)? Ja
  7. Nicht authentifizierte Aufrufe für [my-inventory-api] (y/N) zulassen? Ja

Dadurch wird der Prozess gestartet, in dem der Quellcode übernommen, containerisiert, per Push in Artifact Registry übertragen und dann Cloud Run-Dienst und -Überarbeitung bereitgestellt wird. Sie sollten bei diesem Vorgang geduldig sein (der Vorgang kann 3–4 Minuten dauern) und der Vorgang wird mit der angezeigten Service-URL abgeschlossen.

Hier ein Beispiel für eine Ausführung:

87ba8dbf88e8cfa4.png

Anwendung testen

Nachdem die Anwendung in Cloud Run bereitgestellt wurde, können Sie so auf die API-Anwendung zugreifen:

  1. Notieren Sie sich die Service-URL aus dem vorherigen Schritt. In meiner Einrichtung wird sie beispielsweise als https://my-inventory-api-bt2r5243dq-uw.a.run.app angezeigt. Nennen wir sie <SERVICE_URL>.
  2. Öffnen Sie einen Browser und greifen Sie auf die folgenden drei URLs für die API-Endpunkte zu:
  3. <SERVICE_URL>/inventory
  4. <SERVICE_URL>/inventory/I-1
  5. <SERVICE_URL>/inventory/I-100

Sie sollte den Spezifikationen entsprechen, die wir in einem vorherigen Abschnitt mit Beispiel-API-Anfrage und -Antwort bereitgestellt haben.

Dienstdetails aus Cloud Run abrufen

Wir haben unseren API-Dienst in Cloud Run bereitgestellt, einer serverlosen Computing-Umgebung. Wir können den Cloud Run-Dienst jederzeit über die Google Cloud Console aufrufen.

Gehen Sie vom Hauptmenü zu Cloud Run. Daraufhin wird die Liste der Dienste angezeigt, die Sie in Cloud Run ausgeführt haben. Sie sollten den Dienst sehen, den Sie gerade bereitgestellt haben. Je nach ausgewähltem Namen sollte Folgendes angezeigt werden:

2633965c4bc957cc.png

Klicken Sie auf den Dienstnamen, um die Details aufzurufen. Hier die Beispieldetails:

33042ae64322ce07.png

Beachten Sie die URL, die nichts anderes als die Dienst-URL ist, die Sie in den Browser eingeben und auf die gerade bereitgestellte Inventar-API zugreifen können. Sehen Sie sich Messwerte und andere Details an.

Beginnen wir jetzt mit der Google Cloud Operations Suite.

4. Pub/Sub-Thema erstellen, um die Benachrichtigung zu erhalten

In der Google Cloud Console können Sie so vorgehen, um ein Pub/Sub-Thema zu erstellen:

  1. Suchen Sie im Suchfeld nach Pub/Sub und gehen Sie zu Pub/Sub. 935028bd8f6328ef.png
  2. Klicken Sie auf den Tab Themen, sofern Sie dies noch nicht getan haben. 7fd8bf91386a88fd.png
  3. Klicken Sie auf die Schaltfläche Thema erstellen. cd9d197f9023c41b.png
  4. Geben Sie einen Namen für Ihr Thema ein.

173f313b4a3c4934.png

  1. Klicken Sie auf Erstellen. ca9a02477da21a44.png
  2. Kopieren Sie den Namen des Themas mithilfe der Symbolschaltfläche „Kopieren“. Sie benötigen ihn für den nächsten Abschnitt.

20848252ee83df93.png

5. Verfügbarkeitsdiagnose erstellen

So erstellen Sie eine Verfügbarkeitsdiagnose für eine Google Cloud Run-Anwendung:

  1. Rufen Sie die Google Cloud Platform Console auf.
  2. Klicken Sie auf den Tab Monitoring.
  3. Klicken Sie auf den Tab Verfügbarkeitsdiagnosen.
  4. Klicken Sie oben auf der Seite auf die Schaltfläche Verfügbarkeitsdiagnose erstellen.

96561799ca500777.png

  1. Verwenden Sie die folgenden Werte:
  2. Protokoll : HTTPS
  3. Ressourcentyp : URL
  4. Hostname : Geben Sie den URL-Teil des Cloud Run-Dienstes ohne HTTPS ein. Im Bildschirm unten sehen Sie ein Beispiel. Wenn Sie sich nicht sicher sind, wie die Dienst-URL lautet, rufen Sie Cloud Run über die Google Cloud Console auf. Gehen Sie dann wie oben beschrieben zu den Details des Cloud Run-Dienstes, um die Dienst-URL abzurufen.
  5. Pfad : healthy
  6. Häufigkeit der Prüfung: 1 Minute

342865c6d921ff41.png

  1. Klicken Sie auf Weiter.
  2. Aktivieren Sie die Option Inhaltsabgleich ist aktiviert.
  3. Gib „All Izz Well“ ein unter Antwortinhalt aus: Diese Zeichenfolge ist bereits in der Anwendung vorhanden, wenn sie vollständige Antworten sendet.
  4. Notizen

6c9ad336b5479478.png

  1. Lassen Sie Acceptable HTTP Response Code auf Response Code Classes und 2xx als einzige Antwortcodeklasse eingestellt. Auf diese Weise werden nur Antwortcodes mit 2xx für die Zeichenfolge ausgewertet. Alles andere wird automatisch als fehlgeschlagene Prüfung gezählt. 5a75d8a9e8a11dd4.png
  2. Klicken Sie auf Weiter.
  3. Wählen Sie das Cloud Pub/Sub-Thema als Benachrichtigungskanal aus und klicken Sie auf OK.

d00db9f6ac56d07c.png

  1. Klicken Sie auf Weiter.
  2. Füge einen erkennbaren Titel hinzu d639135da780cce3.png
  3. Klicken Sie auf die Schaltfläche Test (Testen).

968753a66ed43a75.png

  1. Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Create (Erstellen). 72e5e2081a36d902.png

Die Verfügbarkeitsdiagnose wird erstellt und beginnt mit dem Monitoring Ihrer Cloud Run-Anwendung. Sie können den Status Ihrer Verfügbarkeitsdiagnose auf dem Tab Verfügbarkeitsdiagnosen ansehen.

3fd026b0c07ef4ec.png

6. Glückwunsch

Die Verfügbarkeitsdiagnose wurde so konfiguriert, dass Benachrichtigungen an Pub/Sub gesendet werden.