Questa pagina spiega come eseguire il deployment delle applicazioni in App Engine utilizzando in Cloud Build. Se non hai mai utilizzato Cloud Build, leggi prima gli avvii rapidi e la panoramica della configurazione di compilazione.
App Engine è una piattaforma serverless completamente gestita per lo sviluppo e l'hosting applicazioni web su larga scala. Per ulteriori informazioni su App Engine, consulta la documentazione di App Engine.
Prima di iniziare
Abilita l'API App Engine:
Per eseguire i comandi
gcloud
in questa pagina, installa Google Cloud CLI.Tieni a portata di mano il codice sorgente dell'applicazione che vuoi compilare ed eseguire in App Engine. Il codice sorgente deve essere archiviato in un repository, ad esempio Cloud Source Repositories, GitHub o Bitbucket.
Autorizzazioni IAM richieste
Nella console Google Cloud, seleziona il progetto.
Concedi il ruolo Account di servizio Cloud Build all'account di servizio predefinito App Engine. Se l'account di servizio non vengono visualizzate nell'elenco e individua l'account di servizio nella pagina Account di servizio.
Concedi il ruolo Amministratore App Engine e Utente account di servizio all'account di servizio di compilazione:
Apri la pagina Impostazioni di Cloud Build:
Imposta lo stato del ruolo Amministratore App Engine e di Utente account di servizio. su Attivato.
Configurazione del deployment
Cloud Build ti consente di utilizzare qualsiasi immagine container disponibile pubblicamente per eseguire le tue attività. A questo scopo, specifica l'immagine in un file step
di compilazione nel file di configurazione di Cloud Build.
App Engine fornisce il comando gcloud app deploy
, che crea un'immagine con il codice sorgente e la esegue 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 compilazione vengono passati direttamente all'interfaccia a riga di comando gcloud,
consentendoti di eseguire qualsiasi comando gcloud
in questa immagine.
Per eseguire il deployment di un'applicazione in App Engine, segui questi passaggi:
Crea un file di configurazione di Cloud Build chiamato
cloudbuild.yaml
ocloudbuild.json
.Nel file di configurazione:
- Aggiungi un campo
name
per specificare il passaggio di buildcloud-sdk
. - Aggiungi un campo
entrypoint
per utilizzare lo strumentobash
quando viene richiamatocloud-sdk
. Nel campo
args
, richiama il comandogcloud app deploy
e imposta untimeout
per App Engine da usare quando richiama Cloud Build. Questo è necessario perché i passaggi di compilazione 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 scadrà segcloud app deploy
richiede più di 10 minuti per essere completata.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 di compilazione. 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 build
timeout
superiore 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 dell'origine 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 puoi 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 invocare 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 attivatore di build con il file di configurazione creato nel passaggio precedente:
Apri la pagina Trigger nella console Google Cloud:
Seleziona il tuo progetto dal menu a discesa del selettore progetti nella parte superiore di della pagina.
Fai clic su Apri.
Fai clic su Crea trigger.
Nella pagina Crea trigger, inserisci le seguenti impostazioni:
Inserisci un nome per l'attivatore.
Seleziona l'evento del repository per avviare l'attivatore.
Seleziona il repository contenente il codice sorgente e il file di configurazione della build.
Specifica l'espressione regolare per il nome del ramo o tag che inizierà 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, avvii automaticamente una build 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
- Scopri come eseguire il deployment su Cloud Run
- Scopri come eseguire deployment blu/verdi su Compute Engine
- Scopri come eseguire il deployment su GKE
- Scopri come eseguire il deployment delle funzioni di Cloud Run
- Scopri come eseguire il deployment su Firebase
- Scopri come risolvere gli errori di build.