Deployment in App Engine

Questa pagina spiega come eseguire il deployment delle applicazioni in App Engine utilizzando in Cloud Build. Se non hai mai utilizzato Cloud Build, leggi guide rapide e Panoramica della configurazione della build.

App Engine è una piattaforma serverless completamente gestita per lo sviluppo e l'hosting applicazioni web su larga scala. Per ulteriori informazioni su App Engine, leggi documentazione di App Engine.

Prima di iniziare

  • Abilita l'API App Engine:

    Abilita l'API App Engine

  • Per eseguire i comandi gcloud in questa pagina, installa Google Cloud CLI.

  • Fai in modo che il codice sorgente dell'applicazione da creare e sottoporre a deployment in App Engine a portata di mano. Il codice sorgente deve essere archiviato in un repository, ad esempio Cloud Source Repositories, GitHub o Bitbucket.

Autorizzazioni IAM richieste

Concedi il ruolo Amministratore App Engine e Utente account di servizio all'utente Account di servizio Cloud Build:

  1. Apri la pagina Impostazioni di Cloud Build:

    Apri la pagina Impostazioni di Cloud Build

  2. Imposta lo stato del ruolo Amministratore App Engine e di Utente account di servizio. su Attivato.

configura il deployment

Cloud Build ti consente di utilizzare qualsiasi immagine container disponibile pubblicamente per eseguire le tue attività. Puoi farlo specificando l'immagine in una build step nel file di configurazione di Cloud Build.

App Engine fornisce il comando gcloud app deploy, che crea un'immagine il codice sorgente ed esegue il deployment dell'immagine su App Engine. Puoi utilizzare lo strumento cloud-sdk immagine come passaggio di build nel file di configurazione per richiamare i comandi gcloud all'interno dell'immagine. Gli argomenti passati a questo passaggio di build vengono passati direttamente a gcloud CLI, consentendoti di eseguire qualsiasi comando gcloud in questa immagine.

Per eseguire il deployment di un'applicazione in App Engine, segui questi passaggi:

  1. Crea un file di configurazione di Cloud Build denominato cloudbuild.yaml o cloudbuild.json.

  2. Nel file di configurazione:

    • Aggiungi un campo name per specificare il passaggio di build cloud-sdk.
    • Aggiungi un campo entrypoint per utilizzare lo strumento bash quando viene richiamato cloud-sdk.
    • Nel campo args, richiama il comando gcloud app deploy e imposta un timeout per App Engine da usare quando richiama Cloud Build. Questa operazione è necessaria perché Cloud Build i passaggi e le build di build hanno un timeout predefinito di 10 minuti e App Engine il completamento dei deployment potrebbe richiedere più tempo. Specificare un timeout più lungo assicura che la build non entri in timeout se gcloud app deploy richiede più di 10 minuti.

      Errori di timeout quando utilizzi l'ambiente standard di App Engine: Puoi configurare i timeout come descritto qui solo quando utilizzi App Engine un ambiente flessibile. L'ambiente standard di App Engine non consente il timeout della build da configurare. Se utilizzi Cloud Build per il deployment nell'ambiente standard di App Engine e la tua build non riesce con un errore di timeout, valuta l'utilizzo di App Engine o Cloud Run anziché nell'ambiente standard di App Engine.

    • Aggiungi un valore per la creazione di timeout di più di 10 minuti.

    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. Avvia la build, dove SOURCE_DIRECTORY è il percorso o l'URL dell'origine e REGION è una delle regioni di build supportate per avviare la build:

     gcloud builds submit --region=REGION SOURCE_DIRECTORY
    

Deployment continuo

Puoi automatizzare il deployment del tuo software in App Engine creando Trigger di Cloud Build. Puoi configurare i trigger per creare puoi eseguire il deployment delle immagini ogni volta che aggiorni il codice sorgente.

Per automatizzare il deployment in App Engine:

  1. Nel repository, aggiungi un file di configurazione con i passaggi per richiamare il comando gcloud app deploy:

    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. Crea un trigger di build con il file di configurazione creato nel passaggio precedente:

    1. Apri la pagina Trigger nella console Google Cloud:

      Apri la pagina Trigger

    2. Seleziona il tuo progetto dal menu a discesa del selettore progetti nella parte superiore di della pagina.

    3. Fai clic su Apri.

    4. Fai clic su Crea trigger.

      Nella pagina Crea trigger, inserisci le seguenti impostazioni:

      1. Inserisci un nome per il trigger.

      2. Seleziona l'evento del repository per avviare il trigger.

      3. Seleziona il repository che contiene il codice sorgente e la build di configurazione del deployment.

      4. Specifica l'espressione regolare per il nome del ramo o tag che inizierà trigger.

      5. Configurazione: scegli il file di configurazione della build che hai creato in precedenza.

    5. Fai clic su Crea per salvare il trigger di build.

Ogni volta che esegui il push di nuovo codice nel tuo repository, verrà avviata automaticamente una la creazione e il deployment su App Engine.

Per saperne di più sulla creazione di trigger di Cloud Build, consulta Creazione e gestione dei trigger di build.

Passaggi successivi