ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base
all'area geografica selezionata al momento della creazione dell'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID di area geografica potrebbero essere
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 area geografica è facoltativo nell'URL.
Scopri di più sugli ID dell'area geografica.
Scopri come eseguire la tua applicazione localmente, come eseguirne il deployment e come testarla in App Engine.
Esecuzione in locale
Per testare la funzionalità della tua applicazione prima del deployment, esegui l'applicazione nel tuo ambiente locale con gli strumenti di sviluppo che utilizzi abitualmente.
Per maggiori dettagli, inclusi comandi specifici a seconda del plug-in, consulta Test locale per il runtime Java 8/Jetty 9 o Test locale per il runtime Java 8.Deployment dell'applicazione
Prima di iniziare
Prima di eseguire il deployment dell'applicazione:
Il proprietario del progetto Cloud deve abilitare App Engine.
Assicurati che il tuo account utente includa i privilegi necessari.
Deployment di un servizio
Puoi utilizzare qualsiasi strumento supportato per eseguire il deployment dell'applicazione Java nell'ambiente flessibile di App Engine. Per il deployment a riga di comando, utilizza
gcloud app deploy
nell'interfaccia a riga di comando gcloud o
i plug-in Maven o Gradle. Per eseguire il deployment utilizzando un IDE,
utilizza i plug-in IntelliJ o Eclipse. Per eseguire il deployment delle app in modo programmatico,
utilizza l'API Admin.
Ignorare i file
Puoi utilizzare un file .gcloudignore
per specificare i file e le directory da non caricare su Google Cloud quando esegui il deployment dei servizi. Questo metodo è utile per ignorare gli artefatti della build e altri file che non devono essere caricati con il tuo deployment.
Scopri di più sulla sintassi del file .gcloudignore
nel
riferimento gcloud
.
Creazione manuale di un container per il deployment
Per creare immagini container all'esterno di Google Cloud Platform, devi prima caricarle in un repository di immagini container per poterne eseguire il deployment su App Engine con il comando gcloud app deploy
.
Ad esempio, se crei le immagini container a livello locale con Docker, puoi eseguirne il push in Google Container Registry e specificare l'URL dell'immagine nel flag --image-url
del comando:
gcloud app deploy src/main/appengine/app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE
Utilizzo delle pipeline di deployment continuo automatico
Puoi utilizzare Cloud Build per automatizzare i deployment nelle pipeline di deployment continuo. Per ulteriori informazioni, consulta Deployment di artefatti e automazione delle build tramite trigger di build nella documentazione di Cloud Build.
Immagini Docker di base per Java
Se vuoi creare un'applicazione runtime personalizzata di Java da graffiare, utilizza un'immagine di base fornita nel Dockerfile:
Runtime | Comando Docker |
---|---|
Java 8 | FROM gcr.io/google_appengine/openjdk |
Java 8/Jetty 9 | FROM gcr.io/google-appengine/jetty |
Visualizzazione dell'applicazione
Dopo aver eseguito il deployment dell'applicazione in App Engine, puoi eseguire il comando seguente 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 su
App Engine. Ad esempio, per testare una nuova versione del servizio
default
:
Esegui il deployment della nuova versione con il parametro
promote
impostato sufalse
:- Con Maven, imposta il parametro
promote
nel tuo filepom.xml
. - Con Gradle, imposta il parametro
promote
nel filegradle.build
.
- Con Maven, imposta il parametro
Accedi alla nuova versione accedendo al 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 relativi log in Esplora log di Google Cloud Console. Per ulteriori informazioni, consulta la pagina relativa alla scrittura dei log delle applicazioni.
Le richieste inviate a
https://PROJECT_ID.REGION_ID.r.appspot.com
saranno comunque instradate alla versione configurata in precedenza per ricevere il traffico.Quando vuoi inviare traffico alla nuova versione, utilizza Cloud Console per eseguire la migrazione del traffico:
Seleziona la versione appena sottoposta a 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 tuo nome del servizio:
Risolvere i problemi
Di seguito sono riportati i messaggi di errore comuni che potresti visualizzare quando esegui il deployment delle app:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Se il progetto cloud non include l'applicazione richiesta di App Engine, il comando
gcloud app deploy
potrebbe non riuscire quando tenta di eseguire il comandogcloud app create
. Solo gli account con ruolo Proprietario hanno le autorizzazioni necessarie per creare applicazioni App Engine. 502 Bad Gateway
- Se
app.yaml
è configurato in modo errato, il progetto Cloud potrebbe non avviarsi. Controlla i log dell'app per visualizzare messaggi di errore più dettagliati. [13] An internal error occurred while creating a Cloud Storage bucket.
App Engine crea un bucket Cloud Storage per più aree geografiche predefinito per tuo conto, nella stessa area geografica in cui viene creata l'applicazione. Questo bucket è necessario per archiviare i contenuti dell'applicazione. Questo errore viene restituito quando non è possibile creare questo bucket nei seguenti scenari:
L'agente di servizio dell'ambiente flessibile di App Engine predefinito non è presente nel progetto o non ha il ruolo
App Engine flexible environment Service Agent
. Puoi riaggiungere l'account di servizio dell'agente nel tuo progetto concedendo alle autorizzazioni IAM corrette.L'account di servizio App Engine non è presente nel progetto. Se l'account di servizio App Engine è stato rimosso prima che siano trascorsi 30 giorni dall'eliminazione, puoi ripristinarlo.
Il tuo progetto fa parte di un'organizzazione che applica il criterio
constraints/gcp.resourceLocations
, e l'organizzazione non consente la creazione di risorse nella stessa area geografica in cui è stato creato App Engine. Dovrai eseguire l'override del criterioconstraints/gcp.resourceLocations
applicato al tuo progetto e consentire le località con più aree geografiche nella stessa area geografica in cui viene creata l'app App Engine.
[13] An internal error occurred.
Questo errore può verificarsi se esegui il deployment del servizio con una configurazione di rete utilizzando una configurazione VPC condiviso. Assicurati che il tuo ambiente flessibile di App Engine soddisfi tutti i requisiti per questa configurazione. Successivamente, assicurati che gli account di servizio configurati per questa configurazione siano presenti nel tuo progetto, altrimenti dovrai ripristinare gli account. Tieni presente che l'area geografica della subnet nel progetto host VPC condiviso deve corrispondere alla località in cui è stato creato l'ambiente App Engine.
Se il problema persiste dopo aver verificato la configurazione di
app.yaml
, utilizza Google Cloud SDK per eseguire nuovamente il deployment del servizio, aggiungendo il flag--verbosity=debug
e contatta l'assistenza di GCP fornendo l'output del comando.IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.
Se il deployment non riesce con questo messaggio di errore, significa che la rete configurata per il servizio App Engine non ha indirizzi da allocare per le nuove istanze del servizio. Puoi risolvere il problema espandendo gli intervalli VPC sulla subnet configurata per il servizio dell'ambiente flessibile di App Engine.