1. Einführung
Übersicht
Cloud Run-Funktionen bieten eine neue Möglichkeit, Arbeitslasten mit den bekannten GCF-Ereignismodellen und der Funktionssignatur bereitzustellen. Anstatt unsere speziellen Build-Prozess- und Bereitstellungskonfigurationen zu verwenden, geben Ihnen Cloud Run-Funktionen direkte Kontrolle über den zugrunde liegenden Dienst, der in Cloud Run erstellt wird.
Cloud Run-Funktionen ermöglichen die einfache Bereitstellung von Cloud Run-Quellen, sodass Entwicklerinnen und Entwickler mithilfe von Cloud Run-Konfigurationen die volle Kontrolle über ihre Arbeitslasten haben.
In diesem Codelab werden in den Beispielen unten Node.js-Beispiele verwendet. Sie können jedoch die Codebeispiele für Cloud Functions (2nd gen) in der Sprache Ihrer Wahl verwenden:
- Python-Funktionsbeispiele
- Nodejs-Funktionsbeispiele
- Go-Funktionsbeispiele
- Java-Funktionsbeispiele
- PHP-Funktionsbeispiele
- Ruby-Funktionsbeispiele
- .NET-Funktionsbeispiele
Aufgaben in diesem Lab
- Cloud Run-Funktion bereitstellen, die durch eine HTTP-Anfrage ausgelöst wird
2. Umgebungsvariablen festlegen und APIs aktivieren
gcloud CLI aktualisieren
Zuerst muss eine aktuelle Version der gcloud CLI installiert sein. Sie können die Befehlszeile mit dem folgenden Befehl aktualisieren:
gcloud components update
Umgebungsvariablen einrichten
Sie können Umgebungsvariablen festlegen, die in diesem Codelab verwendet werden.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
APIs aktivieren
Bevor Sie dieses Codelab verwenden können, müssen Sie mehrere APIs aktivieren. Für dieses Codelab müssen die folgenden APIs verwendet werden. Sie können diese APIs aktivieren, indem Sie den folgenden Befehl ausführen:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. HTTP-Funktion erstellen
Erstellen Sie zunächst ein Verzeichnis für den Quellcode und speichern Sie das Verzeichnis mit cd.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Erstellen Sie dann eine package.json
-Datei mit folgendem Inhalt:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Erstellen Sie als Nächstes eine index.js
-Datei mit folgendem Inhalt:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. Funktion implementieren
Jetzt können Sie die Cloud Run-Funktion mit dem folgenden Befehl bereitstellen:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
Dieser Befehl wandelt den Funktionsquellcode mithilfe von buildpacks in ein produktionsfertiges Container-Image um.
Hinweis:
- Mit dem Flag „-source“ wird Cloud Run angewiesen, die Funktion in einem ausführbaren containerbasierten Dienst zu erstellen.
- Das Flag -function (new) wird verwendet, um den Einstiegspunkt des neuen Dienstes als Funktionssignatur festzulegen, die aufgerufen werden soll
- (optional) „-no-allow-unauthenticated“, um zu verhindern, dass Ihre Funktion öffentlich aufgerufen werden kann
5. Funktion testen
Wenn die Bereitstellung abgeschlossen ist, wird die Dienst-URL angezeigt. Zum Aufrufen der Funktion müssen Sie eine authentifizierte Anfrage mit Ihrem Identitätstoken oder dem Identitätstoken eines Prinzips senden, das die Rolle „Cloud Run Invoker“ hat, wie unten gezeigt:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Glückwunsch!
Herzlichen Glückwunsch zum Abschluss des Codelabs!
Weitere Informationen finden Sie in der Dokumentation zu Cloud Run-Funktionen.
Behandelte Themen
- Cloud Run-Funktion bereitstellen, die durch eine HTTP-Anfrage ausgelöst wird
7. Bereinigen
Um versehentliche Gebühren zu vermeiden, z. B. wenn die Cloud Run-Dienste versehentlich häufiger aufgerufen werden als Ihre monatliche Zuweisung von Cloud Run-Aufrufen in der kostenlosen Stufe, können Sie entweder Cloud Run oder das in Schritt 2 erstellte Projekt löschen.
Wenn Sie die Cloud Run-Funktion löschen möchten, rufen Sie die Cloud Run-Cloud Console unter https://console.cloud.google.com/run auf und löschen Sie den crf-http-codelab
-Dienst.
Wenn Sie das gesamte Projekt löschen möchten, rufen Sie https://console.cloud.google.com/cloud-resource-manager auf, wählen Sie das in Schritt 2 erstellte Projekt aus und klicken Sie auf „Löschen“. Wenn Sie das Projekt löschen, müssen Sie die Projekte in Ihrem Cloud SDK ändern. Sie können die Liste aller verfügbaren Projekte mit dem Befehl gcloud projects list
aufrufen.