Informationen zu diesem Codelab
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:
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. 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://<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
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:
Die Bereitstellung und Verbindung mit der Umgebung dauert nur einen Moment. Wenn er abgeschlossen ist, sollten Sie in etwa Folgendes sehen:
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:
- 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 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
- Mit dem folgenden Befehl können Sie den Python-Server lokal starten.
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:
- 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:
- Dienstname (python-flask-api): Wählen Sie entweder diesen Standardwert oder einen Wert wie „my-inventory-api“ aus.
- 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
- Bitte geben Sie eine Region an: Wählen Sie 31 (us-west-1) aus
- 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
- 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.
- Do you want to continue (Y/n)? Ja
- 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:
Anwendung testen
Nachdem die Anwendung in Cloud Run bereitgestellt wurde, können Sie so auf die API-Anwendung zugreifen:
- 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>
. - Öffnen Sie einen Browser und greifen Sie auf die folgenden drei URLs für die API-Endpunkte zu:
<SERVICE_URL>/inventory
<SERVICE_URL>/inventory/I-1
<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:
Klicken Sie auf den Dienstnamen, um die Details aufzurufen. Hier die Beispieldetails:
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:
- Suchen Sie im Suchfeld nach Pub/Sub und gehen Sie zu Pub/Sub.
- Klicken Sie auf den Tab Themen, sofern Sie dies noch nicht getan haben.
- Klicken Sie auf die Schaltfläche Thema erstellen.
- Geben Sie einen Namen für Ihr Thema ein.
- Klicken Sie auf Erstellen.
- Kopieren Sie den Namen des Themas mithilfe der Symbolschaltfläche „Kopieren“. Sie benötigen ihn 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 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.
- Pfad : healthy
- Häufigkeit der Prüfung: 1 Minute
- Klicken Sie auf Weiter.
- Aktivieren Sie die Option Inhaltsabgleich ist aktiviert.
- Gib „All Izz Well“ ein unter Antwortinhalt aus: Diese Zeichenfolge ist bereits in der Anwendung vorhanden, wenn sie vollständige Antworten sendet.
- Notizen
- 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.
- Klicken Sie auf Weiter.
- Wählen Sie das Cloud Pub/Sub-Thema als Benachrichtigungskanal aus und klicken Sie auf OK.
- Klicken Sie auf Weiter.
- Füge einen erkennbaren Titel hinzu
- Klicken Sie auf die Schaltfläche Test (Testen).
- Wenn Sie fertig sind, klicken Sie auf die Schaltfläche Create (Erstellen).
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.
6. Glückwunsch
Die Verfügbarkeitsdiagnose wurde so konfiguriert, dass Benachrichtigungen an Pub/Sub gesendet werden.