Esegui il deployment dell'app per caricarla ed eseguirla su App Engine. Quando esegui il deployment app, crei le versioni di tali app e le relative app servizi in App Engine. Puoi eseguire il deployment di intere app, inclusi tutto il codice sorgente e i file di configurazione, oppure puoi eseguire il deployment e l'aggiornamento di singole versioni o di file di configurazione.
Per eseguire il deployment delle app in modo programmatico, utilizzare l'API Admin.
Prima di iniziare
Prima di poter eseguire il deployment dell'app:
Il proprietario del progetto Google Cloud deve creare l'applicazione App Engine.
Assicurati che il tuo account utente includa i privilegi richiesti.
Concedi a Cloud Build l'autorizzazione per eseguire il deployment delle app nel tuo progetto. Quando esegui il deployment dell'app, App Engine usa Cloud Build per creare l'app in un container ed eseguirne il deployment al runtime nella regione dell'app. Cloud Build non ha l'autorizzazione per eseguire il deployment di app Java 8 per impostazione predefinita, quindi devi autorizzarlo prima di poter eseguire il deployment delle app.
Configurazione dello strumento di compilazione Maven (opzione consigliata)
Per eseguire il deployment dell'app utilizzando lo strumento di sviluppo Maven, devi configurare il progetto per utilizzare il plug-in Maven per App Engine.
- Installa l'interfaccia a riga di comando gcloud, il componente
app-engine-java
e accedi. - Compila e crea il progetto utilizzando il plug-in Maven
Installazione dell'interfaccia a riga di comando gcloud
Per eseguire il deployment della tua app con gcloud CLI, devi scaricare, installare inizializza gcloud CLI.
Se hai già installato gcloud CLI e vuoi per configurarlo in modo che utilizzi un ID progetto Google Cloud diverso da quello l'hai inizializzato, vedi Gestione gcloud CLI di comando gcloud.
Utilizzo di un proxy
Se esegui il comando di implementazione da un sistema che utilizza un proxy HTTP o HTTPS, devi configurare lo strumento in modo che possa comunicare tramite il proxy.
Esegui i seguenti comandi per configurare l'interfaccia a riga di comando gcloud:
gcloud config set proxy/type [PROXY_TYPE]
gcloud config set proxy/address [PROXY_ADDRESS]
gcloud config set proxy/port [PROXY_PORT]
Puoi anche impostare username
e password
per il proxy. Per maggiori informazioni
consulta gcloud config.
Eseguire il deployment di un'app
Per eseguire il deployment dell'app in App Engine, usa
lo strumento di sviluppo Maven (consigliato) oppure
il comando gcloud app deploy
dalla directory radice
un'applicazione.
Utilizzo di Maven (opzione consigliata)
Per eseguire il deployment della tua app con lo strumento di creazione Maven, esegui questo comando
la directory di primo livello del tuo progetto, dove si trova il file pom.xml
:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Se
il tuo pom.xml
file
specifica
ID progetto, non devi includere la proprietà -Dapp.deploy.projectId
nell'
il comando che esegui.
Utilizzo della riga di comando gcloud
gcloud app deploy [CONFIGURATION_FILES]
Sostituisci [CONFIGURATION_FILES]
con il percorso di uno o più file di configurazione.
Utilizza un singolo spazio vuoto per separare i nomi dei percorsi.
Flag facoltativi:
--version
: specifica un ID versione personalizzata. Se non specifichi un ID versione, App Engine ne genera uno.--no-promote
: esegui il deployment dell'app senza inoltrare automaticamente tutto il traffico a quella versione. Per impostazione predefinita, ogni versione di cui esegui il deployment viene configurata automaticamente per ricevere il 100% del traffico.--project
: specifica un progetto Google Cloud alternativo a quello che hai inizializzato come predefinito in gcloud CLI.
Per ulteriori informazioni, consulta la documentazione di riferimento di gcloud app deploy
o esegui gcloud help
dalla riga di comando.
Scegliere ID versione univoci
Per le istanze con scalabilità manuale, l'ID della versione deve iniziare con una lettera per distinguerle dagli ID istanza numerici. Ciò garantisce che le richieste vengono indirizzati alla destinazione corretta ed evita l'ambiguità con i pattern URL come123-dot-my-service.[REGION_ID].r.appspot.com
, che può essere interpretato
in due modi:
- Se esiste la versione
123
, la richiesta viene inoltrata alla versione123
del Serviziomy-service
. - Se la versione
123
non esiste, la richiesta viene instradata a ID istanza123
in cui le versioni del serviziomy-service
sono in esecuzione.
Puoi assegnare un nome alle versioni come preferisci per le istanze configurate per la scalabilità automatica o la scalabilità di base perché il targeting di queste istanze non è supportato.
Deployment di più applicazioni di servizio
Quando la tua applicazione viene presa in considerazione servizi, puoi eseguire il deployment e aggiornare servizi o tutti i servizi scelti come target singolarmente contemporaneamente. Il deployment degli aggiornamenti ai servizi può includere l'aggiornamento di singoli file di configurazione o del codice sorgente nelle versioni corrispondenti.
Ad esempio, puoi eseguire il deployment e creare due versioni in App Engine, viene eseguita nel proprio servizio. La prima versione funge da frontend e l'altro come backend dell'app. Puoi quindi eseguire il deployment singoli file di configurazione per aggiornare solo le impostazioni di un servizio. Puoi anche scegliere di eseguire il deployment di una nuova versione in un servizio per eseguire l'aggiornamento il codice sorgente del frontend, del backend o di entrambi contemporaneamente.
Requisiti per più servizi
Utilizzi gli stessi comandi di deployment per eseguire il deployment e l'aggiornamento dei vari servizi della tua applicazione con i seguenti requisiti:
Inizialmente devi eseguire il deployment di una versione della tua app nel servizio
default
prima di poter creare ed eseguire il deployment di servizi successivi.Devi specificare l'ID del servizio nel
appengine-web.xml
file di configurazione della versione corrispondente. Per specificare l'ID servizio, includi ilmodule: [YOUR_SERVICE_ID]
in ogni file di configurazione. Per impostazione predefinita, l'esclusione di questa definizione di elemento dal file di configurazione consente di eseguire il deployment della versione nel serviziodefault
.Devi specificare tutti i file di configurazione di
appengine-web.xml
corrispondenti in del tuo comando di deployment per eseguire contemporaneamente il deployment di più servizi. Il serviziodefault
deve essere elencato per primo.
Per eseguire il deployment di più servizi
Dalla directory principale dell'applicazione in cui si trovano i file di configurazione
esegui il comando deployment e specifichi i percorsi relativi
nomi per il file appengine-web.xml
di ogni servizio.
Utilizzo dello strumento di creazione Maven
Se la directory principale del progetto contiene solo i tuoi servizi, puoi eseguire il deployment di tutti i servizi con un unico comando Maven.
Il comando di deployment Maven esegue l'iterazione in tutti i servizi del progetto per individua il suo file di configurazione e e poi eseguire il deployment di ogni servizio.
Per eseguire il deployment di più servizi utilizzando il plug-in Maven:
- Assicurati che appengine-maven-plugin sia stato aggiunto al file
pom.xml
principale. Esegui questo comando:
mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud. Se il tuo file
pom.xml
specifica già il tuo ID progetto, non devi includere la proprietà-Dapp.deploy.projectId
nel comando eseguito.
Utilizzo di gcloud
gcloud app deploy [CONFIGURATION_FILES]
Sostituisci [CONFIGURATION_FILES]
con il percorso di uno o più file di configurazione.
Utilizza un singolo spazio per separare i percorsi.
Riceverai la verifica tramite la riga di comando man mano che ogni servizio viene eseguito correttamente.
Visualizzazione dei log di build
Cloud Build esegue i flussi di log di build ed deployment visualizzabili in Sezione della cronologia di Cloud Build console Google Cloud. Per visualizzare le build nella regione dell'app, utilizza il menu a discesa Regione nella parte superiore della pagina per scegliere la regione in base alla quale applicare il filtro.
Aggiornamento degli indici
Per creare o aggiornare gli indici utilizzati dalle app, carica
datastore-indexes.xml
di configurazione in Datastore. Gli indici che non esistono ancora vengono creati dopo il caricamento del file di configurazione.
Datastore può richiedere del tempo per creare tutti gli indici perciò questi indici non saranno subito disponibili per App Engine. Se la tua app è già configurata per ricevere traffico, possono verificarsi eccezioni per le query che richiedono un indice ancora in fase di creazione.
Per evitare eccezioni, devi attendere il tempo necessario per la creazione di tutti gli indici, ad esempio:
Carica
index.xml
di configurazione in Datastore prima del deployment versione:Carica il
index.xml
file in Datastore: Per informazioni, consulta la documentazione digcloud datastore indexes create index.yaml
gcloud datastore
.Utilizza la console Google Cloud per monitorare lo stato di tutti i tuoi indici:
Dopo aver creato tutti gli indici, esegui il deployment della nuova versione in App Engine.
Crea i tuoi indici prima di eseguire la migrazione o la suddivisione del traffico verso la tua versione:
-
Definisci un nuovo ID versione nel file
appengine-web.xml
della tua app. - Esegui il deployment della nuova versione.
- Utilizza la console Google Cloud per monitorare lo stato di tutti i tuoi index:
- Dopo aver creato tutti gli indici, utilizza la console Google Cloud per eseguire la migrazione o suddividere il traffico verso la tua versione:
-
Definisci un nuovo ID versione nel file
Per ulteriori informazioni sugli indici, consulta Configurare gli indici di Datastore.
Risoluzione dei problemi
Di seguito sono riportati i messaggi di errore più comuni che potresti visualizzare:
PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
- Se il progetto Google Cloud non include la richiesta
App Engine
dell'applicazione,
Il comando
gcloud app deploy
può non riuscire quando tenta di eseguiregcloud app create
. Solo gli account con il ruolo Proprietario dispongono delle autorizzazioni necessarie per creare applicazioni App Engine. Command not found
- Consulta Utilizzare il server di sviluppo locale per istruzioni su come configurare lo strumento del server di sviluppo locale.
Import Error
- Se hai installato sia l'interfaccia a riga di comando gcloud sia l'SDK App Engine originale, le voci del PATH potrebbero entrare in conflitto tra loro e causare errori di importazione. Se hai ricevuto errori durante l'esecuzione di gcloud CLI segui le istruzioni per l'esecuzione server di sviluppo locale.
[400] The first service (module) you upload to a new application must be the 'default' service (module)
- Prima di poter eseguire il deployment e creare i vari servizi della tua applicazione,
devi prima eseguire il deployment e creare
default
. Per dettagli su come eseguire il deployment di una versione nel serviziodefault
, consulta Eseguire il deployment di più applicazioni di servizio. Too Many Versions (403)
- App Engine ha un limite al numero di versioni di cui è stato eseguito il deployment della tua applicazione. Questi valori sono diversi per le applicazioni gratuite e quelle di cui è stato eseguito il deployment.
Puoi utilizzare la console Google Cloud
per eliminare una versione precedente e caricare il codice più recente.
You do not have permission to modify this app (403)
- Questo può verificarsi quando l'account con cui hai eseguito l'autenticazione non ha
per eseguire il deployment nell'ID applicazione specificato nel comando
o nel tuo
appengine-web.xml
. Verifica che l'ID applicazione sia corretto e corrisponda al valore dell'ID progetto della console Google Cloud. Poi controlla le autorizzazioni del progetto console Cloud e verifica che il tuo account sia in possesso di un'autorizzazione sufficiente a per consentire il deployment delle app. [13] An internal error occurred while creating a Cloud Storage bucket.
App Engine crea un bucket Cloud Storage predefinito multiregionale per tuo conto, nella stessa regione in cui è stata creata l'applicazione. Questo bucket è necessario per archiviare i contenuti della tua applicazione. Questo errore è quando non è possibile creare questo bucket, nei seguenti scenari:
Il service account App Engine predefinito non è presente nel progetto. Se il tuo account è stato rimosso prima che siano trascorsi 30 giorni dall'eliminazione, puoi ripristinarlo.
Il tuo progetto fa parte di un'organizzazione che applica i criteri
constraints/gcp.resourceLocations
e non consente la creazione di risorse nella stessa regione in cui è stato creato il tuo App Engine. Dovrai sostituire il criterioconstraints/gcp.resourceLocations
applicato per il tuo progetto e consentire le località multiregione nella stessa regione in cui è stata creata l'app App Engine.
[13] An internal error occurred
Questo errore può verificarsi se la configurazione
app.yaml
di App Engine il file contiene una risorsa non validaname
nella chiavevpc_access_connector
. Assicurati che il camponame
contenga il progetto e la regione corretti in cui è stato creato il connettore di accesso VPC serverless.Se il problema persiste dopo aver verificato che la configurazione di
app.yaml
è valida: utilizzare Google Cloud SDK per rieseguire il deployment del servizio, aggiungendo--verbosity=debug
flag e contatta l'assistenza Cloud fornendo l'output del comando.- Altro errore di deployment
Se il deployment non riesce, assicurati che l'API Cloud Build sia abilitata nel tuo progetto. App Engine attiva questa API automaticamente la prima volta che esegui il deployment di un'app, ma se qualcuno ha disattivato l'API, i deployment non andranno a buon fine.
Passaggi successivi
- Utilizza le funzionalità di servizi per creare un'applicazione di grandi dimensioni.
- Suddividi il traffico o esegui la migrazione del traffico per indirizzarlo alle versioni di cui esegui il deployment.
- Esamina gli
gcloud app deploy
argomenti e i flag della riga di comando.