Kurzanleitung zum Automatisieren von App Engine-Bereitstellungen mit Cloud Build

Diese Kurzanleitung zeigt, wie Sie eine Anwendung, die in Cloud Source Repositories gespeichert ist, nach einem neuen Commit automatisch in App Engine bereitstellen können.

Hinweis

  1. Führen Sie die in der Kurzanleitung zum Erstellen neuer Repositories aufgeführten Schritte aus.

    Nach Abschluss dieser Kurzanleitung haben Sie eine Anwendung, die Sie in App Engine bereitstellen können.

  2. Aktivieren Sie die App Engine Admin, Cloud Build APIs.

    Aktivieren Sie die APIs

Dem Cloud Build-Dienstkonto Zugriff auf App Engine gewähren

Cloud Build verwendet ein Dienstkonto, um Ihren Code bereitzustellen. Die Standardberechtigungen für dieses Konto lassen bestimmte Aktionen nicht zu, wie die Bereitstellung in App Engine.

Aktivieren Sie Ihr Dienstkonto für die Bereitstellung in App Engine. Dazu erteilen Sie dem Konto zusätzliche Cloud Identity and Access Management-Rollen (Cloud IAM):

  1. Öffnen Sie in der Google Cloud Console die Seite "Settings" (Einstellungen) von Cloud Build:

    Zur Seite mit den Cloud Build-Einstellungen

    Sie sehen die Seite Dienstkontoberechtigungen:

    Screenshot der Seite

  2. Setzen Sie den Status der Rolle App Engine Admin (App Engine-Administrator) auf Aktivieren.

Anwendung bereitstellen

  1. Wechseln Sie in einem Terminalfenster zum Verzeichnis mit dem Repository:

    cd hello-world
    
  2. Stellen Sie die Beispielanwendung bereit:

    gcloud app deploy app.yaml
    
  3. Prüfen Sie, ob Ihre Anwendung ausgeführt wird:

    gcloud app browse
    

    Wenn Ihre Anwendung ausgeführt wird, zeigt der Browser die Mitteilung Hello, World! an.

Datei "cloudbuild.yaml" erstellen

  1. Wechseln Sie in einem Terminalfenster zum Verzeichnis mit dem Repository:

    cd hello-world
    
  2. Erstellen Sie mit einem Texteditor eine Datei namens cloudbuild.yaml und fügen Sie die folgenden Konfigurationsdaten ein:

    steps:
    - name: "gcr.io/cloud-builders/gcloud"
      args: ["app", "deploy"]
    timeout: "1600s"
    

Datei "cloudbuild.yaml" dem Repository hinzufügen

  1. Fügen Sie dem Repository cloudbuild.yaml hinzu:

    git add .
    
  2. Führen Sie für die Datei ein Commit mit einem Kommentar durch, der den Verlauf dieser Aktion beschreibt:

    git commit -m "Add cloudbuild.yaml file"
    
  3. Fügen Sie den Inhalt des lokalen Git-Repositorys mit dem Befehl git push zu Cloud Source Repositories hinzu:

    git push origin master
    

Build-Trigger erstellen

  1. Öffnen Sie in der GCP Console die Cloud Build-Seite Trigger.

    Zur Seite "Trigger"

  2. Wenn Ihr Google Cloud-Projekt nicht ausgewählt ist, klicken Sie auf Projekt auswählen und anschließend auf den Namen Ihres Google Cloud-Projekts.

  3. Klicken Sie auf Trigger erstellen.

    Die Seite Trigger erstellen wird geöffnet.

  4. Füllen Sie die folgenden Optionen aus:

    • Geben Sie im Feld Name den Wert app-engine-test ein.
    • Wählen Sie unter Ereignis Push to a branch.
    • Wählen Sie unter Quelle hello-world als Repository und ^master$ als Branch aus.
    • Wählen Sie unter Build-Konfiguration die Cloud Build-Konfigurationsdatei aus.
    • Geben Sie im Feld Speicherort der Cloud Build-Konfigurationsdatei cloudbuild.yaml nach / ein.
  5. Klicken Sie auf Erstellen, um den Build-Trigger zu speichern.

Änderung per Push zur Anwendung übertragen

  1. Verwenden Sie in einem Terminalfenster einen Texteditor, um die Datei main.py durch Einfügen des folgenden Codes zu aktualisieren:

    #!/usr/bin/env python
    
    import webapp2
    
    class MainHandler(webapp2.RequestHandler):
        def get(self):
            self.response.write('I update automatically!')
    
    app = webapp2.WSGIApplication([
        ('/', MainHandler)
    ], debug=True)
    
  2. Fügen Sie die Datei zu Git hinzu.

    git add .
    
  3. Führen Sie für die Datei ein Commit mit einem Kommentar durch, der den Verlauf dieser Aktion beschreibt:

    git commit -m "Update app to demonstrate build triggers"
    
  4. Fügen Sie den Inhalt des lokalen Git-Repositorys mit dem Befehl git push zu Cloud Source Repositories hinzu:

    git push origin master
    

Build während der Bearbeitung ansehen

  1. Öffnen Sie in der GCP Console die Cloud Build-Seite Trigger.

    Zur Seite "Trigger"

  2. Wenn Ihr Google Cloud-Projekt nicht ausgewählt ist, klicken Sie auf Projekt auswählen und anschließend auf den Namen Ihres Google Cloud-Projekts.

  3. Klicken Sie auf Verlauf.

    Eine Liste aller Builds wird geöffnet. Oben in der Liste befindet sich ein neuer Eintrag. Dieser stellt den Build dar, der gestartet wurde, nachdem Sie Ihre Änderung per Push auf Cloud Source Repositories angewendet haben. Wenn der Build bereit ist, wird neben dem Build-Eintrag ein grünes Häkchen angezeigt.

Anwendung erneut testen

Öffnen Sie in einem Terminalfenster Ihre Anwendung:

gcloud app browse

Der Browser zeigt nun die Meldung I update automatically! an.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

Build-Trigger löschen

  1. Öffnen Sie in der GCP Console die Cloud Build-Seite Trigger.

    Zur Seite "Trigger"

  2. Wenn Ihr Google Cloud-Projekt nicht ausgewählt ist, klicken Sie auf Projekt auswählen und anschließend auf den Namen Ihres Google Cloud-Projekts.

  3. Klicken Sie in derselben Zeile wie der Trigger, den Sie löschen möchten, auf More und dann auf Delete.

Repository löschen

  1. Öffnen Sie in der GCP Console die Seite Alle Repositories für Cloud Source Repositories.

    Cloud Source Repositories öffnen

  2. Halten Sie den Zeiger über das Repository, das Sie löschen möchten, und klicken Sie auf Einstellungen .

    Die Seite Allgemeine Einstellungen wird geöffnet.

  3. Klicken Sie auf Dieses Repository löschen.

    Das Dialogfeld Repository entfernen wird geöffnet.

  4. Geben Sie den Namen des Repositorys ein, das Sie löschen möchten.

  5. Klicken Sie auf Löschen.

Nächste Schritte