HTTP-Cloud Functions-Funktion mit Node.js erstellen und bereitstellen
In diesem Dokument wird beschrieben, wie Sie eine einfache Cloud Functions-HTTP-Funktion erstellen. Dies ist eine der beiden Arten von Cloud Functions-Funktionen:
- Eine HTTP-Funktion, die Sie über Standard-HTTP-Anfragen aufrufen.
- Eine ereignisgesteuerte Funktion, die durch Ereignisse in Ihrer Cloud-Infrastruktur ausgelöst wird, z. B. Nachrichten in einem Pub/Sub-Thema oder Änderungen in einem Cloud Storage-Bucket.
Weitere Informationen finden Sie unter HTTP-Funktionen schreiben und Ereignisgesteuerte Funktionen schreiben.
Hinweise
- 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 Cloud Functions, Cloud Build, Artifact Registry, Cloud Run und Cloud Logging APIs.
-
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 Cloud Functions, Cloud Build, Artifact Registry, Cloud Run und Cloud Logging APIs.
- Installieren und initialisieren Sie die gcloud CLI.
- Aktualisieren und installieren Sie
gcloud
-Komponenten.gcloud components update
-
Bereiten Sie die Entwicklungsumgebung vor.
Funktion erstellen
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
Erstellen Sie eine
index.js
-Datei im Verzeichnishelloworld
mit folgendem Inhalt:Diese Beispielfunktion gibt bei allen Anfragen ein freundliches "Hello World" 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. Sie können diese Datei manuell oder mit dem Befehl npm
erstellen.
So erstellen Sie die Datei
package.json
mit dem Befehlnpm
:Führen Sie den Befehl
npm init
aus dem Verzeichnis „helloworld“ aus. Drücken SieEnter
, um die Standardantwort auf die zugehörigen Fragen zu akzeptieren.npm init
Bearbeiten Sie die Datei
package.json
, um eine Functions-Framework-Abhängigkeit hinzuzufügen:"dependencies": { "@google-cloud/functions-framework": "^3.1.0" }
Wenn Sie die Datei
package.json
manuell erstellen möchten, kopieren Sie den folgenden Inhalt hinein:
Viele Node.js-Clientbibliotheken stehen für die Verwendung mit Google Cloud-Produkten zur Verfügung und können als Abhängigkeiten installiert werden.
Funktion lokal erstellen und testen
Wenn Sie Ihre Funktion lokal testen möchten, bevor Sie sie bereitstellen, müssen Sie das Functions Framework lokal installieren und dann die Funktion ausführen.
Führen Sie den folgenden Befehl im Verzeichnis
helloworld
aus, um das Functions Framework auf Ihrem lokalen Computer zu installieren:npm install @google-cloud/functions-framework
Führen Sie den folgenden Befehl im Verzeichnis
helloworld
aus, um die Funktion lokal auszuführen:npx @google-cloud/functions-framework --target=helloGET
Testen Sie Ihre Funktion. Rufen Sie dazu
http://localhost:8080
in einem Browser auf oder führen Siecurl localhost:8080
in einem anderen Fenster aus.Weitere Informationen finden Sie unter Anfragen an lokale Funktionen senden.
Die Funktion gibt die Nachricht „Hello World!“ zurück.
Funktion bereitstellen
Führen Sie den Befehl gcloud functions deploy
im Verzeichnis helloworld
aus, um die Funktion bereitzustellen:
gcloud functions deploy hello-node-function \
--gen2 \
--runtime=nodejs20 \
--region=REGION \
--source=. \
--entry-point=helloGET \
--trigger-http \
--allow-unauthenticated
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitstellen möchten (z. B. us-west1
).
Dadurch wird Ihre Beispielfunktion mit der nodejs20-Laufzeit in der ausgewählten Region bereitgestellt.
Mit dem optionalen Flag --allow-unauthenticated
können Sie die Funktion ohne Authentifizierung aufrufen.
Bereitgestellte Funktion testen
Beachten Sie nach dem Bereitstellen der Funktion das Attribut
uri
in der Ausgabe des Befehlsgcloud functions deploy
oder rufen Sie es mit dem folgenden Befehl ab:gcloud functions describe hello-node-function \ --region=REGION
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B.
us-west1
).Rufen Sie diese URL in Ihrem Browser oder mit dem folgenden
curl
-Befehl auf:curl FUNCTION_URL
Ersetzen Sie FUNCTION_URL durch das gerade abgerufene
uri
-Attribut.Die Funktion gibt die Nachricht „Hello World!“ zurück.
Logs der Funktion ansehen
Logs mit dem Befehlszeilentool ansehen
Sie können die Logs Ihrer Funktion über die Cloud Logging-UI oder die Google Cloud CLI prüfen.
Wenn Sie mit der gcloud CLI Logs für Ihre Funktion aufrufen möchten, verwenden Sie den Befehl gcloud functions logs read
:
gcloud functions logs read \
--gen2 \
--region=REGION \
--limit=10 \
hello-node-function
Ersetzen Sie REGION durch den Namen der Google Cloud-Region, in der Sie die Funktion bereitgestellt haben (z. B. us-west1
).
Die Ausgabe sollte so aussehen:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:24.956
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:42:01.692
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:47.711
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:46.542
LOG:
LEVEL: I
NAME: hello-node-function
TIME_UTC: 2023-06-16 18:31:27.390
LOG: Default STARTUP TCP probe succeeded after 1 attempt for container "hello--node--function-1" on port 8080.
Logs mit dem Logging-Dashboard ansehen
Um die Logs für Ihre Funktion mit dem Logging-Dashboard aufzurufen, öffnen Sie die Cloud Functions-Übersichtsseite. Klicken Sie in der Liste auf den Namen Ihrer Funktion und dann auf den Tab Logs.