In dieser Anleitung wird beschrieben, wie Sie nicht abgefangene Ausnahmen in der Anleitung Erste Schritte mit Python mithilfe der Google Cloud -Konsole melden und verfolgen.
Error Reporting bietet ein zentrales Dashboard, das die Anzahl der einzelnen Fehler, Stacktraces und einen Verlauf der Vorkommen anzeigt. Sie können auch eine Benachrichtigung einrichten, wenn Fehler auftreten.
Diese Seite ist Teil einer mehrseitigen Anleitung. Wechseln Sie zur Python Bookshelf App, um die Dokumentation von Anfang an durchzugehen und eine Anleitung zur Einrichtung zu erhalten.
Einstellungen konfigurieren
In diesem Abschnitt wird Code im Verzeichnis 5-logging verwendet. Bearbeiten Sie die Dateien und führen Sie Befehle in diesem Verzeichnis aus.
-
Öffnen Sie die Datei
config.pyzum Bearbeiten und ersetzen Sie die folgenden Werte: -
Legen Sie den Wert von
[PROJECT_ID]auf Ihre Projekt-ID fest, die in der Google Cloud Console angezeigt wird. -
Legen Sie für
[DATA_BACKEND]den Wert fest, den Sie in der Anleitung Strukturierte Daten verwenden verwendet haben. -
Wenn Sie Cloud SQL oder MongoDB verwenden, legen Sie im Abschnitt
Cloud SQLbzw.Mongodieselben Werte fest, die Sie auch im Schritt Strukturierte Daten verwenden angegeben haben. -
Legen Sie den Wert von
[CLOUD_STORAGE_BUCKET]auf den Namen Ihres Cloud Storage-Buckets fest. -
Legen Sie im Abschnitt
OAuth2 configurationdie Werte von[GOOGLE_OAUTH2_CLIENT_ID]und[GOOGLE_OAUTH2_CLIENT_SECRET]auf die Client-ID und das Secret der Anwendung fest, die Sie zuvor erstellt haben. - Speichern und schließen Sie die
config.py-Datei.
Wenn Sie Cloud SQL verwenden:
-
Öffnen Sie die Datei
app.yamlzur Bearbeitung. -
Setzen Sie den Wert von
cloudsql-instanceauf denselben Wert, der für[CLOUDSQL_CONNECTION_NAME]in der Dateiconfig.pyverwendet wird. Verwenden Sie das Formatproject:region:cloudsql-instance. Entfernen Sie die Kommentarzeichen für diese gesamte Zeile. - Speichern und schließen Sie die
app.yaml-Datei.
Abhängigkeiten installieren
Verwenden Sie die folgenden Befehle, um eine virtuelle Umgebung zu erstellen und Abhängigkeiten zu installieren:
Linux/macOS
virtualenv -p python3 env
source env/bin/activate
pip install -r requirements.txt
Windows
virtualenv -p python3 env
env\scripts\activate
pip install -r requirements.txt
App auf lokalem Computer ausführen
Starten Sie einen lokalen Webserver:
python main.pyGeben Sie im Browser die folgende Adresse ein:
http://localhost:8080
Drücken Sie Strg+C, um den Worker und dann den lokalen Webserver zu beenden.
App in der flexiblen App Engine-Umgebung bereitstellen
Stellen Sie die Beispiel-App bereit:
gcloud app deployGeben Sie im Webbrowser die folgende URL ein:
https://PROJECT_ID.REGION_ID.r.appspot.comErsetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-IDREGION_ID: Code, der Ihrer Anwendung von App Engine zugewiesen wird
Wenn Sie die Anwendung aktualisieren, stellen Sie die aktualisierte Version bereit. Dazu geben Sie den gleichen Befehl ein, den Sie bei der ersten Bereitstellung der Anwendung verwendet haben. Bei der neuen Bereitstellung wird eine neue Version der Anwendung erstellt und zur Standardversion hochgestuft. Die älteren Versionen der Anwendung und die zugehörigen VM-Instanzen werden beibehalten. Alle diese Anwendungsversionen und VM-Instanzen sind kostenpflichtige Ressourcen. Löschen Sie zur Senkung der Kosten die nicht standardmäßigen Versionen Ihrer Anwendung.
So löschen Sie eine Anwendungsversion:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- Klicken Sie zum Löschen der Anwendungsversion auf Löschen.
Weitere Informationen zum Bereinigen abrechenbarer Ressourcen finden Sie im letzten Schritt dieser Anleitung im Abschnitt Bereinigen.
Fehler simulieren
Fügen Sie absichtlich einen Fehler in Ihren Code ein und suchen Sie auf der Seite „Error Reporting“ der Google Cloud -Konsole nach der Ausnahme, um Error Reporting in Aktion zu sehen.
Fügen Sie in
bookshelf/crud.pyeinen Vorgang hinzu, der auf eine nicht definierte Variable zugreift und in der Indexansicht einReferenceErrorgeneriert.@crud.route("/") def list(): x[3]
Anwendung bereitstellen.
gcloud app deploy
Rufen Sie die Indexseite auf.
gcloud app browse
Sie können die Nachricht
An internal error occurredanzeigen.-
Rufen Sie in der Google Cloud Console die Seite Error Reporting auf:
Sie können diese Seite auch über die Suchleiste finden.
Der Fehler wird aufgelistet.
Klicken Sie auf den Fehler, um Informationen über den Fehler aufzurufen, z. B. wann der Fehler zuletzt aufgetreten ist, wie oft der Fehler aufgetreten ist, ein Histogramm der Vorkommen und den Stacktrace.
Code verstehen
Zur Meldung nichterfasster Ausnahmen verwendet der Code zuerst den Flask-Decorator errorhandler und meldet die Ausnahme dann mithilfe der Cloud-Clientbibliotheken für Python an Error Reporting.
Der Client fügt automatisch die Traceback-Informationen hinzu und verwendet eine Hilfsfunktion, zum Extrahieren der relevanten Anfragedetails aus der Flask-Anfrage, die Error Reporting mit den relevanten Stacktraces und HTTP-Kontexten für alle nicht erfassten InternalServerError HTTP 500-Ausnahmen in Ihrer Anwendung auffüllt.
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.
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
- 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.