Auf dieser Seite wird erläutert, wie mithilfe von Cloud Build Anwendungen in App Engine bereitgestellt werden. 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.
Halten Sie den Quellcode Ihrer Anwendung bereit. Ihr Quellcode muss in einem Repository wie GitHub oder Bitbucket gespeichert sein.
Zum Ausführen der
gcloud-Befehle auf dieser Seite müssen Sie die Google Cloud CLI installieren.
Erforderliche IAM-Berechtigungen (Identity and Access Management)
-
Rufen Sie in der Google Cloud -Console die Seite settings Cloud Build Berechtigungen auf:
Legen Sie für das angegebene Cloud Build-Dienstkonto oder das Standard-Cloud Build-Dienstkonto den Status der folgenden Rollen auf Aktiviert fest:
- App Engine-Administrator (
roles/appengine.appAdmin): Ermöglicht Cloud Build, neue Versionen in App Engine bereitzustellen.- Wählen Sie im Bereich „Rolle ‚Service Account User‘ zuweisen“ ein Dienstkonto aus, das imitiert werden soll, und klicken Sie dann auf Berechtigung erteilen.
- Storage-Administrator (
roles/storage.admin): Ermöglicht das Lesen und Schreiben in Cloud Storage. - Artifact Registry-Writer (
roles/artifactregistry.writer): Ermöglicht das Abrufen von Images aus und das Schreiben in Artifact Registry. - Autor von Logs (
roles/logging.logWriter): Ermöglicht das Schreiben von Logeinträgen in Cloud Logging. - Cloud Build-Bearbeiter (
roles/cloudbuild.builds.editor): Ermöglicht Ihrem Dienstkonto, Builds auszuführen.
- App Engine-Administrator (
Bereitstellung konfigurieren
Mit Cloud Build können Sie jedes öffentlich verfügbare Container-Image zum Ausführen 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.yamlodercloudbuild.json.In der Konfigurationsdatei:
- Fügen Sie das Feld
nameein, um dencloud-sdk-Build-Schritt anzugeben. - Fügen Sie das Feld
entrypointhinzu, um dasbash-Tool beim Aufrufen voncloud-sdkzu verwenden. Wählen Sie im Feld
argsden Befehlgcloud app deployund legen Sie einentimeoutfü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 deploylä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
Starten Sie den Build, wobei
SOURCE_DIRECTORYder Pfad oder die URL zum Quellcode undREGIONeine der unterstützten Build-Regionen ist: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 deployhinzu: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 die Seite Trigger in der Google Cloud Console:
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 durchführen
- Mehr zum Bereitstellen in GKE
- Mehr zum Bereitstellen in Cloud Run Functions
- Mehr zum Bereitstellen in Firebase
- Build-Fehler beheben