1. Einführung
Zuletzt aktualisiert:21. Juni 2023
Benachrichtigungen für Verfügbarkeitsdiagnosen
Durch Benachrichtigungen zu Uptime-Prüfungen können Sie Probleme, die sich auf Ihre Dienste auswirken, schnell erkennen und beheben. Wenn Sie über Ausfälle benachrichtigt werden, können Sie Maßnahmen ergreifen, um die Auswirkungen auf Ihre Nutzer und Kunden zu minimieren.
Uptime-Prüfungen erfolgen in Intervallen, wobei das kürzeste Intervall 60 Sekunden beträgt. Es kann auch sinnvoll sein, Fehlercodes als dynamische Ereignisse über logbasierte Benachrichtigungen zu überwachen, um die Nichtverfügbarkeit genauer als alle 60 Sekunden zu erfassen. Wenn ein Intervall von 60 Sekunden oder länger akzeptabel ist, sind Uptime-Prüfungen eine einfache Möglichkeit, 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 Traffic kann dagegen durch Faktoren wie Wartung, Upgrades und sogar externe Faktoren wie schlechtes Wetter oder Sportveranstaltungen beeinflusst werden, die die Nutzung beeinträchtigen.
Weitere Informationen dazu, wann Uptime-Prüfungen verwendet werden sollten, finden Sie unter Uptime Ihrer Google Cloud-Ressourcen sicherstellen.
Pub/Sub-Themen als Benachrichtigungskanal 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 Ihre Cloud Monitoring-Benachrichtigungen in andere Systeme einbinden, einschließlich Benachrichtigungsdienste 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.
Umfang
In diesem Codelab stellen Sie eine App bereit, erstellen ein Pub/Sub-Thema und erstellen eine Uptime-Check-Benachrichtigung für die App, die das Pub/Sub-Thema als Benachrichtigungskanal verwendet.
Lerninhalte
- Pub/Sub-Thema erstellen
- Verfügbarkeitsdiagnose und Benachrichtigung erstellen
In diesem Codelab geht es darum, eine Benachrichtigung für eine Verfügbarkeitsdiagnose zu erstellen. Auf irrelevante Konzepte und Anwendungscode wird nicht genauer eingegangen und entsprechende Codeblöcke können Sie einfach kopieren und einfügen.
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
So wählen Sie ein vorhandenes Projekt aus:

So erstellen Sie ein neues Projekt in Google Cloud:
- Rufen Sie die Google Cloud Platform Console auf.
- Klicken Sie auf die Schaltfläche Projekt erstellen.
- Geben Sie einen Namen für Ihr Projekt an.
- Wählen Sie ein Rechnungskonto für Ihr Projekt aus.
- Klicken Sie auf Erstellen.
Ihr Projekt wird erstellt und Sie werden zum Projekt-Dashboard weitergeleitet. Anschließend können Sie Google Cloud-Dienste verwenden.
Hier finden Sie weitere Informationen zu den einzelnen Schritten:
- Name:Der Name Ihres Projekts muss innerhalb Ihrer Organisation eindeutig sein.
- Rechnungskonto:Sie können ein vorhandenes Rechnungskonto verwenden oder ein neues erstellen.
- Erstellen:Wenn Sie alle erforderlichen Informationen eingegeben haben, klicken Sie auf die Schaltfläche 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 in der Beispielanwendung oder ‑API?
Unsere Anwendung ist eine einfache Inventory API-Anwendung, die einen REST API-Endpunkt mit einigen Vorgängen zum Auflisten der Inventargegenstände und zum Abrufen der Inventaranzahl für einen bestimmten Artikel bereitstellt.
Nachdem wir die API bereitgestellt haben und davon ausgehen, dass sie unter https://<somehost> gehostet wird, können wir auf die API-Endpunkte wie folgt zugreifen:
https://<somehost>/inventory
Hier werden alle Artikel mit den verfügbaren Inventarbeständen aufgeführt.
https://<somehost>/inventory/{productid}
So erhalten Sie einen einzelnen Datensatz mit der Produkt-ID 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. Wir wollten eine schnelle Anwendung zur Verfügung haben, um den Hauptzweck des Labs zu untersuchen, nämlich Google Cloud Operations.
Beispieldaten und API-Anfrage/-Antwort
Die Anwendung wird nicht von einer Datenbank im Backend unterstützt, um die Dinge einfach zu halten. Sie enthält drei Beispiel-Produkt-IDs und die entsprechenden Lagerbestände.
Produkt-ID | Verfügbares Inventar |
I-1 | 10 |
I-2 | 20 |
I-3 | 30 |
Im Folgenden finden Sie ein Beispiel für eine API-Anfrage und ‑Antwort:
API-Anfrage | API-Antwort |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Repository klonen
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 GCP Console oben rechts 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:

