Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

In Cloud Run bereitstellen

Auf dieser Seite wird erläutert, wie Cloud Run-Dienste mithilfe von Cloud Build automatisch bereitgestellt werden. Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie die Übersicht über die Build-Konfiguration.

Cloud Run ist eine verwaltete Computing-Plattform, mit der Sie zustandslose Container in einer serverlosen Umgebung ausführen können. Mit Cloud Build können Sie Container-Images aus Container Registry und Artifact Registry für Cloud Run bereitstellen. Sie können ein vorhandenes Image bereitstellen, ein Image erstellen und bereitstellen oder das Deployment automatisieren.

Weitere Informationen zu Cloud Run finden Sie in der Dokumentation zu Cloud Run.

Hinweis

  • Cloud Build, Cloud Run, Container Registry, and Resource Manager APIs aktivieren.

    Aktivieren Sie die APIs

  • Halten Sie den Quellcode Ihrer Anwendung bereit.

  • Zum Ausführen des Befehls gcloud auf dieser Seite installieren Sie das gcloud-Befehlszeilentool.

Erforderliche IAM-Berechtigungen

Wenn Ihr Image in dem Cloud-Projekt gespeichert ist, in dem Sie es bereitstellen möchten, oder wenn Ihr Image in Container Registry öffentlich ist, benötigen Sie die folgenden IAM-Berechtigungen:

Komplette Verwaltung

Zum Bereitstellen in Cloud Run (vollständig verwaltet) gewähren Sie dem Cloud Build-Dienstkonto die Rollen "Cloud Run-Administrator" und "Dienstkontonutzer":

  1. Öffnen Sie in der Cloud Console die Seite mit den Cloud Build-Einstellungen:

    Rufen Sie die Cloud Build-Einstellungsseite auf:

  2. Legen Sie im Bereich "Dienstkontoberechtigungen" den Status der Rolle Cloud Run-Administrator auf AKTIVIERT fest:

    Screenshot der Seite "Dienstkontoberechtigungen"

  3. Klicken Sie im zusätzlichen Pop-up-Fenster "Zusätzliche Schritte" auf Zugriff auf alle Dienstkonten gewähren.

Anthos in Google Cloud

Zum Bereitstellen in Cloud Run for Anthos weisen Sie dem Cloud Build-Dienstkonto die Rolle "Kubernetes Engine-Entwickler" zu:

  1. Öffnen Sie in der Cloud Console die Seite mit den Cloud Build-Einstellungen:

    Rufen Sie die Cloud Build-Einstellungsseite auf:

  2. Legen Sie im Bereich "Dienstkontoberechtigungen" den Status der Rolle Kubernetes Engine-Entwickler auf ENABLED fest:

    Screenshot der Seite "Dienstkontoberechtigungen"

Wenn das Image nicht in dem Cloud-Projekt gespeichert ist, in dem Sie es bereitstellen möchten, benötigen Sie zusätzliche IAM-Berechtigungen. Diese sind unter Images aus anderen GCP-Projekten bereitstellen beschrieben.

Container erstellen und bereitstellen

Mit Cloud Build können Sie das Container-Image erstellen, das erstellte Image in Container Registry speichern und es anschließend für Cloud Run bereitstellen.

