Viele Anwendungen benötigen eine Sitzungsverarbeitung zur Authentifizierung und für Nutzereinstellungen. Das Flask-Framework enthält eine speicherbasierte Implementierung, um diese Funktion auszuführen. Diese Implementierung eignet sich jedoch nicht für eine Anwendung, die über mehrere Instanzen bereitgestellt werden kann, da sich die Sitzung, die in einer bestimmten Instanz aufgezeichnet wird, von Sitzungen in anderen Instanzen unterscheiden kann. In dieser Anleitung wird gezeigt, wie Sitzungen in App Engine verarbeitet werden.
Lernziele
- Anwendung schreiben
- Anwendung lokal ausführen
- Anwendung in App Engine bereitstellen
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.
Hinweis
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Firestore API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Firestore API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Installieren Sie Python,
pip
undvirtualenv
auf Ihrem System. Eine Anleitung finden Sie unter Python-Entwicklungsumgebung für Google Cloud einrichten.
Projekt einrichten
Beginnen Sie im Terminalfenster in einem Verzeichnis Ihrer Wahl und erstellen Sie ein neues Verzeichnis mit dem Namen
sessions
. Der gesamte Code für diese Anleitung befindet sich im Verzeichnissessions
.Wechseln Sie in das Verzeichnis
sessions
:cd sessions
Erstellen Sie
requirements.txt
mit folgendem Inhalt:Installieren Sie die Abhängigkeiten:
pip install -r requirements.txt
Am Ende dieser Anleitung sieht die endgültige Dateistruktur etwa so aus:
sessions
├── app.yaml
├── main.py
└── requirements.txt
Webanwendung schreiben
In dieser Anwendung werden Begrüßungen in verschiedenen Sprachen für jeden Nutzer angezeigt. Wiederkehrende Nutzer werden immer in derselben Sprache begrüßt.
Bevor sich in der Anwendung die Einstellungen für einen Nutzer speichern lassen, benötigen Sie eine Möglichkeit zum Speichern der Informationen über den aktuellen Nutzer in einer Sitzung. Diese Beispielanwendung verwendet Cookies und Firestore zum Speichern von Sitzungsdaten.
Erstellen Sie im Terminalfenster eine Datei mit dem Namen
main.py
mit folgendem Inhalt:Das folgende Diagramm veranschaulicht, wie Firestore Sitzungen für die App Engine-Anwendung verarbeitet.
Sitzungen löschen
Sie können Sitzungsdaten löschen oder eine automatische Löschstrategie implementieren. Wenn Sie zum Speichern von Sitzungen Lösungen wie Memcache oder Redis verwenden, werden abgelaufene Sitzungen automatisch gelöscht.
Lokal ausführen
Installieren Sie in Ihrem Terminalfenster den HTTP-Server von G:
pip install gunicorn
Führen Sie den Gunicorn-HTTP-Server aus:
gunicorn -b :8080 main:app
Sehen Sie sich die App in Ihrem Webbrowser an:
Cloud Shell
Klicken Sie in der Symbolleiste von Cloud Shell auf Webvorschau und wählen Sie Vorschau auf Port 8080 aus.
Lokaler Computer
Rufen Sie in Ihrem Browser
http://localhost:8080
auf.Sie sehen eine von fünf Begrüßungen: "Hallo Welt", "Hallo Welt", "Hola mundo", "Salut le Monde" oder "Ciao Mondo". Die Sprache ändert sich, wenn Sie die Seite in einem anderen Browser oder im Inkognitomodus öffnen. Sie können die Sitzungsdaten in der Google Cloud Console aufrufen und bearbeiten.
Drücken Sie im Terminalfenster
Control+C
, um den HTTP-Server zu beenden.
In App Engine bereitstellen und ausführen
Mit der App Engine-Standardumgebung können Sie eine Anwendung erstellen und bereitstellen, die zuverlässig unter hoher Last und mit großen Datenmengen ausgeführt wird.
In dieser Anleitung wird der Server mithilfe der App Engine-Standardumgebung bereitgestellt.
Erstellen Sie im Terminalfenster eine
app.yaml
-Datei und kopieren Sie Folgendes:Stellen Sie die Anwendung in App Engine bereit:
gcloud app deploy
Sehen Sie sich die Live-Anwendung unter
https://your-project-id.appspot.com
an:gcloud app browse
Dabei ist your-project-id Ihre Google Cloud-Projekt-ID.
Die Begrüßung wird nun von einem Webserver bereitgestellt, der in einer App Engine-Instanz ausgeführt wird.
Fehler in der Anwendung beheben
Wenn Sie keine Verbindung zu Ihrer App Engine-Anwendung herstellen können, prüfen Sie Folgendes:
- Überprüfen Sie, ob die
gcloud
-Bereitstellungsbefehle erfolgreich ausgeführt wurden und keine Fehler ausgegeben haben. Wenn Fehler wiemessage=Build failed
aufgetreten sind, beheben Sie diese und stellen Sie die App Engine-Anwendung noch einmal bereit. Rufen Sie in der Cloud Console die Seite Log-Explorer auf.
Klicken Sie in der Drop-down-Liste Kürzlich ausgewählte Ressourcen auf App Engine-Anwendung und dann auf Alle Werte für module_id. Es wird eine Liste der Anfragen abgerufen, die Sie beim Besuch Ihrer Anwendung gestellt haben. Wenn keine Anfragenliste angezeigt wird, bestätigen Sie, dass Sie Alle Werte für module_id aus der Drop-down-Liste ausgewählt haben. Wenn Fehlermeldungen in der Cloud Console angezeigt werden, prüfen Sie, ob der Code Ihrer App dem Code im Abschnitt zum Erstellen einer Webanwendung entspricht.
Prüfen Sie, ob die Firestore API aktiviert ist.
Bereinigen
Projekt löschen
- 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.
App Engine-Instanz löschen
- 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
- Testen Sie weitere Cloud Functions-Anleitungen
- Mehr über App Engine erfahren
- Cloud Run testen, um zustandslose Container in einer vollständig verwalteten Umgebung oder im eigenen Google Kubernetes Engine-Cluster auszuführen