Auf dieser Seite wird erläutert, wie Sie Anwendungen mit Cloud Build in Cloud Run-Funktionen bereitstellen. Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie Build-Konfiguration – Überblick.
Cloud Run-Funktionen ist eine serverlose Ausführungsumgebung zum Erstellen und Verbinden von Cloud-Diensten. Mit Cloud Run-Funktionen können Sie einfache Funktionen schreiben, die einem einzigen Zweck dienen und an Ereignisse gebunden sind, die von Ihrer Cloudinfrastruktur und Ihren Diensten ausgegeben werden. Die Funktion wird ausgelöst, wenn ein beobachtetes Ereignis initiiert wird. Weitere Informationen zu Cloud Run Functions finden Sie in der Dokumentation zu Cloud Run Functions.
Hinweise
Aktivieren Sie die Cloud Run Functions API:
Halten Sie den Quellcode Ihrer Anwendung bereit. Ihr Quellcode muss in einem Repository wie GitHub oder Bitbucket gespeichert sein.
Zum Ausführen der
gcloud
-Befehle auf dieser Seite müssen Sie die Google Cloud CLI installieren.
Erforderliche IAM-Berechtigungen (Identity and Access Management)
-
Rufen Sie in der Google Cloud -Console die Seite settings Cloud Build Berechtigungen auf:
Legen Sie für das angegebene Cloud Build-Dienstkonto oder das Standard-Cloud Build-Dienstkonto den Status der folgenden Rollen auf Aktiviert fest:
- Cloud Functions-Entwickler (
roles/cloudfunctions.developer
): Zum Bereitstellen und Verwalten von Funktionen.- Wählen Sie im Bereich „Rolle ‚Service Account User‘ zuweisen“ ein Dienstkonto aus, das imitiert werden soll, und klicken Sie dann auf Berechtigung erteilen.
- Cloud Run-Administrator (
roles/run.admin
): Ermöglicht dem Cloud Build-Dienstkonto, neue Versionen in Cloud Run bereitzustellen. - Storage-Administrator (
roles/storage.admin
): Ermöglicht das Lesen und Schreiben in Cloud Storage. - Artifact Registry-Writer (
roles/artifactregistry.writer
): Ermöglicht das Abrufen von Images aus und das Schreiben in Artifact Registry. - Autor von Logs (
roles/logging.logWriter
): Ermöglicht das Schreiben von Logeinträgen in Cloud Logging. - Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor
): Ermöglicht Ihrem Dienstkonto, Builds auszuführen.
- Cloud Functions-Entwickler (
Bereitstellung konfigurieren
Mit Cloud Build können Sie jedes öffentlich verfügbare Container-Image zum Ausführen Ihrer Aufgaben verwenden. Geben Sie dazu in der Cloud Build-Konfigurationsdatei das Image in einem Build-step
an.
Cloud Run Functions bietet den Befehl gcloud functions deploy
, mit dem Ihre Funktion aus dem Verzeichnis, das Ihren Funktionscode enthält, bereitgestellt wird.
Sie können das cloud-sdk
-Image als Build-Schritt in Ihrer Konfigurationsdatei verwenden, um im Image gcloud
-Befehle aufzurufen.
Argumente, die an diesen Build-Schritt übergeben werden, werden direkt an die Google Cloud CLI weitergegeben, sodass Sie in diesem Image alle gcloud
-Befehle ausführen können.
Führen Sie die folgenden Schritte aus, um eine Anwendung in Cloud Run Functions bereitzustellen:
- Erstellen Sie im Stammverzeichnis Ihres Projekts die Cloud Build-Konfigurationsdatei mit dem Namen
cloudbuild.yaml
odercloudbuild.json
. In der Konfigurationsdatei:
- Fügen Sie das Feld
name
ein und geben Sie dengcloud
-Build-Schritt an. - Fügen Sie den Wert
functions deploy
zum Feldargs
hinzu, um den Befehlgcloud functions deploy
aufzurufen. Informationen zu verfügbaren Konfigurationsoptionen finden Sie in der Referenz zugcloud functions deploy
. --source=.
gibt an, dass sich der Quellcode im aktuellen Arbeitsverzeichnis befindet.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Ersetzen Sie die Platzhalterwerte in der obigen Konfigurationsdatei durch Folgendes:
FUNCTION_NAME
ist der Name der Cloud Run Functions, die Sie bereitstellen. Wenn Sie eine vorhandene Funktion aktualisieren, muss dieser Wert mit dem Namen der zu aktualisierenden Funktion übereinstimmen.FUNCTION_REGION
ist die Region, in der Sie Cloud Run-Funktionen bereitstellen. Eine Liste der unterstützten Regionen finden Sie unter Cloud Run Functions-Standorte.--trigger-http
ist der Triggertyp der Funktion, in diesem Fall eine HTTP-Anfrage (Webhook).RUNTIME
ist die Laufzeit, in der die Funktion ausgeführt werden soll.
Weitere Informationen zur Verwendung von
gcloud functions deploy
finden Sie in der Dokumentation zu Cloud Run Functions.- Fügen Sie das Feld
Starten Sie den Build mit der im vorherigen Schritt erstellten Konfigurationsdatei:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
Ersetzen Sie die Platzhalterwerte in der obigen Konfigurationsdatei durch Folgendes:
CONFIG_FILE_PATH
ist der Pfad zur Build-Konfigurationsdatei.SOURCE_DIRECTORY
ist der Pfad oder die URL zum Quellcode.REGION
ist eine der unterstützten Build-Regionen.
Wenn Sie
CONFIG_FILE_PATH
undSOURCE_DIRECTORY
im Befehlgcloud builds submit
nicht angeben, geht Cloud Build davon aus, dass sich die Konfigurationsdatei und der Quellcode im aktuellen Arbeitsverzeichnis befinden.
Kontinuierliche Bereitstellung
Sie können die Bereitstellung Ihrer Software in Cloud Run-Funktionen automatisieren. Erstellen Sie hierfür Cloud Build-Trigger. Sie können die Trigger so konfigurieren, dass Images immer dann erstellt und bereitgestellt werden, wenn Sie den Quellcode aktualisieren.
So automatisieren Sie die Bereitstellung in Cloud Run Functions:
Fügen Sie in Ihrem Repository-Stammverzeichnis eine Konfigurationsdatei mit Schritten zum Aufrufen des Befehls
gcloud functions deploy
hinzu:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Ersetzen Sie die Platzhalterwerte in der obigen Konfigurationsdatei durch Folgendes:
FUNCTION_NAME
ist der Name der Cloud Run Functions, die Sie bereitstellen. Wenn Sie eine vorhandene Funktion aktualisieren, muss dieser Wert mit dem Namen der zu aktualisierenden Funktion übereinstimmen.FUNCTION_REGION
ist die Region, in der Sie Cloud Run-Funktionen bereitstellen. Eine Liste der unterstützten Regionen finden Sie unter Cloud Run Functions-Standorte.--trigger-http
ist der Triggertyp der Funktion, in diesem Fall eine HTTP-Anfrage (Webhook).RUNTIME
ist die Laufzeit, in der die Funktion ausgeführt werden soll.
Erstellen Sie mit der im vorherigen Schritt erstellten Konfigurationsdatei einen Build-Trigger:
Öffnen Sie die Seite Trigger in der Google Cloud Console:
Wählen Sie oben auf der Seite im Drop-down-Menü zur Projektauswahl Ihr Projekt aus.
Klicken Sie auf Trigger erstellen.
Geben Sie im Feld Name einen Namen für den Trigger ein.
Wählen Sie unter Region die Region für Ihren Trigger aus.
Wählen Sie unter Ereignis das Repository-Ereignis aus, um den Trigger zu starten.
Wählen Sie unter Quelle Ihr Repository und den Branch- oder Tag-Namen aus, der den Trigger auslöst. Weitere Informationen zum Angeben, welche Branches automatisch erstellt werden sollen, finden Sie unter Build-Trigger erstellen.
Wählen Sie unter Konfiguration die Option Cloud Build-Konfigurationsdatei (YAML oder JSON) aus.
Geben Sie im Feld Speicherort der Cloud Build-Konfigurationsdatei
cloudbuild.yaml
nach/
ein.Klicken Sie auf Erstellen, um den Build-Trigger zu speichern.
Jedes Mal, wenn Sie neuen Code in Ihr Repository übertragen, lösen Sie automatisch einen Build aus und stellen diesen in Cloud Run-Funktionen bereit.
Weitere Informationen zum Erstellen von Cloud Build-Triggern finden Sie unter Build-Trigger erstellen und verwalten.
Nächste Schritte
- Blau/Grün-Bereitstellungen in Compute Engine durchführen
- Mehr zum Bereitstellen in Cloud Run
- Mehr zum Bereitstellen in GKE
- Mehr zum Bereitstellen in Firebase
- Mehr zum Bereitstellen in App Engine
- Build-Fehler beheben