GSP080

Übersicht
Eine Cloud Run-Funktion ist eine Codezeile, die als Reaktion auf ein Ereignis ausgeführt wird, zum Beispiel eine HTTP-Anfrage, eine Nachricht von einem Messaging-Dienst oder ein Dateiupload. In Ihrer Cloudumgebung gibt es Cloudereignisse. Dazu zählen beispielsweise das Ändern von Daten in einer Datenbank, das Hinzufügen von Dateien zu einem Speichersystem oder das Erstellen einer neuen Instanz einer virtuellen Maschine.
Da Cloud Run-Funktionen ereignisgesteuert sind, werden sie nur ausgeführt, wenn ein Ereignis eintritt. Das macht sie ideal für Aufgaben, die schnell erledigt werden oder nicht die ganze Zeit ausgeführt werden sollen.
Beispielsweise können Sie eine Cloud Run-Funktion verwenden, um:
- automatisch Miniaturansichten für Bilder zu erzeugen, die auf Cloud Storage hochgeladen werden.
- eine Benachrichtigung an das Telefon einer Person zu senden, wenn eine neue Nachricht in Pub/Sub eingegangen ist.
- Daten aus einer Cloud Firestore-Datenbank zu verarbeiten und einen Bericht zu erstellen.
Sie können Ihren Code in jeder Sprache schreiben, die Node.js unterstützt, und Sie können Ihren Code mit wenigen Klicks in der Cloud bereitstellen. Sobald Ihre Cloud Run-Funktion bereitgestellt ist, wird sie automatisch als Reaktion auf Ereignisse ausgeführt.
In diesem praxisorientierten Lab erfahren Sie, wie Sie mithilfe der Google Cloud Console eine Cloud Run-Funktion erstellen, bereitstellen und testen.
In diesem praxisorientierten Lab erfahren Sie, wie Sie mithilfe der Google Cloud Shell-Befehlszeile eine Cloud Run-Funktion erstellen, bereitstellen und testen.
Aufgaben
- Cloud Run-Funktion erstellen
- Cloud Run-Funktion bereitstellen und testen
- Logs ansehen
Einrichtung
Vor dem Klick auf „Start Lab“ (Lab starten)
Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange Google Cloud-Ressourcen für das Lab verfügbar sind.
In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.
Für dieses Lab benötigen Sie Folgendes:
- Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
- Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.
Lab starten und bei der Google Cloud Console anmelden
-
Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können.
Auf der linken Seite befindet sich der Bereich „Details zum Lab“ mit diesen Informationen:
- Schaltfläche „Google Cloud Console öffnen“
- Restzeit
- Temporäre Anmeldedaten für das Lab
- Ggf. weitere Informationen für dieses Lab
-
Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).
Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite „Anmelden“ geöffnet.
Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.
Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
-
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
{{{user_0.username | "Username"}}}
Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.
-
Klicken Sie auf Weiter.
-
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
{{{user_0.password | "Password"}}}
Sie finden das Passwort auch im Bereich „Details zum Lab“.
-
Klicken Sie auf Weiter.
Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos.
Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
-
Klicken Sie sich durch die nachfolgenden Seiten:
- Akzeptieren Sie die Nutzungsbedingungen.
- Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
- Melden Sie sich nicht für kostenlose Testversionen an.
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
Hinweis: Wenn Sie auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein.
Cloud Shell aktivieren
Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.
-
Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren
.
-
Klicken Sie sich durch die folgenden Fenster:
- Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
- Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.
Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:
Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
- (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
- Klicken Sie auf Autorisieren.
Ausgabe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Um das aktive Konto festzulegen, führen Sie diesen Befehl aus:
$ gcloud config set account `ACCOUNT`
- (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project
Ausgabe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Hinweis: Die vollständige Dokumentation für gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
Aufgabe 1: Funktion erstellen
Als Erstes erstellen Sie eine einfache Funktion namens helloWorld
, die eine Nachricht in die Cloud Run Functions-Logs schreibt. Die Funktion wird durch Cloud Run Functions-Ereignisse ausgelöst und akzeptiert eine Callback-Funktion, die den Abschluss der Funktion signalisiert.
In diesem Lab ist das Cloud Run Functions-Ereignis ein Ereignis eines Cloud Pub/Sub-Themas. Pub/Sub ist ein Messaging-Dienst, bei dem die Absender von Nachrichten von den Empfängern entkoppelt werden. Wenn eine Nachricht gesendet oder gepostet wird, ist ein Abo erforderlich, damit ein Empfänger benachrichtigt wird und die Nachricht erhält. Weitere Informationen zu Pub/Sub finden Sie unter Architekturübersicht von Pub/Sub.
Weitere Informationen zum Ereignisparameter und zum Callback-Parameter finden Sie in der Cloud Run Functions-Dokumentation im Artikel Ereignisgesteuerte Funktionen schreiben.
So erstellen Sie eine Cloud Run-Funktion:
-
Führen Sie in Cloud Shell den folgenden Befehl aus, um die Standardregion festzulegen:
gcloud config set run/region {{{project_0.default_region |REGION}}}
-
Erstellen Sie ein Verzeichnis für den Funktionscode:
mkdir gcf_hello_world && cd $_
-
Erstellen Sie die Datei index.js
und öffnen Sie sie zum Bearbeiten.
nano index.js
-
Kopieren Sie Folgendes in die Datei index.js
:
const functions = require('@google-cloud/functions-framework');
// Register a CloudEvent callback with the Functions Framework that will
// be executed when the Pub/Sub trigger topic receives a message.
functions.cloudEvent('helloPubSub', cloudEvent => {
// The Pub/Sub message is passed as the CloudEvent's data payload.
const base64name = cloudEvent.data.message.data;
const name = base64name
? Buffer.from(base64name, 'base64').toString()
: 'World';
console.log(`Hello, ${name}!`);
});
-
Beenden Sie Nano (Strg + X) und speichern Sie die Datei (Y).
-
Erstellen Sie die Datei package.json
und öffnen Sie sie zum Bearbeiten.
-
Kopieren Sie Folgendes in die Datei package.json
:
{
"name": "gcf_hello_world",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
-
Beenden Sie Nano (Strg + X) und speichern Sie die Datei (Y).
-
Installieren Sie die Paketabhängigkeiten:
npm install
Erwartete Ausgabe:
added 140 packages, and audited 141 packages in 9s
27 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Aufgabe 2: Funktion bereitstellen
Für dieses Lab legen Sie --trigger-topic
als cf_demo
fest.
Hinweis:
Cloud Run-Funktionen sind ereignisgesteuert. Es muss also ein Triggertyp angegeben werden.
Beim Bereitstellen einer neuen Funktion sind „--trigger-topic“, „--trigger-bucket“ oder „--trigger-http“ gängige Triggerereignisse.
Wenn Sie eine vorhandene Funktion aktualisieren, behält sie den vorhandenen Trigger bei, sofern Sie keinen anderen angeben.
-
Stellen Sie die Funktion nodejs-pubsub-function im Pub/Sub-Thema cf-demo bereit.
gcloud functions deploy nodejs-pubsub-function \
--gen2 \
--runtime=nodejs20 \
--region={{{ project_0.default_region | REGION }}} \
--source=. \
--entry-point=helloPubSub \
--trigger-topic cf-demo \
--stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \
--service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \
--allow-unauthenticated
Hinweis:
Falls Sie die Dienstkontobenachrichtigung serviceAccountTokenCreator erhalten, wählen Sie „n“ aus.
-
Überprüfen Sie den Status der Funktion:
gcloud functions describe nodejs-pubsub-function \
--region={{{ project_0.default_region | REGION }}}
Der Status ACTIVE zeigt an, dass die Funktion bereitgestellt wurde.
Erwartete Ausgabe:
BuildConfig:
automaticUpdatePolicy: {}
build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390
dockerRegistry: ARTIFACT_REGISTRY
dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts
entryPoint: helloPubSub
...
State: ACTIVE
...
UpdateTime: '2024-08-05T13:51:05.317298824Z'
Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function
Jede im Thema veröffentlichte Nachricht löst die Ausführung der Funktion aus. Die Inhalte der Nachricht werden als Eingabedaten übergeben.
Abgeschlossene Aufgabe testen
Klicken Sie auf Fortschritt prüfen.
Haben Sie die Aufgabe erfolgreich abgeschlossen, erhalten Sie ein Testergebnis.
Funktion bereitstellen
Aufgabe 3: Funktion testen
Nachdem Sie die Funktion bereitgestellt haben und wissen, dass sie aktiv ist, testen Sie, ob nach dem Erkennen eines Ereignisses eine Nachricht in das Cloud-Log geschrieben wird.
-
Rufen Sie das Pub/Sub-Thema mit einigen Daten auf:
gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2"
Beispielausgabe:
messageIds:
- '11927162971409664'
Sehen Sie sich die Logs an, um zu überprüfen, ob Log-Nachrichten mit dieser Ausführungs-ID vorhanden sind.
Aufgabe 4: Logs ansehen
-
Suchen Sie Ihre Nachrichten im Log-Verlauf:
gcloud functions logs read nodejs-pubsub-function \
--region={{{ project_0.default_region | REGION }}}
Hinweis:
Es kann etwa zehn Minuten dauern, bis die Logs angezeigt werden.
Eine weitere Möglichkeit zum Aufrufen der Logs finden Sie unter Logging > Log-Explorer.
Die Cloud Run-Funktion gibt Informationen ähnlich den folgenden aus:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4v6akxf4sxt
TIME_UTC: 2024-08-05 15:15:25.723
LOG: Hello, Cloud Function Gen2!
LEVEL: I
NAME: nodejs-pubsub-function
EXECUTION_ID:
TIME_UTC: 2024-08-05 15:15:25.711
LOG:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4oxfjn7zlyu
TIME_UTC: 2024-08-05 15:10:34.303
LOG: Hello, Friend!
LEVEL: I
NAME: nodejs-pubsub-function
EXECUTION_ID:
TIME_UTC: 2024-08-05 15:10:34.291
LOG:
LEVEL:
NAME: nodejs-pubsub-function
EXECUTION_ID: h4fjhyfxua3k
TIME_UTC: 2024-08-05 15:03:16.342
LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!
Sie haben Ihre Anwendung bereitgestellt und getestet und können sich die Logs ansehen.
Aufgabe 5: Testen Sie Ihr Wissen
-
Im Folgenden stellen wir Ihnen einige Multiple-Choice-Fragen, um Ihr bisher erworbenes Wissen zu testen und zu festigen. Beantworten Sie die Fragen, so gut Sie können.
Das wars! Sie haben das Lab erfolgreich abgeschlossen.
Sie haben mit der Google Cloud Console und der Befehlszeile eine Cloud Run-Funktion erstellt, bereitgestellt und getestet.
Nächstes Lab absolvieren
Dieses Lab gehört zu der Reihe „Qwik Starts“. Die Labs geben Ihnen einen kleinen Vorgeschmack auf die vielen Funktionen von Google Cloud. Wählen Sie im Lab-Katalog unter „Qwik Starts“ einfach das nächste Lab aus, das Sie durchgehen möchten.
Nächste Schritte / Weitere Informationen
Google Cloud-Schulungen und -Zertifizierungen
In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.
Anleitung zuletzt am 20. Januar 2025 aktualisiert
Lab zuletzt am 20. Januar 2025 getestet
© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.