Auf dieser virtuellen Maschine sind alle Entwicklungstools installiert, 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. Für dieses Lab benötigen Sie lediglich einen Browser.
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
Dadurch wird in diesem Ordner ein Ordner mit dem Namen „cloud-code-sample-repository“ erstellt.
(Optional) Anwendung in Cloud Shell ausführen
So führen Sie die Anwendung lokal aus:
- Rufen Sie im Terminal mit dem folgenden Befehl die Python-Version der API auf:
$ cd cloud-code-sample-repository
$ cd python-flask-api
- Geben Sie im Terminal den folgenden Befehl ein. Zum Zeitpunkt der Erstellung dieses Dokuments ist Python 3.9.x in Cloud Shell installiert. Wir verwenden die Standardversion. Wenn Sie die Anwendung lokal auf Ihrem Laptop ausführen möchten, können Sie Python 3.8+ verwenden:
$ python app.py
- Mit dem folgenden Befehl können Sie den Python-Server lokal starten.

Klicken Sie auf „Vorschau auf Port 8080“. 5. Dadurch wird ein Browserfenster geöffnet. Es wird ein 404-Fehler angezeigt. Das ist in Ordnung. Ändern Sie die URL so, dass nach dem Hostnamen nur noch „/inventory“ steht.
Auf meinem Computer sieht das z.B. so aus:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Daraufhin wird die Liste der Inventarelemente wie oben beschrieben angezeigt:

- Sie können den Server jetzt beenden, indem Sie zum Terminal wechseln und Strg+C drücken.
Anwendung bereitstellen
Wir stellen diese API-Anwendung jetzt in Cloud Run bereit. Dabei 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:
- Dienstname (python-flask-api): Sie können entweder diesen Standardnamen verwenden oder einen anderen Namen wie „my-inventory-api“ auswählen.
- API [run.googleapis.com] not enabled on project [613162942481]. Möchten Sie die Funktion aktivieren und es noch einmal versuchen? Das kann einige Minuten dauern. (y/N)? J
- Geben Sie eine Region an: Wählen Sie 31 (us-west-1) aus.
- API [artifactregistry.googleapis.com] not enabled on project [613162942481]. Möchten Sie die Funktion aktivieren und es noch einmal versuchen? Das kann einige Minuten dauern. (y/N)? J
- Für die Bereitstellung aus der Quelle ist ein Artifact Registry-Docker-Repository zum Speichern erstellter Container erforderlich. Ein Repository mit dem Namen [cloud-run-source-deploy] in der Region [us-west1] wird erstellt.
- Do you want to continue (Y/n)? J
- Allow unauthenticated invocations to [my-inventory-api] (y/N)? (Nicht authentifizierte Aufrufe für [my-inventory-api] zulassen?) J
Dadurch wird schließlich der Prozess gestartet, mit dem Ihr Quellcode containerisiert, per Push in Artifact Registry übertragen und dann der Cloud Run-Dienst + die Revision bereitgestellt werden. Dieser Vorgang kann 3 bis 4 Minuten dauern. Wenn er abgeschlossen ist, wird die Dienst-URL angezeigt.
Ein Beispiel für einen Lauf sehen Sie unten:

