Auf dieser Seite wird erläutert, wie Sie Anwendungen mithilfe von Cloud Build 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.
Hinweis
Aktivieren Sie die App Engine API.
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 gespeichert sein, z. B. Cloud Source Repositories, GitHub oder Bitbucket.
Erforderliche IAM-Berechtigungen
Wählen Sie in der Google Cloud Console Ihr Projekt aus.
Weisen Sie dem Standarddienstkonto der App Engine die Rolle Cloud Build-Dienstkonto zu. Wenn das Dienstkonto keine in der Liste angezeigt wird, suchen Sie das Dienstkonto auf der Seite Dienstkonten.
Weisen Sie dem Build die Rollen App Engine-Administrator und Dienstkontonutzer zu. Dienstkonto:
Rufen Sie die Cloud Build-Seite Einstellungen auf:
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 weitergegeben, sodass Sie in diesem Image alle gcloud
-Befehle ausführen können.
Führen Sie die folgenden Schritte aus, um eine Anwendung in App Engine bereitzustellen:
Erstellen Sie eine Cloud Build-Konfigurationsdatei mit dem Namen
cloudbuild.yaml
odercloudbuild.json
.In der Konfigurationsdatei:
- Fügen Sie das Feld
name
ein, um dencloud-sdk
-Build-Schritt anzugeben. - Fügen Sie das Feld
entrypoint
hinzu, um dasbash
-Tool beim Aufrufen voncloud-sdk
zu verwenden. Wählen Sie im Feld
args
den Befehlgcloud app deploy
und legen Sie einentimeout
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, wenngcloud 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" }
- Fügen Sie das Feld
Build starten, wobei
SOURCE_DIRECTORY
der Pfad oder die URL zur Quelle ist undREGION
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:
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" }
Erstellen Sie mit der im vorherigen Schritt erstellten Konfigurationsdatei einen Build-Trigger:
Öffnen Sie in der Google Cloud Console die Seite Trigger:
Wählen Sie oben auf der Seite im Drop-down-Menü zur Projektauswahl Ihr Projekt aus.
Klicken Sie auf Öffnen.
Klicken Sie auf Trigger erstellen.
Auf der Seite Erstellen Sie einen Trigger geben Sie die folgenden Einstellungen ein:
Geben Sie einen Namen für den Trigger ein.
Wählen Sie das Repository-Ereignis aus, das den Trigger aufrufen soll.
Wählen Sie das Repository aus, das Ihren Quellcode und die Build-Konfigurationsdatei enthält.
Geben Sie den regulären Ausdruck für den Zweig- oder Tag-Namen an, mit dem der Trigger gestartet wird.
Konfiguration: Wählen Sie die Build-Konfigurationsdatei aus, die Sie zuvor erstellt haben.
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
- Mehr zum Bereitstellen in Cloud Run
- Blau/Grün-Bereitstellungen in Compute Engine ausführen
- Mehr zum Bereitstellen in GKE
- Weitere Informationen zum Bereitstellen in Cloud Run-Funktionen
- Mehr zum Bereitstellen in Firebase
- Build-Fehler beheben