Kurzanleitung: Funktion mit der gcloud CLI in Cloud Run bereitstellen
Auf dieser Seite erfahren Sie, wie Sie mit Cloud Run eine HTTP-Funktion mithilfe der gcloud CLI bereitstellen.
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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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 Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- So legen Sie das Standardprojekt für Ihren Cloud Run-Dienst fest:
Ersetzen Sie PROJECT_ID durch den Namen des Projekts, das Sie für diese Kurzanleitung erstellt haben.gcloud config set project PROJECT_ID
Wenn Sie einer Domaineinschränkung zur Organisation nicht eingeschränkter Aufrufe für Ihr Projekt unterliegen, müssen Sie auf Ihren bereitgestellten Dienst zugreifen, wie unter Private Dienste testen beschrieben.
- Damit Cloud Build Ihre Quellen erstellen kann, müssen Sie dem Compute Engine-Standarddienstkonto die Rolle Cloud Build-Dienstkonto zuweisen. Führen Sie dazu den folgenden Befehl aus:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Ersetzen Sie
PROJECT_NUMBER
durch Ihre Google Cloud-Projektnummer undPROJECT_ID
durch Ihre Google Cloud-Projekt-ID. Eine detaillierte Anleitung zum Ermitteln der Projekt-ID und der Projektnummer finden Sie unter Projekte erstellen und verwalten.Es dauert einige Minuten, bis die Zuweisung der Rolle „Cloud Build-Dienstkonto“ für das Compute Engine-Standarddienstkonto übertragen wurde.
Beispielfunktion schreiben
So erstellen Sie eine Anwendung:
Node.js
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie im Verzeichnis
helloworld
einepackage.json
-Datei, um Node.js-Abhängigkeiten anzugeben:Erstellen Sie im Verzeichnis
helloworld
eineindex.js
-Datei mit dem folgenden Node.js-Beispiel:
Python
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie im Verzeichnis
helloworld
einerequirements.txt
-Datei, um Python-Abhängigkeiten anzugeben:Dadurch werden für das Beispiel erforderliche Pakete hinzugefügt.
Erstellen Sie im Verzeichnis
helloworld
einemain.py
-Datei mit dem folgenden Python-Beispiel:
Go
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie eine
go.mod
-Datei, um das Go-Modul zu deklarieren:Erstellen Sie im Verzeichnis
helloworld
einehello_http.go
-Datei mit dem folgenden Go-Codebeispiel:
Java
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie die folgende Projektstruktur, die das Quellverzeichnis und die Quelldatei enthält.
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.java
Aktualisieren Sie die
HelloWorld.java
-Datei mit dem folgenden Java-Codebeispiel:Erstellen Sie im Verzeichnis
helloworld
einepom.xml
-Datei und fügen Sie die folgenden Java-Abhängigkeiten hinzu:
Ruby
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie eine Datei mit dem Namen
app.rb
und fügen Sie den folgenden Code in diese ein:Erstellen Sie eine Datei namens
Gemfile
und kopieren Sie Folgendes hinein:Wenn Bundler 2.0 oder höher nicht installiert ist, installieren Sie Bundler.
Erstellen Sie mit diesem Befehl eine
Gemfile.lock
-Datei:bundle install
PHP
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworld
und ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie eine Datei mit dem Namen
index.php
und fügen Sie den folgenden Code in diese ein:Wenn Sie Cloud Shell nicht verwenden, erstellen Sie eine
composer.json
-Datei und fügen Sie den folgenden Code ein:
.NET
Installieren Sie das .NET SDK 6.0. Diese Kurzanleitung funktioniert nur mit .NET Version 6.
Erstellen Sie über die Konsole mit dem Befehl "dotnet" ein neues, leeres Webprojekt.
dotnet new web -o helloworld-csharp
Ändern Sie das Verzeichnis in
helloworld-csharp
:Ersetzen Sie den Beispielcode in der Projektdatei
helloworld-csharp.csproj
durch Folgendes:Ersetzen Sie den Beispielcode in der Datei
Program.cs
durch Folgendes:
Funktion implementieren
Wichtig: In dieser Kurzanleitung wird davon ausgegangen, dass Sie Inhaber- oder Bearbeiterrollen in dem Projekt haben, das Sie für die Kurzanleitung verwenden. Andernfalls finden Sie die erforderlichen Berechtigungen für die Bereitstellung einer Cloud Run-Ressource aus der Quelle unter Rolle „Cloud Run-Quellenentwickler“.
So stellen Sie die Cloud Run-Funktion bereit:
Stellen Sie die Funktion bereit, indem Sie den folgenden Befehl in dem Verzeichnis ausführen, das den Beispielcode enthält:
Node.js
gcloud beta run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs20 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Python
gcloud beta run deploy python-http-function \ --source . \ --function hello_get \ --base-image python312 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Go
gcloud beta run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go122 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Java
Führen Sie den folgenden Befehl im Verzeichnis aus, das die Datei
pom.xml
enthält:gcloud beta run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Ruby
gcloud beta run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby33 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
PHP
gcloud beta run deploy php-http-function \ --source . \ --function helloGet \ --base-image php83 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
.NET
gcloud beta run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet6 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud-Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
us-central1
Nach Abschluss der Bereitstellung wird in der Google Cloud CLI eine URL angezeigt, unter der der Dienst ausgeführt wird. Öffnen Sie die URL im Browser, um die Ausgabe Ihrer Funktion zu sehen.
Eine Anleitung zum Hinzufügen von Eventarc-Triggern zu Ihrer Funktion finden Sie im Leitfaden Funktion bereitstellen.
Bereinigen
Während für Cloud Run keine Kosten anfallen, wenn der Dienst nicht verwendet wird, wird Ihnen dennoch das Speichern des Container-Images in Artifact Registry möglicherweise in Rechnung gestellt. Sie können das Container-Image löschen oder Ihr Google Cloud-Projekt löschen, um Kosten zu vermeiden. Wenn Sie Ihr Google Cloud-Projekt löschen, wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Nächste Schritte
Informationen zum Bereitstellen einer Beispielfunktion mit der Google Cloud Console in Cloud Run finden Sie unter Schnellstart: Funktion mit der Google Cloud Console in Cloud Run bereitstellen.
Informationen zum Bereitstellen von Funktionen und Erstellen von Triggern mit der Google Cloud Console und der Google Cloud CLI finden Sie unter Funktionen bereitstellen.
Informationen zum Ansehen und Löschen vorhandener Funktionen finden Sie unter Dienstüberarbeitungen verwalten.
Informationen zum Erstellen von Funktionscontainern in Ihrer eigenen Toolchain und zum Bereitstellen in Cloud Run finden Sie unter Funktionen erstellen.