Viele Anwendungen benötigen eine Sitzungsverarbeitung zur Authentifizierung und für Nutzereinstellungen. Das Node.js Express-Framework bietet eine arbeitsspeicherbasierte Implementierung zum Ausführen dieser Funktion. 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.
Verwenden Sie den Preisrechner.
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
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Kunde sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Firestore API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Firestore API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init
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 sessionsInitialisieren Sie die Datei
package.json:npm init .Installieren Sie die Abhängigkeiten:
npm install \ --save @google-cloud/connect-firestore @google-cloud/firestore express express-session
Am Ende dieser Anleitung sieht die endgültige Dateistruktur etwa so aus:
sessions
├── app.yaml
├── index.js
└── package.json
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 Firestore zum Speichern von Sitzungsdaten.
Sie können connect-firestore verwenden, einen Sitzungsspeicher, der mit express-session kompatibel ist.
Erstellen Sie im Terminalfenster eine Datei mit dem Namen
index.jsmit folgendem Inhalt:
Das folgende Diagramm veranschaulicht, wie Firestore Sitzungen für die App Engine-Anwendung verarbeitet.
Nachdem Sie app.use(session) festgelegt haben, enthält jede Anfrage ein req.session-Attribut, mit dem wiederkehrende Nutzer identifiziert werden können. Die Sitzungsdaten werden in Firestore gespeichert.
Sitzungen löschen
Connect-firestore löscht alte oder abgelaufene Sitzungen nicht. Sie können
Sitzungsdaten löschen
in der Google Cloud Console 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 im Terminalfenster die Abhängigkeiten für das Google Cloud Projekt:
npm installStarten Sie den HTTP-Server:
npm startSehen 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
http://localhost:8080im Browser auf:Eine dieser fünf Begrüßungen wird angezeigt: "Hello World", "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 ansehen 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 Datei
app.yamlund kopieren Sie Folgendes:Stellen Sie die Anwendung in App Engine bereit:
gcloud app deployRufen Sie die Live-Anwendung auf, indem Sie die folgende URL eingeben:
https://PROJECT_ID.REGION_ID.r.appspot.comErsetzen Sie Folgendes:
PROJECT_ID: Ihre Google Cloud Projekt-IDREGION_ID: Ein Code, der Ihrer Anwendung von App Engine zugewiesen wird
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 failedaufgetreten sind, beheben Sie diese und versuchen Sie die App Engine-Anwendung noch einmal bereitzustellen. Rufen Sie in der Google 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 Google Cloud Console angezeigt werden, überprüfen Sie, ob der Code Ihrer Anwendung mit dem Code im Abschnitt zum Schreiben der Webanwendung übereinstimmt.
Sorgen Sie dafür, dass die Firestore API aktiviert ist.
Bereinigen
Projekt löschen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
App Engine-Instanz löschen
- Rufen Sie in der Google Cloud Console die Seite Versionen für App Engine auf.
- Klicken Sie auf das Kästchen für die nicht standardmäßige Anwendungsversion, die Sie löschen möchten.
- Klicken Sie zum Löschen der Anwendungsversion auf Löschen.
Nächste Schritte
- Weitere Cloud Run-Funktionsanleitungen testen.
- 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