Node.js-Anwendung in der flexiblen App Engine-Umgebung erstellen

Regions-ID

REGION_ID ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.

Hier finden Sie weitere Informationen zu Regions-IDs.

In dieser Kurzanleitung wird gezeigt, wie Sie eine Anwendung erstellen und bereitstellen, die eine kurze Nachricht anzeigt. Sie können die Beispielanwendung in dieser Kurzanleitung für jede unterstützte Version von Node.js verwenden. Geben Sie dazu die Laufzeitversion und das Betriebssystem in Ihrer app.yaml-Datei an.

Hinweise

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Enable the Cloud Build API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  9. Enable the Cloud Build API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init

Zusätzliche Voraussetzungen

  1. Initialisieren Sie die App Engine-Anwendung mit Ihrem Projekt und wählen Sie die Region aus:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Wählen Sie bei entsprechender Aufforderung die Region aus, in der sich die App Engine-Anwendung befinden soll.

  2. Installieren Sie folgende Abhängigkeiten:

App Engine-Standorte

App Engine ist regional, was bedeutet, dass sich die Infrastruktur, in der Ihre Anwendungen ausgeführt werden, in einer bestimmten Region befindet und Google sie so verwaltet, dass sie redundant in allen Zonen innerhalb dieser Region verfügbar ist.

Die Erfüllung der Latenz-, Verfügbarkeits- oder Langlebigkeitsanforderungen ist der wichtigste Gesichtspunkt bei der Auswahl der Region, in der Ihre Anwendungen ausgeführt werden sollen. Sie können im Allgemeinen die Region auswählen, die den Nutzern Ihrer Anwendung am nächsten ist. Sie sollten jedoch die Standorte berücksichtigen, an denen App Engine verfügbar ist, sowie die Standorte der anderen Google Cloud-Produkte und -Dienste, die Ihre Anwendung nutzt. Eine Nutzung von Diensten über mehrere Standorte kann die Latenz der Anwendung sowie die Preise beeinflussen.

Sie können die Region einer Anwendung nicht mehr ändern, nachdem Sie sie festgelegt haben.

Wenn Sie bereits eine App Engine-Anwendung erstellt haben, können Sie die Region mit einer der folgenden Methoden aufrufen:

Diese Schnellstartanleitung umfasst eine einfache Node.js-Anwendung, die mit dem Express.js-Framework geschrieben wurde.

Hello-World-Anwendung herunterladen

Wir haben eine Hello-World-Anwendung für App Engine entwickelt, damit Sie schnell ein Gefühl für die Bereitstellung einer Anwendung in Google Cloud entwickeln können.

  1. Klonen Sie das Repository der Hello-World-Beispielanwendung auf dem lokalen Computer:

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

    Sie können das Beispiel auch als ZIP-Datei herunterladen und extrahieren.

  2. Wechseln Sie zu dem Verzeichnis, das den Beispielcode enthält:

       cd nodejs-docs-samples/appengine/hello-world/flexible/
    

Hello World auf lokalem Computer ausführen

  1. Installieren Sie Abhängigkeiten für das Projekt:

    npm install
    

    Oder, wenn Sie Yarn verwenden:

    yarn install
    
  2. Führen Sie das Startskript aus.

    npm start
    

    Oder, wenn Sie Yarn verwenden:

    yarn start
    
  3. Rufen Sie die Anwendung in einem Webbrowser auf:

    • Wenn Sie Cloud Shell verwenden, klicken Sie in der Symbolleiste auf Webvorschau  und wählen Sie stattdessen Vorschau auf Port 8080 aus.

    • Wenn Sie Cloud Shell verwenden, geben Sie die folgende Adresse ein:

    http://localhost:8080

Auf der Seite wird die Nachricht Hello World aus der Beispielanwendung angezeigt. Drücken Sie im Terminalfenster Strg + C, um den Webserver zu beenden.

Hello World in App Engine bereitstellen und ausführen

So stellen Sie die App in der flexiblen App Engine-Umgebung bereit:

  1. Führen Sie den folgenden Befehl im Verzeichnis hello-world/flexible/ aus, um die Hello World-Anwendung bereitzustellen:

    gcloud app deploy

    Hier finden Sie Informationen zu optionalen Flags.

    Häufig verwendete gcloud-Befehls-Flags

    • Verwenden Sie das Flag --version, um eine eindeutige ID festzulegen, die die Version Ihrer Anwendung angibt. Andernfalls wird automatisch eine ID generiert. Beispiel: --version [YOUR_VERSION_ID]
    • Verwenden Sie das Flag --project, um eine andere Google Cloud-Projekt-ID als jene anzugeben, die Sie im gcloud-Tool als Standard initialisiert haben. Beispiel: --project [YOUR_PROJECT_ID]

    Beispiel:

    gcloud app deploy --version pre-prod-5 --project my-sample-app

    Weitere Informationen zum Bereitstellen der Anwendung über die Befehlszeile finden Sie unter Anwendung bereitstellen und testen. Eine Liste aller Befehls-Flags finden Sie in der Referenz zu gcloud app deploy.

  2. Starten Sie den Browser und rufen Sie die Anwendung unter https://PROJECT_ID.REGION_ID.r.appspot.com auf.

    gcloud app browse
    Dabei ist PROJECT_ID Ihre Google Cloud-Projekt-ID.

