ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata al momento della creazione dell'app. Non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono apparire simili ai codici di paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r
è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Scopri come eseguire la tua applicazione localmente, come eseguirne il deployment e come testarla in App Engine.
Esegui localmente
Per testare l'applicazione prima di eseguirne il deployment, eseguila nel tuo ambiente locale con gli strumenti di sviluppo che utilizzi abitualmente.
Esegui il deployment dell'applicazione
Esegui il deployment della tua applicazione in App Engine utilizzando il comandogcloud app deploy
.
Il servizio Cloud Build crea automaticamente il deployment in un'immagine container ed esegue il deployment dell'immagine nell'ambiente flessibile di App Engine. Il container include tutte le modifiche locali che hai apportato all'immagine di runtime.
Per eseguire il deployment delle app in modo programmatico, utilizza l'API Admin.
Prima di iniziare
Prima di eseguire il deployment della tua applicazione:
Il proprietario del progetto Google Cloud deve configurare il progetto Google Cloud per App Engine.
Assicurati che il tuo account utente includa i privilegi necessari.
Esegui il deployment di un servizio
Puoi eseguire il deployment della tua applicazione in App Engine eseguendo il deployment di versioni dei servizi dell'applicazione e di ciascuno dei relativi file di configurazione.
Puoi eseguire il deployment degli altri file di configurazione del tuo servizio scegliendo come target ed eseguendo il deployment di ogni file separatamente, ad esempio:
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
Per specificare un ID versione personalizzato, utilizza il flag
--version
.Per impedire che il traffico venga instradato automaticamente alla nuova versione, utilizza il flag
--no-promote
.Per eseguire il deployment in un progetto Google Cloud specifico, utilizza il flag
--project
.
Ad esempio, per eseguire il deployment del servizio definito dal file app.yaml
in un progetto Google Cloud specifico, assegna al servizio un ID versione personalizzato e impedisci il routing del traffico alla nuova versione:
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
Per saperne di più, consulta la documentazione di riferimento di gcloud app deploy
.
Puoi impostare le proprietà di gcloud CLI e creare e gestire le configurazioni dell'SDK in modo da non dover specificare flag come --project
ogni volta che esegui il deployment.
Ignora file
Puoi utilizzare un file .gcloudignore
per specificare i file e le directory da non caricare su Google Cloud durante il deployment dei servizi. Questo è utile per ignorare gli artefatti di build
e altri file che non devono essere caricati con il deployment.
Scopri di più sulla sintassi del file .gcloudignore
nel
riferimento gcloud
.
Crea manualmente un container per il deployment
Per creare le immagini container all'esterno di Google Cloud:
- Carica le immagini in un repository Artifact Registry. Per maggiori informazioni, consulta la pagina Eseguire il push e il pull delle immagini.
- Esegui il deployment in App Engine con il comando
gcloud app deploy
.
Ad esempio, se crei immagini container localmente con Docker, puoi eseguire il push di queste immagini ad Artifact Registry e specificare l'URL dell'immagine nel flag --image-url
del comando:
gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE
Sostituisci:
LOCATION con la località del repository in cui è archiviata l'immagine.
PROJECT-ID con il tuo ID progetto Google Cloud.
REPOSITORY con il nome del repository in cui è archiviata l'immagine.
IMAGE con il nome dell'immagine container.
Usa pipeline di deployment continuo automatizzate
Puoi usare Cloud Build per automatizzare i deployment nelle pipeline di deployment continuo. Per maggiori informazioni, consulta Eseguire il deployment in App Engine e Creare e gestire trigger di build nella documentazione di Cloud Build.
Immagini di base Docker
Se vuoi creare un'applicazione di runtime personalizzata, consulta Creare un file Docker.
visualizza l'applicazione
Dopo aver eseguito il deployment dell'applicazione in App Engine, puoi eseguire questo comando per avviare il browser e visualizzarlo all'indirizzo https://PROJECT_ID.REGION_ID.r.appspot.com
:
gcloud app browse
Test su App Engine
Prima di configurare una nuova versione per ricevere il traffico, puoi testarla in App Engine. Ad esempio, per testare una nuova versione del tuo servizio default
:
Esegui il deployment della nuova versione e includi il flag
--no-promote
:gcloud app deploy --no-promote
Accedi alla nuova versione visitando il seguente URL:
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
Ora puoi testare la nuova versione nell'ambiente di runtime di App Engine. Puoi eseguire il debug dell'applicazione visualizzando i log in Esplora log della console Google Cloud. Per ulteriori informazioni, consulta Scrittura dei log delle applicazioni.
Le richieste inviate a
https://PROJECT_ID.REGION_ID.r.appspot.com
verranno comunque instradate alla versione configurata in precedenza per ricevere il traffico.Quando vuoi inviare il traffico alla nuova versione, utilizza la console Google Cloud per eseguirne la migrazione:
Seleziona la versione di cui hai appena eseguito il deployment e fai clic su Esegui la migrazione del traffico.
Puoi utilizzare la stessa procedura per testare nuove versioni di altri servizi sostituendo default
nell'URL con il nome del tuo servizio:
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
Per maggiori informazioni sul targeting di servizi e versioni specifici, consulta Modalità di routing delle richieste.
Utilizza le variabili di ambiente di build
Puoi impostare variabili di ambiente di build per i runtime che supportano buildpacks.
Le variabili di ambiente di build sono coppie chiave-valore che puoi specificare per configurare il buildpack utilizzato per il deployment dell'app. Ad esempio, potresti voler specificare le opzioni di compilazione.
Prima di iniziare:
- Le chiavi devono iniziare con una lettera ASCII maiuscola e possono includere lettere ASCII maiuscole, numeri e trattini bassi.
- Dovresti evitare di creare variabili con un prefisso di chiave
GOOGLE_*
. - Le seguenti chiavi sono riservate all'utilizzo da parte di Google:
GOOGLE_RUNTIME
GOOGLE_RUNTIME_VERSION
GOOGLE_ENTRYPOINT
GOOGLE_DEVMODE
- Puoi utilizzare qualsiasi chiave supportata dai buildpacks.
Per utilizzare le variabili di ambiente con i buildpack, specifica il campo build_env_variables
nel file app.yaml
.
Scopri di più sui buildpack.
Usa Cloud Trace
Cloud Trace è utile per comprendere in che modo le richieste si propagano nell'applicazione. Puoi esaminare informazioni dettagliate sulla latenza per una singola richiesta o visualizzare la latenza aggregata per l'intera applicazione.
Puoi visualizzare i dettagli della traccia. In Esplora traccia, puoi filtrare in base al servizio e alla versione specifici di App Engine.
Risolvere i problemi
Di seguito sono riportati i messaggi di errore comuni che potresti visualizzare durante il deployment delle app:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Se il progetto Google Cloud non include l'applicazione App Engine richiesta, il comando
gcloud app deploy
potrebbe restituire un errore quando tenta di eseguire il comandogcloud app create
. Solo gli account con il ruolo Proprietario dispongono delle autorizzazioni necessarie per creare applicazioni App Engine. 502 Bad Gateway
- È possibile che il progetto Google Cloud non venga avviato se
app.yaml
non è configurato correttamente. Controlla i log dell'app per messaggi di errore più dettagliati. [13] An internal error occurred while creating a Cloud Storage bucket.
App Engine crea per tuo conto un bucket Cloud Storage multiregionale predefinito nella stessa regione in cui crea l'applicazione. Richiede questo bucket per archiviare i contenuti dell'applicazione. L'errore viene restituito quando non è possibile creare il bucket, ad esempio nei seguenti scenari:
L'agente di servizio dell'ambiente flessibile di App Engine non è presente nel progetto o non ha il ruolo
App Engine flexible environment Service Agent
. Puoi aggiungere nuovamente l'account di servizio dell'agente al progetto concedendogli le autorizzazioni IAM corrette. Vedi Ripristinare un agente di servizio eliminato.L'account di servizio App Engine predefinito non è presente nel progetto. Se l'account di servizio App Engine è stato rimosso prima che fossero trascorsi 30 giorni dall'eliminazione, puoi ripristinarlo.
Il tuo progetto si trova in un'organizzazione che applica il criterio
constraints/gcp.resourceLocations
e l'organizzazione non consente la creazione di risorse nella stessa regione in cui è stato creato App Engine. Devi eseguire l'override del criterioconstraints/gcp.resourceLocations
applicato per il progetto e consentire le località con più regioni nella stessa regione in cui è stata creata l'app App Engine.
Ad esempio, se l'app App Engine viene creata nella regione
europe-west
, anche se la regione è mappata alle localitàeurope-west1
, devi modificare il vincolo per consentire le risorse nella regionein:eu-locations
, che include tutte le regioniEU
. Questo campo è obbligatorio perché i bucket creati da App Engine sono multiregionali. Se la tua app App Engine viene creata nella regioneUS
, devi consentire l'autorizzazionein:us-locations
e, se l'app viene creata nelle regioniASIA
, devi consentire l'autorizzazionein:asia-locations
.[13] An internal error occurred.
Questo errore può verificarsi se esegui il deployment del servizio con una configurazione di rete che utilizza una configurazione del VPC condiviso. Prova a procedere come segue:
- Assicurati che la configurazione di
app.yaml
sia valida. - Assicurati che il tuo ambiente flessibile di App Engine soddisfi tutti i requisiti per la configurazione di un VPC condiviso. Consulta Utilizzo dell'ambiente flessibile di App Engine su una VPC condiviso condivisa.
- Assicurati di avere account di servizio configurati presenti nel progetto. In caso contrario, devi ripristinare gli account. La regione della subnet nel progetto host del VPC condiviso deve corrispondere alla località in cui è stato creato l'ambiente App Engine.
- Assicurati che la configurazione di
Se il problema persiste, esegui nuovamente il deployment del servizio utilizzando Google Cloud SDK. Assicurati di aggiungere il flag
--verbosity=debug
. Contatta l'assistenza Google Cloud e fornisci l'output del comando.IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.
Se il deployment ha esito negativo con questo messaggio di errore, nella rete configurata per il servizio App Engine non sono rimasti indirizzi da allocare per le nuove istanze del servizio. Per risolvere il problema, espandi gli intervalli VPC nella subnet configurata per il servizio dell'ambiente flessibile di App Engine.