Kurzanleitung mit App Engine

In dieser Kurzanleitung lernen Sie Error Reporting kennen und erfahren, wie Sie Folgendes vornehmen:

  • Eine Python-Anwendung mit Cloud Shell in App Engine bereitstellen
  • Fehler in Anwendungen mit Error Reporting anzeigen
  • Error Reporting für das Senden von Benachrichtigungen konfigurieren

Probieren Sie die dreiminütige interaktive Anleitung in der Google Cloud Console aus.
Klicken Sie dazu in der Error Reporting-Spalte Einführung auf Start.

Hinweis

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Cloud Console auf der Seite für die Projektauswahl ein Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Öffnen Sie eine Cloud Shell für Ihr Projekt. Während des Starts wird die Meldung Verbindung wird aufgebaut angezeigt.

    Cloud Shell öffnen

Einstieg

Dieser Abschnitt zeigt, wie Sie eine Anwendung in App Engine herunterladen und bereitstellen:

  1. Laden Sie die Anwendung aus dem GitHub-Projekt python-docs-samples herunter und konfigurieren Sie diese:

    1. Klonen Sie das Projekt in Ihre Cloud Shell:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git gibt eine Meldung wie die folgende zurück:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. Erstellen Sie eine isolierte Python-Umgebung und aktivieren Sie diese:

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. Installieren Sie die Abhängigkeiten:

      pip install -r requirements.txt
      
  2. Überprüfen Sie, ob die Anwendung erfolgreich installiert und konfiguriert wurde:

    1. Führen Sie die Anwendung aus:

      python main.py
      
    2. Zeigen Sie die Anwendung auf einer lokalen Webseite an. Klicken Sie dazu auf den Link in Cloud Shell. Auf der Webseite wird Hello World! angezeigt.

    3. Beenden Sie die Anwendung. Geben Sie dazu in Cloud Shell Ctrl-C ein.

  3. Laden Sie Ihre Anwendung in App Engine hoch:

    gcloud app deploy
    

    Wählen Sie eine Bereitstellungsregion in Ihrer Nähe aus, wenn Sie dazu aufgefordert werden. Geben Sie Y ein, wenn Sie gefragt werden, ob Sie fortfahren möchten. Nach wenigen Augenblicken ist der Upload abgeschlossen.

  4. Zeigen Sie Ihre Anwendung in einem Browser an. Führen Sie dazu den folgenden Befehl in Cloud Shell aus:

    gcloud app browse
    

    Wenn das Cloud SDK Ihren Browser nicht finden kann, werden durch den vorherigen Befehl eine Fehlermeldung und ein Link angezeigt. Klicken Sie auf den angezeigten Link. Die Meldung Hello, World! wird im Browser angezeigt.

Fehler erstellen

In den nächsten Schritten erstellen Sie einen Fehler, der von Error Reporting abgefangen und angezeigt wird:

  1. Bearbeiten Sie main.py und ändern Sie

    return 'Hello World!
    

    in

    return 'Hello World!' + 1000
    

    Diese Änderung verursacht eine Python-Ausnahme vom Typ TypeError, da das Verketten eines Strings und einer Ganzzahl nicht zulässig ist.

  2. Laden Sie die geänderte Anwendung in App Engine hoch:

    gcloud app deploy
    
  3. Kehren Sie zu dem Browsertab mit der laufenden Anwendung zurück und aktualisieren Sie die Seite. Durch die Änderung wird anstelle von Hello, World! eine Fehlermeldung angezeigt:

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    Wenn diese Nachricht nicht angezeigt wird, warten Sie eine Minute und aktualisieren Sie die Seite ein weiteres Mal. Es kann einige Augenblicke dauern, bis die neue Version aktiviert wird.

Fehler in Error Reporting ansehen

Die auf der Webseite angezeigte Fehlermeldung ist nicht sehr hilfreich, da sie nicht genügend Informationen zum Beheben des Problems enthält. Über Error Reporting erhalten Sie jedoch detaillierte Informationen über den Fehler und die Häufigkeit seines Auftretens:

  1. Rufen Sie Error Reporting auf:

    Error Reporting aufrufen

    Im Error Reporting-Dashboard finden Sie eine Übersicht aller Fehler sowie der Häufigkeit ihres Auftretens. Standardmäßig aktualisiert Error Reporting die Fehlerliste alle 5 Sekunden automatisch. Durch einen Klick auf Automatische Aktualisierung können Sie eine sofortige Aktualisierung erzwingen.

    Für diese Kurzanleitung wird im Dashboard ein einziger Fehler mit der Beschreibung "TypeError: can only concatenate str (not "int") to str" angezeigt. Möglicherweise müssen Sie eine Minute warten und die Seite aktualisieren, damit der Fehler angezeigt wird:

    Benutzeroberfläche mit dem Testfehler.

  2. Erzeugen Sie den gleichen Fehler ein weiteres Mal. Aktualisieren Sie dazu die Anwendung in Ihrem Browser.

    Da der Stacktrace des neuen Fehlers dem ersten Fehler ähnelt, erstellt Error Reporting einen Batch mit den beiden Fehlern. Dazu werden die Häufigkeit und der Zeitverlauf aktualisiert:

    Benutzeroberfläche mit den zusammengefassten Vorkommen des Testfehlers.

  3. Durch einen Klick auf den Fehlernamen gelangen Sie zu der Seite mit Fehlerdetails, die alle verfügbaren Fehlerinformationen mit Links zum Quellcode enthält:

    Benutzeroberfläche mit der Detailseite zum Testfehler.

Benachrichtigungen konfigurieren

Sie können sich von Error Reporting benachrichtigen lassen, wenn ein neuer Fehlertyp auftritt. Sie erhalten keine Benachrichtigung, wenn ein bereits bekannter Fehler ein weiteres Mal auftritt:

  1. Rufen Sie Error Reporting auf:

    Error Reporting aufrufen

  2. Klicken Sie zum Aktivieren von E-Mail-Benachrichtigungen auf das Dreipunkt-Menü  und wählen Sie Benachrichtigungen über neue Fehler für Projekt aktivieren aus der Drop-down-Liste aus.

  3. Ändern Sie in main.py

    return 'Hello World!` + 1000
    

    in

    return 'Hello World!'.punctuate()
    

    Diese Änderung verursacht eine Python-Ausnahme vom Typ AttributeError, da das Attribut punctuate() nicht vorhanden ist.

  4. Laden Sie die geänderte Datei in App Engine hoch:

    gcloud app deploy
    
  5. Erzeugen Sie den neuen Fehler durch Aktualisieren Ihrer Anwendung im Browser.

    • Im Browser wird die Meldung Internal Server Error angezeigt.

    • Das Error Reporting-Dashboard zeigt einen Fehler mit der Beschreibung "AttributeError: 'str' object has no attribute 'punctuate' an.

    • Ihre E-Mail enthält eine neue Benachrichtigung mit Fehlerdetails, einschließlich:

      • Projekt-ID
      • Einer Fehlerbeschreibung, in diesem Fall "AttributeError: 'str' object has no attribute 'punctuate'
      • Dienst
      • Anwendungsversion

Clean-up

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite "Ressourcen verwalten"

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen .
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Beenden, um das Projekt zu löschen.

Nächste Schritte