So erstellen Sie ein Container-Image und stellen es anschließend bereit:

  1. Erstellen Sie im Stammverzeichnis des Projekts eine Konfigurationsdatei mit dem Namen cloudbuild.yaml.

  2. Fügen Sie in der Build-Konfigurationsdatei docker Build-Schritte hinzu, um das Image zu erstellen und an Container Registry zu übertragen. Fügen Sie dann den Build-Schritt gcloud hinzu, um den Befehl gcloud run deploy aufzurufen und das Image in Cloud Run bereitzustellen:

    Komplette Verwaltung

    steps:
    # Build the container image
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/PROJECT_ID/IMAGE', '.']
    # Push the container image to Container Registry
    - name: 'gcr.io/cloud-builders/docker'
      args: ['push', 'gcr.io/PROJECT_ID/IMAGE']
    # Deploy container image to Cloud Run
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: gcloud
      args: ['run', 'deploy', 'SERVICE-NAME', '--image', 'gcr.io/PROJECT_ID/IMAGE', '--region', 'REGION', '--platform', 'managed']
    images:
    - gcr.io/PROJECT_ID/IMAGE
    

    Hierbei gilt:

    • SERVICE-NAME ist der Name des Cloud Run-Dienstes.
    • REGION ist die Region des Cloud Run-Dienstes, den Sie bereitstellen.
    • PROJECT_ID ist die Google Cloud-Projekt-ID, unter der Ihr Image gespeichert ist.
    • IMAGE ist der Name des Images in Container Registry.

    Anthos in Google Cloud

    steps:
    # Build the container image
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/PROJECT_ID/IMAGE', '.']
    # Push the container image to Container Registry
    - name: 'gcr.io/cloud-builders/docker'
      args: ['push', 'gcr.io/PROJECT_ID/IMAGE']
    # Deploy container image to Cloud Run
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: gcloud
      args: ['run', 'deploy', 'SERVICE-NAME', '--image', 'gcr.io/PROJECT_ID/IMAGE', '--cluster', 'CLUSTER', '--cluster-location', 'CLUSTER_LOCATION', '--platform', 'gke']
    images:
    - gcr.io/PROJECT_ID/IMAGE
    

    Hierbei gilt:

    • SERVICE-NAME ist der Name des Cloud Run-Dienstes.
    • CLUSTER ist der Name Ihres Cloud Run for Anthos-Clusters im Google Cloud-Cluster.
    • CLUSTER_LOCATION ist der Standort Ihres Cloud Run for Anthos-Clusters in Google Cloud-Clustern.
    • PROJECT_ID ist die Google Cloud-Projekt-ID, unter der Ihr Image gespeichert ist.
    • IMAGE ist der Name des Images in Container Registry.
  3. Navigieren Sie zum Stammverzeichnis Ihres Projekts und führen Sie folgenden Befehl aus:

     gcloud builds submit
    

Nach erfolgreichem Abschluss wird eine Nachricht zusammen mit der URL des bereitgestellten Dienstes angezeigt.

Kontinuierliche Bereitstellung

