Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Kurzanleitung: HTTP-Cloud Functions-Funktion mit Node.js erstellen und bereitstellen

HTTP-Cloud Functions-Funktion mit Node.js erstellen und bereitstellen

In dieser Anleitung lernen Sie Schritt für Schritt, wie Sie mithilfe der Node.js-Laufzeit eine Cloud Functions-Funktion schreiben. Es gibt zwei Arten von Cloud Functions-Funktionen:

  • Eine HTTP-Funktion, die Sie über Standard-HTTP-Anfragen aufrufen.
  • Eine durch ein Ereignis ausgelöste Funktion, mit der Sie Ereignisse aus Ihrer Cloud-Infrastruktur verarbeiten können, z. B. Nachrichten in einem Cloud Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.

Das Beispiel zeigt, wie Sie eine einfache HTTP-Funktion erstellen.

Inhaltsverzeichnis

  1. GCP-Projekt mit der gcloud-CLI erstellen
  2. Funktion erstellen
  3. Abhängigkeiten angeben
  4. Funktion bereitstellen
  5. Funktion testen

GCP-Projekt mit der gcloud-CLI erstellen

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit 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.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

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

  4. Cloud Functions and Cloud Build APIs aktivieren.

    Aktivieren Sie die APIs

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

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

  7. Cloud Functions and Cloud Build APIs aktivieren.

    Aktivieren Sie die APIs

  8. Installieren und initialisieren Sie die gcloud CLI.
  9. Aktualisieren und installieren Sie gcloud-Komponenten:
    gcloud components update
  10. Bereiten Sie die Entwicklungsumgebung vor.

    Einrichtungsleitfaden für Node.js aufrufen

Funktion erstellen

  1. Erstellen Sie in Ihrem lokalen System ein Verzeichnis für den Funktionscode:

    Linux oder MacOS X

    mkdir ~/helloworld
    cd ~/helloworld
    

    Windows

    mkdir %HOMEPATH%\helloworld
    cd %HOMEPATH%\helloworld
    
  2. Erstellen Sie eine index.js-Datei im Verzeichnis helloworld mit folgendem Inhalt:

    const functions = require('@google-cloud/functions-framework');
    const escapeHtml = require('escape-html');
    
    /**
     * Responds to an HTTP request using data from the request body parsed according
     * to the "content-type" header.
     *
     * @param {Object} req Cloud Function request context.
     * @param {Object} res Cloud Function response context.
     */
    functions.http('helloHttp', (req, res) => {
      res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
    });

    Diese Beispielfunktion verwendet einen in der HTTP-Anfrage angegebenen Namen und gibt eine Begrüßung bzw. „Hello World!“, wenn kein Name angegeben wird, zurück.

Abhängigkeiten angeben

Abhängigkeiten in Node.js werden mit npm verwaltet und in einer Metadatendatei mit dem Namen package.json ausgedrückt.

  1. Erstellen Sie eine package.json-Datei im Verzeichnis helloworld. Dies können Sie entweder manuell tun oder den folgenden Befehl ausführen:

    npm init
    
  2. Fügen Sie der package.json-Datei die Abhängigkeit der Funktion hinzu. In diesem Fall ist es das Paket escape-html. Dies können Sie entweder manuell tun oder den folgenden Befehl ausführen:

    npm install escape-html
    

    Ihre package.json-Datei muss einen Abschnitt enthalten, der ungefähr so aussieht:

    {
      ...
      "dependencies": {
        "escape-html": "^1.0.3"
      }
      ...
    }
    

    Wenn Sie die Datei package.json manuell erstellen, können Sie den folgenden Inhalt in diese kopieren:

    {
      "name": "nodejs-docs-samples-functions-hello-world",
      "version": "0.0.1",
      "private": true,
      "license": "Apache-2.0",
      "author": "Google Inc.",
      "repository": {
        "type": "git",
        "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
      },
      "engines": {
        "node": ">=12.0.0"
      },
      "dependencies": {
        "@google-cloud/debug-agent": "^7.0.0",
        "@google-cloud/functions-framework": "^3.1.0",
        "escape-html": "^1.0.3"
      },
      "devDependencies": {
        "@google-cloud/pubsub": "^3.0.0",
        "@google-cloud/storage": "^6.0.0",
        "gaxios": "^5.0.0",
        "mocha": "^10.0.0",
        "moment": "^2.24.0",
        "promise-retry": "^2.0.0",
        "sinon": "^15.0.0",
        "supertest": "^6.0.0",
        "uuid": "^9.0.0",
        "wait-port": "^1.0.4"
      }
    }
    

Funktion bereitstellen

Stellen Sie die Funktion mit einem HTTP-Trigger mit diesem Befehl im Verzeichnis helloworld bereit:

gcloud functions deploy helloHttp --runtime nodejs18 --trigger-http --allow-unauthenticated

Mit dem Flag --allow-unauthenticated können Sie die Funktion ohne Authentifizierung aufrufen. Wenn Sie eine Authentifizierung anfordern möchten, lassen Sie das Flag weg.

Funktion testen

  1. Nach Bereitstellung der Funktion notieren Sie sich das Attribut von httpsTrigger.url oder suchen Sie es mit dem folgenden Befehl:

    gcloud functions describe helloHttp
    

    Dies sollte so aussehen:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp
  2. Rufen Sie diese URL in Ihrem Browser auf: Jetzt sollten Sie die Meldung "Hello World!" sehen.

    Geben Sie einen Namen in die HTTP-Anfrage ein, z. B. mithilfe der folgenden URL:

    https://GCP_REGION-PROJECT_ID.cloudfunctions.net/helloHttp?name=NAME

    Jetzt sollten Sie die Meldung "Hello NAME!" sehen.

Logs ansehen

Befehlszeilentool verwenden

Logs für Cloud Functions können über die Cloud Logging-UI und die Google Cloud CLI aufgerufen werden.

Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl logs read, gefolgt vom Namen der Funktion:

gcloud functions logs read helloHttp

Die Ausgabe sollte in etwa so aussehen:

LEVEL  NAME       EXECUTION_ID  TIME_UTC                 LOG
D      helloHttp  rvb9j0axfclb  2019-09-18 22:06:25.983  Function execution started
D      helloHttp  rvb9j0axfclb  2019-09-18 22:06:26.001  Function execution took 19 ms, finished with status code: 200

Logging-Dashboard verwenden

Sie können Logs für Cloud Functions auch über die Google Cloud Console aufrufen.