Automatizza i deployment di App Engine con Cloud Build

Questa guida rapida mostra come eseguire automaticamente il deployment di un'app archiviata in Cloud Source Repositories in App Engine dopo un nuovo commit.

Prima di iniziare

  1. Completa i passaggi descritti in Creare un repository di codice in Cloud Source Repositories.

    Una volta completata la guida rapida, avrai un'app di cui puoi eseguire il deployment in App Engine.

  2. Abilita le API App Engine Admin, Cloud Build.

    Abilita le API

Concedere ad App Engine l'accesso all'account di servizio Cloud Build

Cloud Build utilizza un account di servizio per eseguire il deployment del codice. Le autorizzazioni predefinite per questo account non consentono determinate azioni, come il deployment in App Engine.

Abilita il tuo account di servizio per eseguire il deployment in App Engine concedendo all'account ruoli IAM (Identity and Access Management) aggiuntivi:

  1. Nella console Google Cloud, apri la pagina Impostazioni di Cloud Build:

    Apri la pagina Impostazioni di Cloud Build

    Verrà visualizzata la pagina Autorizzazioni dell'account di servizio:

    La pagina Autorizzazioni dell'account di servizio.

  2. Imposta lo stato del ruolo Amministratore App Engine su Abilitato.

esegui il deployment dell'app

  1. In una finestra del terminale, vai alla directory contenente il repository:

    cd hello-world
    
  2. Distribuisci l'applicazione di esempio:

    gcloud app deploy app.yaml
    
  3. Verifica che l'app sia in esecuzione:

    gcloud app browse
    

    Se l'app è in esecuzione, nel browser viene visualizzato il messaggio Hello, World!.

Creare un file cloudbuild.yaml

  1. In una finestra del terminale, vai alla directory contenente il repository:

    cd hello-world
    
  2. Utilizzando un editor di testo, crea un file denominato cloudbuild.yaml e incolla le seguenti informazioni di configurazione:

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

Aggiungi il file cloudbuild.yaml al tuo repository

  1. Aggiungi cloudbuild.yaml al repository:

    git add .
    
  2. Esegui il commit del file con un commento che descriva la cronologia di questa azione:

    git commit -m "Add cloudbuild.yaml file"
    
  3. Utilizzando il comando git push, aggiungi i contenuti del repository Git locale a Cloud Source Repositories:

    git push origin master
    

Crea un trigger di build

  1. Nella console di GCP, apri la pagina Trigger di Cloud Build.

    Apri la pagina Trigger

  2. Se il progetto Google Cloud non è selezionato, fai clic su Seleziona un progetto, quindi sul nome del progetto Google Cloud.

  3. Fai clic su Crea attivatore.

    Viene visualizzata la pagina Crea trigger.

  4. Compila le seguenti opzioni:

    • Nel campo Nome, digita app-engine-test.
    • In Evento, seleziona Push al ramo.
    • In Origine, seleziona hello-world come Repository e ^master$ come Ramo.
    • In Configurazione, seleziona File di configurazione di Cloud Build (yaml o json).
    • Nel campo Posizione file di configurazione di Cloud Build, digita cloudbuild.yaml dopo /.
  5. Fai clic su Crea per salvare il trigger di build.

Inviare una modifica alla tua app

  1. In una finestra del terminale, utilizza un editor di testo per aggiornare il file main.py incollando il seguente codice:

    #!/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. Aggiungi il file a Git:

    git add .
    
  3. Esegui il commit del file con un commento che descriva la cronologia di questa azione:

    git commit -m "Update app to demonstrate build triggers"
    
  4. Utilizzando il comando git push, aggiungi i contenuti del repository Git locale a Cloud Source Repositories:

    git push origin master
    

Visualizza la build in corso

  1. Nella console di GCP, apri la pagina Trigger di Cloud Build.

    Apri la pagina Trigger

  2. Se il progetto Google Cloud non è selezionato, fai clic su Seleziona un progetto, quindi sul nome del progetto Google Cloud.

  3. Fai clic su Cronologia.

    Si apre un elenco di tutte le build. In alto è presente una nuova voce che rappresenta la build avviata dopo aver eseguito il push della modifica in Cloud Source Repositories. Quando la build è pronta, viene visualizzato un segno di spunta verde accanto alla voce della build.

Ripeti il test dell'app

In una finestra del terminale, apri l'app:

gcloud app browse

Nel browser viene ora visualizzato il messaggio I update automatically!.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Elimina il trigger di build

  1. Nella console di GCP, apri la pagina Trigger di Cloud Build.

    Apri la pagina Trigger

  2. Se il progetto Google Cloud non è selezionato, fai clic su Seleziona un progetto, quindi sul nome del progetto Google Cloud.

  3. Sulla stessa riga dell'attivatore da eliminare, fai clic su Altro e poi su Elimina.

Elimina il repository

  1. Nella console di GCP, apri la pagina Tutti i repository per Cloud Source Repositories.

    Repository Cloud Source aperti

  2. Tieni il puntatore del mouse sul repository che vuoi eliminare e fai clic su Impostazioni .

    Viene visualizzata la pagina Impostazioni generali.

  3. Fai clic su Elimina questo repository .

    Viene visualizzata la finestra di dialogo Rimuovi repository.

  4. Digita il nome del repository che vuoi eliminare.

  5. Fai clic su Elimina.

Passaggi successivi