Sie können die Bereitstellung Ihrer Software in Cloud Run 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:

  1. Fügen Sie im Stammverzeichnis Ihres Repositorys eine Konfigurationsdatei mit Schritten hinzu, um das Image zu erstellen, es an Container Registry zu übertragen und anschließend den Befehl gcloud run deploy aufzurufen:

    Komplette Verwaltung

     steps:
     # Build the container image
     - name: 'gcr.io/cloud-builders/docker'
       args: ['build', '-t', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA', '.']
     # Push the container image to Container Registry
     - name: 'gcr.io/cloud-builders/docker'
       args: ['push', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA']
     # Deploy container image to Cloud Run
     - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
       entrypoint: gcloud
       args:
       - 'run'
       - 'deploy'
       - 'SERVICE-NAME'
       - '--image'
       - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'
       - '--region'
       - 'REGION'
       - '--platform'
       - 'managed'
     images:
     - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'
    

    Hierbei gilt:

    • SERVICE-NAME ist der Name des Cloud Run-Dienstes.
    • REGION ist die Region des Cloud Run-Dienstes, den Sie bereitstellen.

    Anthos in Google Cloud

     steps:
     # build the container image
     - name: 'gcr.io/cloud-builders/docker'
       args: ['build', '-t', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA', '.']
     # push the container image to Container Registry
     - name: 'gcr.io/cloud-builders/docker'
       args: ['push', 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA']
     # Deploy container image to Cloud Run
     - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
       entrypoint: gcloud
       args:
       - 'run'
       - 'deploy'
       - 'SERVICE-NAME'
       - '--image'
       - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'
       - '--cluster'
       - 'CLUSTER'
       - '--cluster-location'
       - 'CLUSTER_LOCATION'
       - '--platform'
       - 'gke'
     images:
     - 'gcr.io/$PROJECT_ID/SERVICE-NAME:$COMMIT_SHA'
    

    Hierbei gilt:

    • SERVICE-NAME ist der Name des Cloud Run-Dienstes.
    • CLUSTER ist der Name Ihres Cloud Run for Anthos-Clusters im Google Cloud-Cluster.
    • CLUSTER_LOCATION ist der Standort Ihres Cloud Run for Anthos-Clusters in Google Cloud-Clustern.

    Die Substitutionsvariable $COMMIT_SHA wird von Cloud Build ersetzt, wenn sie von einem Git-Repository ausgelöst wird.

  2. Erstellen Sie mit der im vorherigen Schritt erstellten Konfigurationsdatei einen Build-Trigger:

    1. Seite "Trigger" aufrufen

      Zur Seite "Trigger"

    2. Klicken Sie auf Trigger erstellen.

    3. Geben Sie im Feld Name einen Namen für den Trigger ein.

    4. Wählen Sie unter Ereignis das Repository-Ereignis aus, um den Trigger zu starten.

    5. 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.

    6. Wählen Sie unter Build-Konfiguration die Option Cloud Build-Konfigurationsdatei aus.

    7. Geben Sie im Feld Speicherort der Cloud Build-Konfigurationsdatei cloudbuild.yaml nach / ein.

    8. Klicken Sie auf Erstellen, um den Build-Trigger zu speichern.

  3. Fertig! Von nun an werden bei jeder Übertragung in Ihr Repository automatisch ein Build und eine Bereitstellung für Ihren Cloud Run-Dienst ausgelöst.

Jedes Mal, wenn Sie neuen Code in Ihr Repository übertragen, lösen Sie automatisch einen Build aus und stellen diesen in Ihrem Cloud Run-Dienst bereit.

Weitere Informationen zum Erstellen von Cloud Build-Triggern finden Sie unter Build-Trigger erstellen und verwalten.

Minimale IAM-Berechtigungen verwenden

Wenn ein Container in einem Cloud Run-Dienst (vollständig verwaltet) bereitgestellt wird, wird er mit der Identität des Laufzeitdienstkontos dieses Cloud Run-Dienstes (vollständig verwaltet) ausgeführt. Da Cloud Build neue Container automatisch bereitstellen kann, muss Cloud Build als Laufzeitdienstkonto Ihres Cloud Run-Dienstes (vollständig verwaltet) fungieren können.

So gewähren Sie eingeschränkten Zugriff auf Cloud Build für die Bereitstellung in einem vollständig verwalteten Cloud Run-Dienst:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Dienstkonten auf.

    Zur Seite „Dienstkonten“

  2. Wählen Sie das Laufzeitdienstkonto Ihres vollständig verwalteten Cloud Run-Dienstes aus (standardmäßig PROJECT_NUMBER-compute@developer.gserviceaccount.com).

  3. Klicken Sie oben rechts auf Infofeld ansehen, um den Tab Berechtigungen aufzurufen.

  4. Klicken Sie auf die Schaltfläche Mitglied hinzufügen.

  5. Geben Sie das Cloud Build-Dienstkonto ein (PROJECT_NUMBER@cloudbuild.gserviceaccount.com).

  6. Wählen Sie im Drop-down-Menü Rolle auswählen die Rolle Dienstkonten > Dienstkontonutzer aus.

  7. Klicken Sie auf Speichern.

gcloud

Verwenden Sie den Befehl gcloud iam service-accounts add-iam-policy-binding, wobei PROJECT_NUMBER die numerische ID Ihres Projekts ist:

gcloud iam service-accounts add-iam-policy-binding \
  PROJECT_NUMBER-compute@developer.gserviceaccount.com \
  --member="serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com" \
  --role="roles/iam.serviceAccountUser"

Ersetzen Sie PROJECT_NUMBER durch die numerische ID Ihres Projekts.

Wenn Sie Cloud Run (vollständig verwaltet) mit einer benutzerdefinierten Dienstidentität verwenden, ersetzen Sie PROJECT_NUMBER-compute@developer.gserviceaccount.com durch die Adresse Ihres Dienstkontos.

Weitere Informationen finden Sie unter Bereitstellungsberechtigungen.

Codebeispiele

Im Folgenden finden Sie einige Beispiel-Repositories, die jeweils eine Beispielanwendung und eine Build-Konfigurationsdatei zum Erstellen der Anwendung in Cloud Run enthalten:

Nächste Schritte