Dieses Mal wird die Seite mit der Nachricht „Hello World” von einem Webserver bereitgestellt, der auf einer App Engine-Instanz ausgeführt wird.

Das wars! Sie haben Ihre erste App Engine-Anwendung in der flexiblen App Engine-Umgebung bereitgestellt!

Wenn beim Bereitstellen Ihrer Anwendung Fehler aufgetreten sind, lesen Sie die Tipps zur Fehlerbehebung.

In den folgenden Abschnitten finden Sie Informationen zur Bereinigung sowie Links für mögliche weitere Schritte.

Bereinigen

Zur Vermeidung von Gebühren können Sie Ihr Google Cloud-Projekt löschen und so die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beenden.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte

Informationen zur Plattform

Sie wissen jetzt, wie Sie Anwendungen in App Engine entwickeln und bereitstellen. Nun können Sie sich mit den weiteren Bereichen von Google Cloud vertraut machen. Sie haben bereits die Google Cloud CLI installiert, mit der Sie die Tools zur Interaktion mit Produkten wie z. B. Cloud SQL, Cloud Storage, Firestore nutzen können.

Informationen zur flexiblen App Engine-Umgebung

Im Folgenden finden Sie weitere Themen zu App Engine:

Hello World-Code prüfen

Die Hello-World-Anwendung ist die einfachste realisierbare App Engine-Anwendung, da sie nur einen Dienst enthält, nur eine Version hat und sich der gesamte Code im Stammverzeichnis der Anwendung befindet. Dieser Abschnitt beschreibt jede der App-Dateien im Detail.

app.js

Die Datei app.js enthält den JavaScript-Code zum Starten eines Servers und zum Antworten auf Anfragen.

Der folgende Code antwortet auf Anfragen von Webclients durch Einblenden der Nachricht "Hello World", und zwar über einen Server, der über den Port 8080 läuft.

const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.status(200).send('Hello, world!').end();
});

// Start the server
const PORT = parseInt(process.env.PORT) || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});

app.yaml

In der app.yaml-Datei wird die folgende Konfiguration für Ihre Anwendung beschrieben:

  • Legt env: flex fest. Dies gibt an, dass Ihre Anwendung die flexible App Engine-Umgebung verwendet.
  • Gibt die von der App verwendete Laufzeit an.

    runtime: nodejs
    env: flex
    runtime_config:
      operating_system: ubuntu22
    # This sample incurs costs to run on the App Engine flexible environment.
    # The settings below are to reduce costs during testing and are not appropriate
    # for production use. For more information, see:
    # https://cloud.google.com/appengine/docs/flexible/nodejs/configuring-your-app-with-app-yaml
    manual_scaling:
      instances: 1
    resources:
      cpu: 1
      memory_gb: 0.5
      disk_size_gb: 10
    

    package.json

    package.json wird verwendet, um Anwendungsabhängigkeiten, die Knotenversion und den Anwendungsstart anzugeben.

    {
      "name": "appengine-hello-world",
      "description": "Simple Hello World Node.js sample for Google App Engine Flexible Environment.",
      "version": "0.0.2",
      "private": true,
      "license": "Apache-2.0",
      "author": "Google Inc.",
      "repository": {
        "type": "git",
        "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
      },
      "engines": {
        "node": ">=16.0.0"
      },
      "scripts": {
        "start": "node app.js",
        "test": "c8 mocha -p -j 2 --exit test/*.test.js"
      },
      "dependencies": {
        "express": "^4.17.1"
      },
      "devDependencies": {
        "c8": "^8.0.0",
        "mocha": "^10.0.0",
        "supertest": "^6.0.0"
      }
    }
    

    Im vorherigen Beispiel gibt die Datei package.json an, dass die Anwendung Node.js Version 18 und höher verwendet und von express abhängig ist. Weitere Informationen zum Installieren und Ausführen der Anwendung finden Sie in der Dokumentation zur Node.js-Laufzeit.