Auf dieser Seite wird beschrieben, wie Sie einen neuen Dienst oder eine neue Dienstüberarbeitung in Cloud Run direkt aus dem Quellcode mithilfe eines einzelnen gcloud CLI-Befehls gcloud run deploy mit dem Flag --source bereitstellen. Eine Beispiel-Schritt-für-Schritt-Anleitung für die Bereitstellung eines Hello World-Dienstes finden Sie unter Kurzanleitungen für die Bereitstellung aus der Quelle.
- Aus der Quelle bereitstellen (Standard): Bei dieser Option werden Buildpacks von Google Cloud und Cloud Build verwendet, um automatisch Container-Images aus Ihrem Quellcode zu erstellen, ohne dass Sie Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten müssen. Cloud Run verwendet standardmäßig den von Cloud Build bereitgestellten Standardmaschinentyp.
Wenn Sie
gcloud run deploy --sourceausführen, müssen Sie den Befehlgcloud builds submitnicht mehr ausführen. - Aus der Quelle bereitstellen, ohne zu erstellen (Vorabversion): Mit dieser Option werden Artefakte direkt in Cloud Run bereitgestellt, wobei der Cloud Build-Schritt umgangen wird. Das ermöglicht schnelle Bereitstellungszeiten.
Beachten Sie, dass Quellbereitstellungen Artifact Registry zum Speichern von erstellten Containern verwenden. Wenn Ihr Projekt noch kein Artifact Registry-Repository mit dem Namen cloud-run-source-deploy in der Region hat, in der Sie die Bereitstellung durchführen, erstellt dieses Feature automatisch ein Artifact Registry-Repository mit dem Namen cloud-run-source-deploy.
Wenn im Quellcodeverzeichnis ein Dockerfile vorhanden ist, wird der hochgeladene Quellcode mit diesem Dockerfile erstellt. Wenn im Quellcodeverzeichnis kein Dockerfile vorhanden ist, erkennt Google Cloud-Buildpacks die von Ihnen verwendete Sprache automatisch und ruft die Abhängigkeiten des Codes ab, um ein produktionsfähiges Container-Image zu erstellen, wobei ein von Google verwaltetes sicheres Basis-Image verwendet wird.
Standardmäßig werden Sicherheitskorrekturen nur angewendet, wenn der Cloud Run-Dienst bereitgestellt wird. Wenn Sie automatische Sicherheitsupdates für einen Dienst aktivieren, erhält dieser Dienst automatisch und ohne Ausfallzeit Patches. Weitere Informationen zum Konfigurieren von SicherheitsupdatesHinweise
- Prüfen Sie, ob Sie ein neues Projekt für Cloud Run eingerichtet haben, wie auf der Seite Einrichtung beschrieben.
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.
-
Enable the Cloud Run Admin API.
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.Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.
Erforderliche Rollen
Wenn Sie aus der Quelle bereitstellen möchten, müssen Sie oder Ihr Administrator dem Bereitstellerkonto die folgenden IAM-Rollen zuweisen.
Klicken, um die erforderlichen Rollen für das Bereitstellerkonto aufzurufen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen und Bereitstellen aus der Quelle benötigen:
- Cloud Run Source Developer (
roles/run.sourceDeveloper) für Ihr Projekt - Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer) für Ihr Projekt - Rolle Dienstkontonutzer (
roles/iam.serviceAccountUser) für die Cloud Run-Dienstidentität
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Dienst mitGoogle Cloud -APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Unterstützte Sprachen
Zusätzlich zu den Quellen bei einem Dockerfile wird die Bereitstellung aus der Quelle in den folgenden Sprachen mit Buildpacks von Google Cloud unterstützt:
| Laufzeit | Quellbereitstellung | Buildpack-Konfiguration |
|---|---|---|
| Go | Go-Dienst bereitstellen | Go-Buildpacks konfigurieren |
| Node.js | Node.js-Dienst bereitstellen | Node.js-Buildpacks konfigurieren |
| Python | Python-Dienst bereitstellen | Python-Buildpacks konfigurieren |
| Java (einschließlich Kotlin, Groovy, Scala) |
Java-Dienst bereitstellen | Java-Buildpacks konfigurieren |
| .NET | .NET-Dienst bereitstellen | .NET-Buildpacks konfigurieren |
| Ruby | Ruby-Dienst bereitstellen | Ruby-Buildpacks konfigurieren |
| PHP | PHP-Dienst bereitstellen | PHP-Buildpacks konfigurieren |
Weitere Informationen zu unterstützten Sprachversionen
Aus Quelle mit Build bereitstellen
In diesem Abschnitt wird beschrieben, wie Sie Google Cloud-Buildpacks und Cloud Build verwenden, um automatisch Container-Images aus Ihrem Quellcode zu erstellen, ohne Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten zu müssen.
Beschränkungen
- Da die Bereitstellung aus der Quelle Artifact Registry und Cloud Build verwendet, ist dieses Feature nur in von Artifact Registry und Cloud Build unterstützten Regionen verfügbar.
- Die Bereitstellung aus der Quelle ist eine praktische Funktion, die keine vollständige Anpassung des Builds zulässt. Für eine bessere Kontrolle erstellen Sie das Container-Image mit Cloud Build, z. B. mit
gcloud builds submit, und stellen dann das Container-Image bereit, z. B. mitgcloud run deploy --image. - Bei der Bereitstellung aus der Quelle mit Google Cloud Buildpacks wird das Datum der letzten Änderung der Quelldateien auf den 1. Januar 1980 festgelegt. Dies ist das Standardverhalten von Buildpacks und wurde entwickelt, um reproduzierbare Builds zu unterstützen. Je nach Sprachframework kann sich dies auf das browserseitige Caching statischer Dateien auswirken. Wenn Ihre Anwendung davon betroffen ist, empfiehlt Google, die HTTP-Header
etagundLast-Modifiedin Ihrer Anwendung zu deaktivieren. - Für die Bereitstellung aus der Quelle mit Google Cloud Buildpacks wird immer
gcr.io/buildpacks/builder:latestverwendet. Wenn Ihre bevorzugte Sprache oder Betriebssystemkonfiguration inlatestnicht verfügbar ist, verwenden Sie einen bestimmten Builder, um ein Anwendungs-Image mit Ihrem bevorzugten Builder zu erstellen. Sie können Ihren Dienst aus der Quelle mit Kotlin und anderen JVM-Sprachen wie Java bereitstellen. Die Sprache, die Sie verwenden, muss den folgenden Regeln entsprechen:
- Sie können die Anwendung mit Maven oder Gradle erstellen.
- Die Build-Datei enthält alle Plug-ins, die für Produktklassen erforderlich sind.
Vor der Bereitstellung mit Build
Bevor Sie die Bereitstellung aus der Quelle mit Build durchführen:
Folgen Sie der Anleitung unter Vorbereitung.
-
Enable the Cloud Build API.
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.
Erforderliche Rollen
Wenn Sie die Bereitstellung aus der Quelle mit Build durchführen möchten, müssen Sie oder Ihr Administrator dem Cloud Build-Dienstkonto die folgenden IAM-Rollen zuweisen.
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 Ihre Google CloudProjektnummer und PROJECT_ID durch Ihre 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.
Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihr Cloud Run-Dienst mitGoogle Cloud -APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.
Mit Build bereitstellen
Wenn Sie aus dem Quellcode bereitstellen möchten, klicken Sie auf den Tab, um eine Anleitung zum Verwenden des gewünschten Tools zu erhalten.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Wechseln Sie in Ihr Quellverzeichnis. Das Quellverzeichnis verwendet ein Dockerfile, falls vorhanden. Es ist jedoch nicht erforderlich.
Dienst erstellen und bereitstellen:
gcloud run deploy SERVICE --source .
Ersetzen Sie
SERVICEdurch den gewünschten Dienstnamen.Beantworten Sie die Aufforderungen, die erforderlichen APIs zu installieren, indem Sie nach Aufforderung
yantworten. Dies ist nur einmal für ein Projekt erforderlich. Antworten Sie auf andere Aufforderungen, indem Sie die Plattform und Region angeben, sofern Sie diese nicht wie auf der Einrichtungsseite beschrieben eingerichtet haben.Warten Sie, bis der Build und die Bereitstellung abgeschlossen sind. Nach Abschluss wird in Cloud Run eine Erfolgsmeldung angezeigt.
Installieren Sie die aktuelle Version der Gemini CLI in einer der folgenden Entwicklungsumgebungen:
- Terminal
- Cloud Shell
- VS Code mit dem Gemini Code Assist-Agent-Modus (siehe Tab „VS Code“)
Cloud Run-Erweiterung installieren:
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Melden Sie sich in der Google Cloud CLI an:
gcloud auth login
Standardanmeldedaten für Anwendungen einrichten:
gcloud auth application-default login
Wechseln Sie in das Verzeichnis mit dem Quellcode.
Starten Sie die Gemini CLI:
gemini
Erstellen Sie Ihren Dienst und stellen Sie ihn bereit:
/deploy
- Wenn Sie aufgefordert werden, das Google Cloud -Projekt anzugeben, geben Sie den Namen Ihres Projekts ein.
- Wenn Sie aufgefordert werden, ein Tool auszuwählen, wählen Sie
deploy_local_folderaus.
Warten Sie, bis der Build und die Bereitstellung abgeschlossen sind. Nach Abschluss wird in Cloud Run eine Erfolgsmeldung angezeigt.
Wechseln Sie in Ihr Quellverzeichnis. Das Quellverzeichnis verwendet ein Dockerfile, falls vorhanden. Es ist jedoch nicht erforderlich.
Erstellen Sie in Ihrem Projektverzeichnis eine
compose.yaml-Datei mit Ihren Dienstdefinitionen.services: web: build: . ports: - "8080:8080"
Sie können auch weitere Konfigurationsoptionen angeben, z. B. Umgebungsvariablen, Secrets und Volume-Bereitstellungen.
Führen Sie den Befehl
gcloud beta run compose upaus, um die Dienste bereitzustellen:gcloud beta run compose up compose.yamlAntworten Sie mit
yauf alle Aufforderungen, erforderliche Komponenten zu installieren oder APIs zu aktivieren.Optional: Veröffentlichen Sie Ihren Dienst, wenn Sie den nicht authentifizierten Zugriff auf den Dienst zulassen möchten.
Nach der Bereitstellung stellt diese Serviceüberarbeitung 100 % des Traffics bereit.
Cloud Code
Informationen zum Bereitstellen aus der Quelle mit Cloud Code finden Sie in den Anleitungen zu IntelliJ und Visual Studio Code.
Gemini-Befehlszeile
Verwenden Sie den Befehl /deploy im Tool Gemini CLI, um einen Cloud Run-Dienst aus dem Quellcode bereitzustellen.
So verwenden Sie die Gemini CLI mit der Cloud Run-Erweiterung:
MCP
Wenn Sie einen Cloud Run-Dienst aus Quellcode von einem MCP-Client (Model Context Protocol) bereitstellen möchten, installieren Sie den Cloud Run-MCP-Server.
Die Installationsanleitung variiert je nach MCP-Client. Häufig müssen Sie der JSON-Datei mit den Einstellungen die folgenden Zeilen hinzufügen:
"mcpServers":{ "cloud-run": { "command": "npx", "args": ["-y", "@google-cloud/cloud-run-mcp"] } }
Schreiben
Sie können Ihre Compose-Spezifikation in einer YAML-Datei speichern und dann mit einem einzigen gcloud-Befehl aus dem Quellcode als Cloud Run-Dienst bereitstellen.
Nach der Bereitstellung wird die Cloud Run-Dienst-URL angezeigt. Kopieren Sie diese URL und fügen Sie sie in Ihren Browser ein, um den ausgeführten Container aufzurufen. Sie können die Standardauthentifizierung in der Google Cloud Console deaktivieren.
Über Quelle bereitstellen, ohne zu erstellen
Sie können Quellartefakte direkt in Cloud Run bereitstellen und den Cloud Build-Schritt umgehen. Anstatt ein Container-Image aus dem Quellcode zu erstellen, können Sie ein vorgefertigtes Archiv Ihrer Anwendung direkt in einen Cloud Storage-Bucket hochladen. Cloud Run nimmt dann dieses Archiv und führt es direkt auf einem Basis-Image aus. Dieser Ansatz führt zu deutlich schnelleren Bereitstellungszeiten.
Beschränkungen
Die Bereitstellung in der Quelle ohne Build wird nur für Folgendes unterstützt:
- Cloud Run-Dienste
- Unterstützte Runtimes (keine Dockerfile-Unterstützung).
- Quellarchiv (.tar.gz) <= 250 MiB
- Binärdateien (z. B. Go-Binärdateien) oder Skripts (z. B. Python-Skripts) müssen mit der x86-Architektur kompatibel sein.
- Die Quelle muss in sich geschlossen sein und alle Abhängigkeiten müssen enthalten sein. Das Laufzeit-Basis-Image enthält nur das minimale Betriebssystem und einige Sprachbibliotheken.
Vor der Bereitstellung ohne Build
So verwenden Sie die Funktion „Ohne Build bereitstellen“:
- Führen Sie die Schritte unter Vorbereitung aus.
Aktivieren Sie die Cloud Run API und die Cloud Storage API:
gcloud services enable run.googleapis.com \ storage.googleapis.com
Sie müssen die Anwendungsabhängigkeiten lokal installieren, bevor Sie die Anwendung bereitstellen, da sie nicht installiert werden (kein Build).
Ohne Build bereitstellen
In diesem Abschnitt wird beschrieben, wie Sie Ihr Artefakt direkt in Cloud Run bereitstellen, ohne es zu erstellen.
gcloud
Wenn Sie ein lokales Quellverzeichnis bereitstellen möchten, verwenden Sie das Flag --no-build, um dem Befehl deploy mitzuteilen, dass der Cloud Build-Schritt umgangen werden soll:
gcloud beta run deploy SERVICE_NAME \ --source APPLICATION_PATH \ --no-build \ --base-image=BASE_IMAGE \ --command=COMMAND \ --args=ARG
Ersetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes.APPLICATION_PATH: der Speicherort Ihrer Anwendung im lokalen Dateisystem.BASE_IMAGE: Das Laufzeit-Basis-Image, das Sie für Ihre Anwendung verwenden möchten. Beispiel:us-central1-docker.pkg.dev/serverless-runtimes/google-24-full/runtimes/nodejs24.COMMAND: Der Befehl, mit dem der Container gestartet wird.ARG: Ein Argument, das Sie an den Containerbefehl senden. Wenn Sie mehrere Argumente verwenden, geben Sie jedes Argument in einer eigenen Zeile an.
YAML
Sie können Ihre Dienstspezifikation in einer YAML-Datei speichern und dann mit der gcloud CLI oder dem Google Cloud console-Editorservice.yaml bereitstellen.
Erstellen Sie einen Storage-Bucket für Ihre Anwendung:
gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Ersetzen Sie Folgendes:
BUCKET_NAME: Der Name, den Sie Ihrem Bucket zuweisen möchten. Beachten Sie dabei die Benennungsanforderungen. Beispiel:my-bucketBUCKET_LOCATION: der Speicherort Ihres Buckets. Beispiel:US
Erstellen Sie ein Archiv mit dem Quellcode Ihrer Anwendung im ZIP- oder TAR-Format, z. B.:
tar -cvzf ARCHIVE_NAME APPLICATION_PATH
Ersetzen Sie Folgendes:
ARCHIVE_NAME: Der Name des zu erstellenden Archivs. Beispiel:app.tar.gz.APPLICATION_PATH: Der Speicherort Ihrer Anwendung im lokalen Dateisystem. Beispiel:~/my-application. Wenn Sie das aktuelle Arbeitsverzeichnis archivieren möchten, setzen Sie diesen Wert auf*.
Laden Sie das Anwendungsarchiv in Cloud Storage hoch:
gcloud storage cp ARCHIVE_NAME gs://BUCKET_NAME
Ersetzen Sie Folgendes:
ARCHIVE_NAME: der lokale Pfad zum Archiv, das Sie zuvor erstellt haben. Beispiel:app.tar.gz.BUCKET_NAME: Der Name des Buckets, den Sie zuvor erstellt haben. Beispiel:my-bucket.
Erstellen Sie eine neue Datei vom Typ
service.yamlmit folgendem Inhalt:apiVersion: serving.knative.dev/v2 kind: Service metadata: name: SERVICE_NAME spec: template: metadata: annotations: run.googleapis.com/sources: '{"": "gs://BUCKET_NAME/ARCHIVE_NAME"}' run.googleapis.com/base-images: '{"": "BASE_IMAGE"}' spec: containers: - image: scratch command: - COMMAND args: - ARG1 - ARG-N runtimeClassName: run.googleapis.com/linux-base-image-updateErsetzen Sie Folgendes:
SERVICE_NAME: Der Name Ihres Cloud Run-Dienstes. Dienstnamen dürfen maximal 49 Zeichen lang sein und pro Region und Projekt nur einmal vorkommen.BUCKET_NAME: Der Name des Buckets, den Sie zuvor erstellt haben. Beispiel:my-bucket.ARCHIVE_NAME: der lokale Pfad zum Archiv, das Sie zuvor erstellt haben. Beispiel:app.tar.gzBASE_IMAGE: Das Basis-Image für die Laufzeit, das Sie für Ihre Anwendung verwenden möchten. Beispiel:us-central1-docker.pkg.dev/serverless-runtimes/google-24-full/runtimes/nodejs24COMMAND: Der Befehl, mit dem der Container gestartet werden soll.ARG1: das Argument, das Sie an den Containerbefehl senden. Wenn Sie mehrere Argumente verwenden, geben Sie jedes Argument in einer eigenen Zeile an, z. B.ARG-N.
Stellen Sie den neuen Dienst bereit:
gcloud run services replace service.yaml
REST API
REST API:
curl -H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-X POST \
-d '{"template": {"containers": [{"command": ["npm"], "args": ["start"], "image": "scratch", "baseImageUri": "google-22/nodejs22", "sourceCode": {"cloudStorageSource": {"bucket": "'GCS_BUCKET_NAME", "object":"ARCHIVE"}}}]}}' \
https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services?serviceId=SERVICE_NAME
Beispiele für die Bereitstellung aus dem Quellcode ohne Build
In diesem Abschnitt finden Sie Beispiele für die Bereitstellung aus dem Quellcode ohne Build.
Node.js
Node.js-Dienst erstellen:
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworld
Erstellen Sie eine
package.json-Datei mit folgendem Inhalt:Erstellen Sie im selben Verzeichnis eine
index.js-Datei und kopieren Sie die folgenden Zeilen hinein:Mit diesem Code wird ein einfacher Webserver erstellt, der den von der Umgebungsvariable
PORTdefinierten Port überwacht.Führen Sie im Verzeichnis
helloworldden folgenden Befehl aus, um die Dienstabhängigkeiten lokal zu installieren:npm install
Stellen Sie den Dienst in Ihrem
helloworld-Verzeichnis mit dem Flag--no-buildbereit. Dadurch wird dem Befehldeploymitgeteilt, dass der Cloud Build-Schritt übersprungen werden soll:gcloud beta run deploy helloworld \ --source . \ --region=REGION \ --no-build \ --base-image=nodejs24 \ --command=node \ --args=index.js
Ersetzen Sie Folgendes:
REGION: die Region, in der Ihr Dienst bereitgestellt wird.
Python
Python-Dienst erstellen:
Erstellen Sie ein neues Verzeichnis mit dem Namen
helloworldund ersetzen Sie das aktuelle Verzeichnis durch dieses Verzeichnis:mkdir helloworld cd helloworldErstellen Sie eine Datei mit dem Namen
main.pyund fügen Sie den folgenden Code in diese ein:Dieser Code antwortet auf Anfragen mit der Begrüßung „Hello World“. Die HTTP-Verarbeitung erfolgt über einen Gunicorn-Webserver im Container. Wenn dieser Code direkt für die lokale Verwendung aufgerufen wird, erstellt er einen einfachen Webserver, der den von der Umgebungsvariable
PORTdefinierten Port überwacht.Erstellen Sie eine Datei mit dem Namen
requirements.txtund fügen Sie den folgenden Code in diese ein:Mit diesem Code werden für das Beispiel erforderliche Pakete hinzugefügt.
Abhängigkeiten von Anbietern:
pip3 install -r requirements.txt --target=./vendor
Stellen Sie den Dienst mit der gcloud CLI bereit. Das Flag
--no-buildweist den Befehldeployan, den Cloud Build-Schritt zu umgehen:gcloud beta run deploy helloworld \ --source . \ --region=REGION \ --no-build \ --base-image=python313 \ --command=python \ --args=main.py \ --set-env-vars PYTHONPATH=./vendor
Ersetzen Sie REGION durch die Region, in der Ihr Dienst bereitgestellt wird.
Fehlerbehebung
In diesem Abschnitt finden Sie einige Tipps zur Fehlerbehebung bei der Bereitstellung aus der Quelle ohne Build.
Lokale Entwicklung
Die Bereitstellung aus dem Quellcode ohne Verwendung von Build funktioniert ähnlich wie das Einbinden Ihres Codes oder Ihrer ausführbaren Datei in das Basis-Image.
Beispiel:
Kopieren Sie alle Inhalte:
cp -R python/hello-world/ workspace
Führen Sie das Basis-Image als Root-Nutzer mit der gemounteten Quelle aus. Optional können Sie
-p 8080:8080einfügen, wenn Sie curl von einem Hostcomputer aus ausführen müssen.docker run -it -v "LOCAL_PATH" -u 0 us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/python313 /bin/bash`
Ersetzen Sie LOCAL_PATH durch den Speicherort Ihrer lokalen Quelldateien.
Server ausführen:
python main.py
Ausführungsprotokoll
Das Ausführungsprotokoll ist nützlich, um Bereitstellungsfehler zu beheben. Rufen Sie in der Google Cloud Console Observability > Logs auf.
Zugriff auf Cloud Storage verweigert
Wenn bei Ihrem Cloud Run-Dienst beim Zugriff auf Cloud Storage-Objekte Fehler vom Typ „Permission denied“ (Berechtigung verweigert) auftreten, müssen Sie Ihrem Cloud Run-Dienstkonto die Rolle roles/storage.objectViewer zuweisen:
gcloud projects add-iam-policy-binding PROJECT \ --member="SERVICE_ACCOUNT" \ --role="roles/storage.objectViewer"
Ersetzen Sie Folgendes:
- PROJECT: Projekt-ID in Google Cloud .
- SERVICE_ACCOUNT: Ihr Cloud Run-Dienstkonto.
Beispiel:
service-123@serverless-robot-staging.iam.gserviceaccount.com.
Build aus der Quelle automatisieren
Als Best Practice zur Vermeidung nicht versionierter Änderungen in der lokalen Quelle empfiehlt Google die Bereitstellung automatisch, wenn Änderungen per Push-Befehl an Ihr Git-Repository übertragen werden. Damit dies einfacher wird, können Sie eine kontinuierliche Bereitstellung mit Ihrem Cloud Run-Dienst verbinden und konfigurieren. Wenn Sie Ihre GitHub-Repositories mit Cloud Run verbinden, können Sie Builds konfigurieren und Ihre Repositories bereitstellen, ohne Dockerfiles schreiben oder Dateien erstellen zu müssen.
Wenn Sie automatisierte Builds konfigurieren möchten, richten Sie die Automatisierung wie auf der Seite für kontinuierliche Builds beschrieben ein. Achten Sie dabei darauf, dass Sie die Option zum Erstellen von Quellcode mit Buildpacks auswählen.Nächste Schritte
Nachdem Sie einen Cloud Run-Dienst bereitgestellt haben, können Sie Folgendes tun:
- Schrittweise Rollouts, Rollback für Überarbeitungen, Traffic-Migration
- Dienstlogs ansehen
- Leistung von Diensten überwachen
- Speicherlimits festlegen
- Umgebungsvariablen festlegen
- Gleichzeitigkeit von Diensten ändern
- Dienste verwalten
- Dienstüberarbeitungen verwalten
Informationen zu den Konfigurationen für die Quellbereitstellung:
Mithilfe von Cloud Build-Triggern können Sie die Builds und Bereitstellungen Ihrer Cloud Run-Dienste automatisieren.