Anwendung testen
Nachdem wir die Anwendung in Cloud Run bereitgestellt haben, können Sie wie folgt auf die API-Anwendung zugreifen:
- Notieren Sie sich die Dienst-URL aus dem vorherigen Schritt. In meiner Einrichtung wird es beispielsweise als
https://my-inventory-api-bt2r5243dq-uw.a.run.appangezeigt. Wir nennen sie<SERVICE_URL>. - Öffnen Sie einen Browser und rufen Sie die folgenden drei URLs für die API-Endpunkte auf:
<SERVICE_URL>/inventory<SERVICE_URL>/inventory/I-1<SERVICE_URL>/inventory/I-100
Sie sollte den Spezifikationen entsprechen, die wir in einem früheren 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.
Rufen Sie im Hauptmenü Cloud Run auf. Daraufhin wird die Liste der Dienste angezeigt, die in Cloud Run ausgeführt werden. Sie sollten den Dienst sehen, den Sie gerade bereitgestellt haben. Je nach ausgewähltem Namen sollte die Ausgabe etwa so aussehen:

Klicken Sie auf den Dienstnamen, um die Details aufzurufen. Die Beispieldetails sind unten aufgeführt:

Die URL ist nichts anderes als die Dienst-URL, die Sie in den Browser eingeben können, um auf die gerade bereitgestellte Inventory API zuzugreifen. Messwerte und andere Details ansehen
Beginnen wir jetzt mit der Google Cloud Operations Suite.
4. Pub/Sub-Thema zum Empfangen der Benachrichtigung erstellen
So erstellen Sie ein Pub/Sub-Thema in der Google Cloud Console:
- Suchen Sie im Suchfeld nach Pub/Sub und rufen Sie Pub/Sub auf.

- Klicken Sie auf den Tab Themen, falls Sie sich noch nicht dort befinden.

- Klicken Sie auf den Button Thema erstellen.

- Geben Sie einen Namen für das Thema ein.

- Klicken Sie auf die Schaltfläche Erstellen.

- Kopieren Sie den Themennamen mit der Schaltfläche „Kopiersymbol“. Sie benötigen sie für den nächsten Abschnitt.

5. Verfügbarkeitsdiagnose erstellen
So erstellen Sie eine Verfügbarkeitsdiagnose für eine Google Cloud Run-Anwendung:
- Rufen Sie die Google Cloud Platform Console auf.
- Klicken Sie auf den Tab Monitoring.
- Klicken Sie auf den Tab Verfügbarkeitsdiagnosen.
- Klicken Sie oben auf der Seite auf die Schaltfläche Verfügbarkeitsdiagnose erstellen.

- Verwenden Sie die folgenden Werte:
- Protokoll : HTTPS
- Ressourcentyp : URL
- Hostname : Geben Sie den Cloud Run-Dienst-URL-Teil ohne https ein. Ein Beispiel sehen Sie auf dem Bildschirm unten. Wenn Sie sich nicht sicher sind, wie die Dienst-URL lautet, rufen Sie Cloud Run über die Hauptseite der Google Cloud Console auf und rufen Sie die Details des Cloud Run-Dienstes wie oben beschrieben auf, um die Dienst-URL zu erhalten.
- Pfad : healthy
- Diagnosehäufigkeit: 1 Minute

- Klicken Sie auf Weiter.
- Aktivieren Sie Inhaltsabgleich ist aktiviert.
- Geben Sie unter Response Content (Inhalt der Antwort) „All Izz Well“ ein. Dieser String ist bereits in der Anwendung enthalten, wenn vollständige Antworten gesendet werden.
- Notizen

- Lassen Sie Zulässiger HTTP-Antwortcode auf Antwortcodeklassen und 2xx als einzige Antwortcodeklasse eingestellt. So werden nur Antwortcodes mit 2xx für den String ausgewertet. Alle anderen gelten automatisch als fehlgeschlagene Prüfung.

- Klicken Sie auf Weiter.
- Wählen Sie das Cloud Pub/Sub-Thema als Benachrichtigungskanal aus und klicken Sie auf OK.

- Klicken Sie auf Weiter.
- Einen aussagekräftigen Titel hinzufügen

- Klicken Sie auf die Schaltfläche Testen.

- Überprüfen Sie die Einstellungen und klicken Sie auf die Schaltfläche Erstellen.

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

6. Glückwunsch
Sie haben Ihre Verfügbarkeitsdiagnose erfolgreich so konfiguriert, dass Benachrichtigungen an Pub/Sub gesendet werden.