07 - Cloud Functions mit HTTP-Trigger in Node.js¶
In dieser Aufgabe werden wir eine Google Cloud Functions-Anwendung bereitstellen, die über einen HTTP-Trigger ausgeführt werden kann.
Projekt vorbereiten¶
Für Google Cloud Functions müssen eine Reihe von APIs im GCP-Projekt aktiviert sein. Wechseln Sie als erstes im Browser in das GCP-Projekt, in dem Sie arbeiten möchten. Rufen Sie dann die API-Bibliothek auf:
https://console.cloud.google.com/apis/library
Aktivieren Sie dort die folgenden APIs:
- Cloud Functions API
- Cloud Build API
- Artifact Registry API
- Cloud Run API
- Cloud Logging API
Node.js-Projekt anlegen und vorbereiten¶
Erstellen Sie ein neues Node.js-Projekt.
mkdir gcf
cd gcf
npm init -y
Installieren Sie die notwendigen Abhängigkeiten für Google Cloud Functions.
npm install --save @google-cloud/functions-framework
Funktion erstellen¶
Erstellen Sie eine Datei index.js mit folgendem Code, um eine einfache
HTTP-Funktion bereitzustellen:
const functions = require('@google-cloud/functions-framework');
// HTTP-Trigger, um "Hello World" auszugeben
functions.http('helloWorld', (req, res) => {
res.send('Hello World!');
});
Fügen Sie außerdem ein Startskript in Ihre package.json-Datei hinzu, um die Funktion lokal auszuführen:
{
"name": "gcf",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"scripts": {
"start": "functions-framework --target=helloWorld"
},
"dependencies": {
"@google-cloud/functions-framework": "^3.1.1"
}
}
Funktion lokal ausführen¶
Um zu testen, ob die Funktion korrekt aufgesetzt ist, können Sie im Projektverzeichnis folgenden Befehl ausführen:
npm install && npm start
Besuchen Sie in Ihrem Browser http://localhost:8080, um das Ergebnis der Funktion zu sehen. Sie sollten die Nachricht “Hello World!” erhalten.
Funktion deployen¶
Um die Funktion in der Google Cloud zu deployen, führen Sie zuletzt folgende Befehle aus.
gcloud functions deploy my-nodejs-http-function \
--gen2 \
--entry-point=helloWorld \
--runtime=nodejs18 \
--region=europe-west1 \
--source=. \
--trigger-http \
--allow-unauthenticated
Wenn Sie dabei Fehler erhalten, stellen Sie sicher, dass alle notwendigen APIs aktiviert wurden, und versuchen Sie es erneut.
Wenn die Funktion erfolgreich deployt wurde, erhalten Sie die folgende Ausgabe:
state: ACTIVE
updateTime: '2024-07-03T13:41:15.155204213Z'
url: https://europe-west1-my-project.cloudfunctions.net/my-nodejs-http-function
Rufen Sie die angegebene URL im Browser auf, um das Ergebnis zu prüfen. Sie sollten “Hello World!” sehen.