Dienste aus Quellcode bereitstellen

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.

Im Hintergrund verwendet dieser Befehl Google Cloud-Buildpacks und Cloud Build, um automatisch Container-Images aus Ihrem Quellcode zu erstellen, ohne Docker auf Ihrem Computer installieren oder Buildpacks oder Cloud Build einrichten zu müssen. Cloud Run verwendet standardmäßig den von Cloud Build bereitgestellten Standardmaschinentyp. Wenn Sie gcloud run deploy --source ausführen, müssen Sie den Befehl gcloud builds submit nicht auch noch ausführen.

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 Sicherheitsupdates

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

Beschränkungen dieser Funktion

  • 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. mit gcloud 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 etag und Last-Modified in Ihrer Anwendung zu deaktivieren.
  • Für die Bereitstellung aus der Quelle mit Google Cloud Buildpacks wird immer gcr.io/buildpacks/builder:latest verwendet. Wenn Ihre bevorzugte Sprache oder Betriebssystemkonfiguration in latest nicht 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.

Hinweise

  • 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 and Cloud Build APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    Nachdem die Cloud Run Admin API aktiviert wurde, wird das Compute Engine-Standarddienstkonto automatisch erstellt.

Erforderliche Rollen

Sie oder Ihr Administrator müssen dem Bereitstellerkonto und dem Cloud Build-Dienstkonto 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:

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@ \
      --role=roles/run.builder
  

Ersetzen Sie PROJECT_NUMBER durch die Google CloudProjektnummer und PROJECT_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.

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.

Über Quelle 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

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Wechseln Sie in Ihr Quellverzeichnis. Das Quellverzeichnis verwendet ein Dockerfile, falls vorhanden. Es ist jedoch nicht erforderlich.

  3. Erstellen Sie Ihren Dienst und stellen Sie ihn bereit:

    gcloud run deploy SERVICE --source .

    Ersetzen Sie SERVICE durch den gewünschten Dienstnamen.

    Wenn Ihr Quellcode eine der unterstützten Sprachlaufzeiten verwendet und Sie automatische Basis-Image-Updates für Ihre Laufzeit konfigurieren möchten, geben Sie optional das Flag --automatic-updates und das Flag --base-image mit dem Basis-Image für Ihren Dienst an, z. B. nodejs22.

  4. Beantworten Sie die Aufforderungen, die erforderlichen APIs zu installieren, indem Sie nach Aufforderung y antworten. 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.

  5. Warten Sie, bis der Build und die Bereitstellung abgeschlossen sind. Nach Abschluss wird in Cloud Run eine Erfolgsmeldung angezeigt.

  6. 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 Erweiterung Cloud Run Model Context Protocol (MCP) Server:

    1. Installieren Sie die neueste 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“)
    2. Cloud Run-Erweiterung installieren:

      gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
    3. Melden Sie sich in der Google Cloud CLI an:

      gcloud auth login
    4. Standardanmeldedaten für Anwendungen einrichten:

      gcloud auth application-default login
    5. Wechseln Sie in das Verzeichnis mit dem Quellcode.

    6. Starten Sie die Gemini-Befehlszeile:

      gemini
    7. 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_folder aus.
    8. Warten Sie, bis der Build und die Bereitstellung abgeschlossen sind. Nach Abschluss wird in Cloud Run eine Erfolgsmeldung angezeigt.

    VS Code

    Informationen zum Bereitstellen eines Cloud Run-Dienstes aus dem Quellcode mit VS Code im Gemini Code Assist-Agent-Modus finden Sie hier./deploy

    Wenn Sie den Cloud Run-MCP-Server im Gemini Code Assist-Agentenmodus verwenden möchten, fügen Sie der JSON-Datei mit Ihren Gemini-Einstellungen die folgende Konfiguration hinzu:

    "mcpServers":{
      "cloud-run": {
        "command": "npx",
        "args": ["-y", "@google-cloud/cloud-run-mcp"]
      }
    }

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:

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.