Kurzanleitung: Cloud Run-Funktion mit der gcloud CLI bereitstellen
Auf dieser Seite wird gezeigt, wie Sie eine HTTP-Cloud Run-Funktion mit 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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
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:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountUser, roles/serviceusage.serviceUsageAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
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:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountUser, roles/serviceusage.serviceUsageAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- 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.
- Weisen Sie dem Cloud Build-Dienstkonto die folgende IAM-Rolle zu.
Klicken, um die erforderlichen Rollen für das Cloud Build-Dienstkonto aufzurufen
Cloud Build verwendet automatisch das Compute Engine-Standarddienstkonto als Standard-Cloud Build-Dienstkonto zum Erstellen Ihres Quellcodes und Ihrer Cloud Run-Ressource, sofern Sie dieses Verhalten nicht überschreiben. Damit Cloud Build Ihre Quellen erstellen kann, bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto in Ihrem Projekt die Rolle Cloud Run Builder (
roles/run.builder
) zuzuweisen:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Ersetzen Sie
PROJECT_NUMBER
durch die Google CloudProjektnummer undPROJECT_ID
durch die Google CloudProjekt-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 Run-Builder“ für das Compute Engine-Standarddienstkonto übertragen wurde.
Beispielfunktion schreiben
So schreiben Sie eine Bewerbung:
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 Datei
HelloWorld.java
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.
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 Ihre 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 run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs22 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
Python
gcloud run deploy python-http-function \ --source . \ --function hello_get \ --base-image python313 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
Go
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go123 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
Java
Führen Sie den folgenden Befehl in dem Verzeichnis aus, das die Datei
pom.xml
enthält:gcloud 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:
europe-west1
Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby34 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php84 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
.NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet8 \ --region REGION \ --allow-unauthenticated
Ersetzen Sie REGION durch die Google Cloud Region des Dienstes, in der Sie die Funktion bereitstellen möchten. Beispiel:
europe-west1
Wenn die Bereitstellung abgeschlossen ist, wird in der Google Cloud CLI eine URL angezeigt, unter der der Dienst ausgeführt wird. Öffnen Sie die URL in Ihrem Browser, um die Ausgabe Ihrer Funktion zu sehen.
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. Durch das Löschen des Google Cloud -Projekts wird die Abrechnung für alle in diesem Projekt verwendeten Ressourcen beendet.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Nächste Schritte
Informationen zum Bereitstellen einer Beispielfunktion in Cloud Run mit der Google Cloud -Konsole finden Sie unter Kurzanleitung: Funktion mit der Google Cloud -Konsole 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.
Informationen zum Erstellen von Triggern mit Eventarc finden Sie unter Trigger mit Eventarc erstellen.