Questa pagina spiega come eseguire il deployment delle applicazioni in App Engine utilizzando Cloud Build. Se non hai mai utilizzato Cloud Build, leggi prima le guide rapide e la panoramica della configurazione di compilazione.
App Engine è una piattaforma serverless completamente gestita per lo sviluppo e l'hosting di applicazioni web su larga scala. Per saperne di più su App Engine, leggi la documentazione di App Engine.
Prima di iniziare
Abilita l'API App Engine:
Prepara il codice sorgente dell'applicazione. Il codice sorgente deve essere archiviato in un repository come GitHub o Bitbucket.
Per eseguire i
gcloudcomandi in questa pagina, installa il Google Cloud CLI.
Autorizzazioni Identity and Access Management richieste
-
Nella Google Cloud console, vai alla settings pagina Autorizzazioni di Cloud Build:
Per il service account Cloud Build specificato o per il service account Cloud Build predefinito, imposta lo stato dei seguenti ruoli su Abilitato:
- Amministratore App Engine (
roles/appengine.appAdmin) | Consente a Cloud Build di eseguire il deployment di nuove versioni in App Engine.- Nel riquadro Assegna ruolo Utente account di servizio, scegli un service account di cui eseguire lo spoofing e poi fai clic su Concedi autorizzazione.
- Amministratore Storage (
roles/storage.admin) | Consente la lettura e la scrittura da Cloud Storage. - Artifact Registry Writer (
roles/artifactregistry.writer) | Consente di eseguire il pull delle immagini da Artifact Registry e di scrivervi. - Writer log (
roles/logging.logWriter) | Consente di scrivere voci di log in Cloud Logging. - Editor Cloud Build (
roles/cloudbuild.builds.editor) | Consente al account di servizio di eseguire le build.
- Amministratore App Engine (
Configurare il deployment
Cloud Build ti consente di utilizzare qualsiasi immagine container disponibile pubblicamente per eseguire le tue attività. Per farlo, specifica l'immagine in un step di build nel file di configurazione di Cloud Build.
App Engine fornisce il comando gcloud app deploy, che crea un'immagine con il codice sorgente ed esegue il deployment dell'immagine in App Engine. Puoi utilizzare l'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:
Crea un file di configurazione di Cloud Build denominato
cloudbuild.yamlocloudbuild.json.Nel file di configurazione:
- Aggiungi un campo
nameper specificare il passaggio di buildcloud-sdk. - Aggiungi un campo
entrypointper utilizzare lo strumentobashquando viene richiamatocloud-sdk. Nel campo
args, richiama il comandogcloud app deploye imposta untimeoutper App Engine da utilizzare quando richiama Cloud Build. Questo è necessario perché i passaggi e le build di Cloud Build hanno un timeout predefinito di 10 minuti e il completamento dei deployment di App Engine potrebbe richiedere più tempo. Se specifichi un timeout più lungo, la build non andrà in timeout se il completamento digcloud app deployrichiede più di 10 minuti.Errori di timeout quando si utilizza l'ambiente standard di App Engine: puoi configurare i timeout come descritto qui solo quando utilizzi l'ambiente flessibile di App Engine. L'ambiente standard di App Engine non consente di configurare il timeout della build. Se utilizzi Cloud Build per il deployment nell'ambiente standard di App Engine e la build non riesce a causa di un errore di timeout, valuta la possibilità di utilizzare l'ambiente flessibile di App Engine o Cloud Run anziché l'ambiente standard di App Engine.
Aggiungi un valore di build
timeoutsuperiore a 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" }- Aggiungi un campo
Avvia la build, dove
SOURCE_DIRECTORYè il percorso o l'URL del codice sorgente eREGIONè una delle regioni di build supportate per avviare la build:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Deployment continuo
Puoi automatizzare il deployment del software in App Engine creando trigger di Cloud Build. Puoi configurare i trigger per creare ed eseguire il deployment delle immagini ogni volta che aggiorni il codice sorgente.
Per automatizzare il deployment in App Engine:
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" }Crea un trigger di build con il file di configurazione creato nel passaggio precedente:
Apri la pagina Trigger nella Google Cloud console:
Seleziona il tuo progetto dal menu a discesa del selettore di progetti nella parte superiore della pagina.
Fai clic su Apri.
Fai clic su Crea trigger.
Nella pagina Crea trigger, inserisci le seguenti impostazioni:
Inserisci un nome per il trigger.
Seleziona l'evento del repository per avviare il trigger.
Seleziona il repository contenente il codice sorgente e il file di configurazione della build.
Specifica l'espressione regolare per il nome del ramo o del tag che avvierà il trigger.
Configurazione: scegli il file di configurazione della build creato in precedenza.
Fai clic su Crea per salvare il trigger di build.
Ogni volta che esegui il push di nuovo codice nel repository, viene avviata automaticamente una build e viene eseguito il deployment in App Engine.
Per saperne di più sulla creazione di trigger di Cloud Build, consulta Creare e gestire i trigger di build.
Passaggi successivi
- Scopri come eseguire il deployment su Cloud Run
- Scopri come eseguire deployment blu/verde su Compute Engine
- Scopri come eseguire il deployment su GKE
- Scopri come eseguire il deployment su funzioni Cloud Run
- Scopri come eseguire il deployment su Firebase
- Scopri come risolvere i problemi relativi agli errori di build.