1. Einführung
Übersicht
Cloud Run Functions ist eine neue Möglichkeit, Arbeitslasten mit den bekannten GCF-Ereignisparadigmen und Funktionssignaturen bereitzustellen. Anstelle unseres vordefinierten Build-Prozesses und unserer Bereitstellungskonfigurationen haben Sie mit Cloud Run Functions die direkte Kontrolle über den zugrunde liegenden Dienst, der in Cloud Run erstellt wird.
Mit Cloud Run Functions bieten wir die einfache Benutzeroberfläche der Cloud Run-Quellcodebereitstellung und geben Entwicklern mit Cloud Run-Konfigurationen die vollständige Kontrolle über ihre Arbeitslasten.
In diesem Codelab werden in den Beispielen unten Node.js-Beispiele verwendet. Sie können jedoch die Codebeispiele für Cloud Functions der 2. Generation in der Sprache Ihrer Wahl verwenden:
- Python-Funktionsbeispiele
- Node.js-Funktionsbeispiele
- Go-Funktionsbeispiele
- Java-Funktionsbeispiele
- PHP-Funktionsbeispiele
- Ruby-Funktionsbeispiele
- .NET-Funktionsbeispiele
Lerninhalte
- Cloud Run-Funktion bereitstellen, die durch eine HTTP-Anfrage ausgelöst wird
2. Umgebungsvariablen festlegen und APIs aktivieren
gcloud CLI aktualisieren
Zuerst müssen Sie eine aktuelle Version der gcloud CLI installiert haben. Sie können die CLI 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 mit diesem Codelab beginnen können, müssen Sie mehrere APIs aktivieren. Für dieses Codelab müssen Sie die folgenden APIs verwenden. Sie können diese APIs mit dem folgenden Befehl aktivieren:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com
3. HTTP-Funktion erstellen
Erstellen Sie zuerst ein Verzeichnis für den Quellcode und wechseln Sie in dieses Verzeichnis.
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
Mit diesem Befehl werden Buildpacks verwendet, um den Quellcode Ihrer Funktion in ein produktionsbereites Container-Image umzuwandeln.
Hinweis:
- Mit dem Flag „–source“ wird Cloud Run angewiesen, die Funktion in einem ausführbaren containerbasierten Dienst zu erstellen.
- Mit dem Flag „–function“ (neu) wird der Einstiegspunkt des neuen Dienstes auf die Funktionssignatur festgelegt, 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 Hauptkontos mit der Rolle „Cloud Run Invoker“ senden, wie unten dargestellt:
# 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!
Wir empfehlen, die Dokumentation zu Cloud Run Functions zu lesen.
Behandelte Themen
- Cloud Run-Funktion bereitstellen, die durch eine HTTP-Anfrage ausgelöst wird
7. Bereinigen
Damit Ihnen keine unbeabsichtigten Gebühren in Rechnung gestellt werden (z. B. wenn die Cloud Run-Dienste versehentlich öfter aufgerufen werden als Ihre monatliche Cloud Run-Aufrufkontingent im kostenlosen Kontingent), können Sie entweder den Cloud Run-Dienst 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 Dienst crf-http-codelab.
Wenn Sie das gesamte Projekt löschen möchten, rufen Sie https://console.cloud.google.com/cloud-resource-manager auf, wählen Sie das Projekt aus, das Sie in Schritt 2 erstellt haben, und klicken Sie auf „Löschen“. Wenn Sie das Projekt löschen, müssen Sie das Projekt in Ihrem Cloud SDK ändern. Sie können die Liste aller verfügbaren Projekte mit gcloud projects list aufrufen.