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. 
- 
          Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden. 
- 
        Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren: gcloud init
- 
  
  
    Create or select a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 - 
        Create a Google Cloud project: gcloud projects create PROJECT_ID Replace PROJECT_IDwith 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_IDwith your Google Cloud project name.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs: Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.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/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE Replace the following: - PROJECT_ID: Your project ID.
- USER_IDENTIFIER: The identifier for your user account. For example,- myemail@example.com.
- ROLE: The IAM role that you grant to your user account.
 
- 
      Install the Google Cloud CLI. 
- 
          Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden. 
- 
        Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren: gcloud init
- 
  
  
    Create or select a Google Cloud project. Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 - 
        Create a Google Cloud project: gcloud projects create PROJECT_ID Replace PROJECT_IDwith 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_IDwith your Google Cloud project name.
 
- 
  
    Verify that billing is enabled for your Google Cloud project. 
- 
  
  
    
      Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs: Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.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/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE Replace the following: - PROJECT_ID: Your project ID.
- USER_IDENTIFIER: The identifier for your user account. For example,- myemail@example.com.
- ROLE: The IAM role that you grant to your user account.
 
-  So legen Sie das Standardprojekt für Ihren Cloud Run-Dienst fest:
  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. 
- 
Achten Sie darauf, dass Sie die Rolle „Dienstkontonutzer“ für die Dienstidentität haben. Standardmäßig ist die Dienstidentität das Compute Engine-Standarddienstkonto. Rollen zuweisenVerwenden Sie den Befehl gcloud iam service-accounts add-iam-policy-binding, um Zugriff auf die Dienstidentitätsressource zu gewähren. Ersetzen Sie dabei die markierten Variablen durch die entsprechenden Werte:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \ --member=user:PRINCIPAL \ --role=roles/iam.serviceAccountUser Ersetzen Sie Folgendes: - SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos, das Sie als Dienstidentität verwenden, z. B.:
         -  Das Compute Engine-Standarddienstkonto: PROJECT_NUMBER-compute@developer.gserviceaccount.com
-  Ein von Ihnen erstelltes Dienstkonto: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
 
-  Das Compute Engine-Standarddienstkonto: 
- PRINCIPAL: die Nutzer-ID. Dies ist in der Regel die E‑Mail-Adresse des Google-Kontos, mit dem die Cloud Run-Ressource bereitgestellt wird.
 
- SERVICE_ACCOUNT_EMAIL: Die E-Mail-Adresse des Dienstkontos, das Sie als Dienstidentität verwenden, z. B.:
         
- Weisen Sie dem Cloud Build-Dienstkonto die folgende IAM-Rolle zu.
Klicken, um die erforderlichen Rollen für das Cloud Build-Dienstkonto aufzurufenCloud 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_NUMBERdurch die Google Cloud Projektnummer undPROJECT_IDdurch die 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 Run-Builder“ für das Compute Engine-Standarddienstkonto übertragen wurde. 
- Cloud Run-Preise ansehen oder Kosten mit dem Preisrechner schätzen
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:- mkdir helloworld cd helloworld
- Erstellen Sie im Verzeichnis - helloworldeine- package.json-Datei, um Node.js-Abhängigkeiten anzugeben:
- Erstellen Sie im Verzeichnis - helloworldeine- index.js-Datei mit dem folgenden Node.js-Beispiel:
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:- mkdir helloworld cd helloworld
- Erstellen Sie im Verzeichnis - helloworldeine- requirements.txt-Datei, um Python-Abhängigkeiten anzugeben:- Dadurch werden für das Beispiel erforderliche Pakete hinzugefügt. 
- Erstellen Sie im Verzeichnis - helloworldeine- main.py-Datei mit dem folgenden Python-Beispiel:
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund 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 - helloworldeine- hello_http.go-Datei mit dem folgenden Go-Codebeispiel:
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund 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.javamit dem folgenden Java-Codebeispiel:
- Erstellen Sie im Verzeichnis - helloworldeine- pom.xml-Datei und fügen Sie die folgenden Java-Abhängigkeiten hinzu:
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:- mkdir helloworld cd helloworld
- Erstellen Sie eine Datei mit dem Namen - app.rbund fügen Sie den folgenden Code in diese ein:
- Erstellen Sie eine Datei namens - Gemfileund 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
- Erstellen Sie ein neues Verzeichnis mit dem Namen - helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:- mkdir helloworld cd helloworld
- Erstellen Sie eine Datei mit dem Namen - index.phpund 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:
- 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.csprojdurch Folgendes:
- Ersetzen Sie den Beispielcode in der Datei - Program.csdurch Folgendes:
- 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 go125 \ --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.xmlenthä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. 
- Rufen Sie in der Google Cloud Console Cloud Run auf: 
- Klicken Sie in der Übersicht das Kästchen des zu löschenden Dienstes an. 
- Klicken Sie auf Löschen. Dadurch werden alle Überarbeitungen des Dienstes gelöscht. 
- SERVICE: Name Ihres Dienstes.
- REGION: Google Cloud Region des Dienstes.
- 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. 
Beispielfunktion schreiben
So schreiben Sie eine Bewerbung:
Node.js
Python
Go
Java
Ruby
PHP
.NET
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:
Bereinigen
Löschen Sie alle Ressourcen, die Sie mit dieser Kurzanleitung bereitgestellt haben, um zusätzliche Gebühren für Ihr Google Cloud -Konto zu vermeiden.
Repository löschen
Für Cloud Run fallen keine Kosten an, wenn Ihr bereitgestellter Dienst nicht verwendet wird. Möglicherweise fallen jedoch Kosten für das Speichern des Container-Images in Artifact Registry an. Wenn Sie Artifact Registry-Repositories löschen möchten, folgen Sie der Anleitung unter Repositories löschen in der Artifact Registry-Dokumentation.
Service löschen
Für Cloud Run-Dienste fallen erst Kosten an, wenn sie Anfragen empfangen. So löschen Sie Ihren Cloud Run-Dienst:
Konsole
So löschen Sie einen Dienst:
gcloud
Führen Sie den folgenden Befehl aus, um einen Dienst zu löschen:
gcloud run services delete SERVICE --region REGION
Ersetzen Sie Folgendes:
Testprojekt löschen
Wenn Sie Ihr Google Cloud -Projekt löschen, wird die Abrechnung für alle Ressourcen in diesem Projekt beendet. So geben Sie alle Google Cloud Ressourcen in Ihrem Projekt frei:
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID