In App Engine bereitstellen

Auf dieser Seite wird erläutert, wie Sie Anwendungen mithilfe von Cloud Build in App Engine bereitstellen. Wenn Sie Cloud Build noch nicht kennen, lesen Sie zuerst die Kurzanleitungen sowie die Übersicht über die Build-Konfiguration.

App Engine ist eine vollständig verwaltete, serverlose Plattform für die Entwicklung und das Hosting von Webanwendungen in großem Umfang. Weitere Informationen zu App Engine finden Sie in der App Engine-Dokumentation.

Hinweise

  • Aktivieren Sie die App Engine API.

    App Engine API aktivieren

  • Zum Ausführen der gcloud-Befehle auf dieser Seite müssen Sie die Google Cloud CLI installieren.

  • Halten Sie den Anwendungsquellcode bereit, den Sie erstellen und in App Engine bereitstellen möchten. Ihr Quellcode muss in einem Repository wie Cloud Source Repositories, GitHub oder Bitbucket gespeichert sein.

Erforderliche IAM-Berechtigungen

Weisen Sie dem Cloud Build-Dienstkonto die Rolle App Engine-Administrator und Dienstkontonutzer zu:

  1. Rufen Sie die Cloud Build-Seite Einstellungen auf:

    Zur Seite mit den Cloud Build-Einstellungen

  2. Setzen Sie den Status der Rolle App Engine-Administrator und der Rolle Dienstkontonutzer auf Aktiviert.

Bereitstellung konfigurieren

Mit Cloud Build können Sie jedes öffentlich verfügbare Container-Image zur Ausführung Ihrer Aufgaben verwenden. Geben Sie dazu in der Cloud Build-Konfigurationsdatei das Image in einem Build-step an.

App Engine bietet den Befehl gcloud app deploy, mit dem unter Verwendung Ihres Quellcodes ein Image erstellt und in App Engine 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 gcloud CLI übergeben, sodass Sie alle gcloud-Befehle in diesem Image ausführen können.

Führen Sie die folgenden Schritte aus, um eine Anwendung in App Engine bereitzustellen:

  1. Erstellen Sie eine Cloud Build-Konfigurationsdatei mit dem Namen cloudbuild.yaml oder cloudbuild.json.

  2. In der Konfigurationsdatei:

    • Fügen Sie das Feld name ein, um den cloud-sdk-Build-Schritt anzugeben.
    • Fügen Sie das Feld entrypoint hinzu, um das bash-Tool beim Aufrufen von cloud-sdk zu verwenden.
    • Wählen Sie im Feld args den Befehl gcloud app deploy und legen Sie einen timeout für App Engine beim Aufrufen von Cloud Build fest. Grund dafür ist, dass Build-Schritte und Builds in Cloud Build standardmäßig ein Zeitlimit von 10 Minuten haben. App Engine-Bereitstellungen können jedoch länger dauern. Durch Angabe eines längeren Zeitlimits wird sichergestellt, dass für den Build keine Zeitüberschreitung auftritt, wenn gcloud app deploy länger als 10 Minuten dauert.

      Zeitüberschreitungsfehler bei Verwendung der App Engine-Standardumgebung: Sie können Zeitlimits wie hier beschrieben nur bei Verwendung der flexiblen App Engine-Umgebung konfigurieren. Die App Engine-Standardumgebung lässt das Konfigurieren des Build-Zeitlimits nicht zu. Wenn Sie Cloud Build für die Bereitstellung in der App Engine-Standardumgebung verwenden und Ihr Build mit einem Zeitüberschreitungsfehler fehlschlägt, können Sie die flexible App Engine-Umgebung oder Cloud Run anstelle der App Engine-Standardumgebung verwenden.

    • Fügen Sie einen Build-timeout-Wert von mehr als 10 Minuten hinzu.

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: 'bash'
      args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy']
    timeout: '1600s'
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
        "entrypoint": "bash",
        "args": [
          "-c",
          "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy"
         ]
      }
      ],
      "timeout": "1600s"
    }
    
  3. Starten Sie den Build, wobei SOURCE_DIRECTORY der Pfad oder die URL zum Quellcode und REGION eine der unterstützten Build-Regionen ist, um den Build zu starten:

     gcloud builds submit --region=REGION SOURCE_DIRECTORY
    

Kontinuierliche Bereitstellung

Sie können die Bereitstellung Ihrer Software in App Engine automatisieren, indem Sie Cloud Build-Trigger erstellen. 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 App Engine:

  1. Fügen Sie in Ihrem Repository eine Konfigurationsdatei mit Schritten zum Aufrufen des Befehls gcloud app deploy hinzu:

    YAML

    steps:
    - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
      entrypoint: 'bash'
      args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy']
    timeout: '1600s'
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/google.com/cloudsdktool/cloud-sdk",
        "entrypoint": "bash",
        "args": [
          "-c",
          "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy"
         ]
      }
      ],
      "timeout": "1600s"
    }
    
  2. Erstellen Sie mit der im vorherigen Schritt erstellten Konfigurationsdatei einen Build-Trigger:

    1. Öffnen Sie in der Google Cloud Console die Seite Trigger:

      Zur Seite "Trigger"

    2. Wählen Sie oben auf der Seite im Drop-down-Menü zur Projektauswahl Ihr Projekt aus.

    3. Klicken Sie auf Öffnen.

    4. Klicken Sie auf Trigger erstellen.

      Auf der Seite Erstellen Sie einen Trigger geben Sie die folgenden Einstellungen ein:

      1. Geben Sie einen Namen für den Trigger ein.

      2. Wählen Sie das Repository-Ereignis aus, das den Trigger aufrufen soll.

      3. Wählen Sie das Repository aus, das Ihren Quellcode und die Build-Konfigurationsdatei enthält.

      4. Geben Sie den regulären Ausdruck für den Zweig- oder Tag-Namen an, mit dem der Trigger gestartet wird.

      5. Konfiguration: Wählen Sie die Build-Konfigurationsdatei aus, die Sie zuvor erstellt haben.

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

Jedes Mal, wenn Sie neuen Code in Ihr Repository übertragen, starten Sie automatisch einen Build und stellen ihn in App Engine bereit.

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

Nächste Schritte