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, incluso tutto il codice sorgente di configurazione dei deployment oppure puoi eseguire il deployment e l'aggiornamento di singole versioni 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 di il progetto Google Cloud deve creare l'applicazione App Engine.
Assicurati che il tuo account utente Includa i privilegi richiesti.
Concedi l'autorizzazione a Cloud Build 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 dispone dell'autorizzazione di eseguire il deployment delle app Python 2 per impostazione predefinita, quindi devi concedere l'autorizzazione prima di poter eseguire il deployment delle app.
Installazione di gcloud CLI
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 deployment da un sistema che utilizza un protocollo HTTP o Proxy HTTPS, devi configurare lo strumento in modo che possa comunicare tramite proxy.
Esegui questi comandi per configurare gcloud CLI:
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 ulteriori informazioni
consulta gcloud config.
Deployment di un'app
Per eseguire il deployment dell'app in App Engine, usa
il comando gcloud app deploy
da dove la configurazione
, ad esempio,
esempio app.yaml
.
Scelta di ID versione univoci
Per le istanze con scalabilità manuale, l'ID della versione deve iniziare con una lettera per distinguerli dagli ID numerici delle istanze. 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 alle versioni il nome che preferisci per le istanze configurate per la scalabilità automatica o di base, il targeting di queste istanze non è supportato.
gcloud app deploy [CONFIGURATION_FILES]
Per impostazione predefinita, il comando esegue il deployment del file di configurazione app.yaml
dall'attuale
. Se esegui il comando da una directory che non contiene
app.yaml
della tua app o, se vuoi implementare più app,
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 una versione personalizzata ID. Per impostazione predefinita, App Engine genera un ID versione.--no-promote
: esegue il deployment dell'app senza instradare automaticamente tutto il traffico a quella versione. Per impostazione predefinita, ogni versione di cui esegui il deployment viene configurata automaticamente ricevono il 100% del traffico.--project
: specifica un ID progetto Google Cloud alternativo a quello che inizializzato come predefinito in gcloud CLI.
Per ulteriori informazioni, consulta la documentazione di riferimento di gcloud app deploy
oppure esegui gcloud help
dalla riga di comando.
Esempi:
gcloud app deploy
gcloud app deploy app.yaml dos.yaml index.yaml
gcloud app deploy --version [YOUR_VERSION_ID] --no-promote --project [YOUR_PROJECT_ID]
Se esegui il deployment di una versione che specifica lo stesso ID versione di una versione già esistenti in App Engine, i file di cui esegui il deployment sovrascriveranno una versione esistente. Questo può essere problematico se la versione gestisce traffico perché il traffico verso la tua applicazione potrebbe subire interruzioni. Puoi evitare interruzioni il traffico se esegui il deployment della nuova versione con un ID versione diverso e poi sposti a quella versione.
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 singole di configurazione file o aggiornare il 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
Puoi usare gli stessi comandi di deployment per il deployment e l'aggiornamento 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 campo
app.yaml
di configurazione del deployment della versione corrispondente. Per specificare l'ID servizio, includi ilservice: [YOUR_SERVICE_ID]
in ogni file di configurazione. Per impostazione predefinita, l'esclusione di questa definizione di elemento dal file di configurazione esegue il deployment della versione nel serviziodefault
.Devi specificare tutti i file di configurazione di
app.yaml
corrispondenti in del tuo comando di deployment per eseguire contemporaneamente il deployment di più servizi.
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 app.yaml
di ogni servizio.
gcloud app deploy [CONFIGURATION_FILES]
Dove [CONFIGURATION_FILES]
rappresenta il percorso e il nome di uno o più file di configurazione
separate da un singolo spazio vuoto.
Esempio
gcloud app deploy main/app.yaml service1/app.yaml service2/app.yaml
Riceverai la verifica dalla riga di comando man mano che ogni servizio deployment 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, usa Regione menu a discesa nella parte superiore della pagina per scegliere la regione in cui filtra per.
Aggiornamento degli indici
Per creare o aggiornare gli indici utilizzati dalle app, carica
index.yaml
di configurazione in Datastore. Gli indici che non esistono ancora vengono
creato 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 le tue l'app è già configurata per ricevere traffico, quindi possono verificarsi eccezioni per che richiedono un indice ancora in fase di creazione.
Per evitare eccezioni, devi attendere la creazione di tutti gli indici. Ad esempio, esempio:
Carica
index.yaml
di configurazione in Datastore prima del deployment versione:Carica
index.yaml
in Datastore:gcloud datastore indexes create index.yaml
Per informazioni, consulta la documentazione di riferimento di
gcloud datastore
.Usa 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 Google Cloud.
Crea i tuoi indici prima di eseguire la migrazione o la suddivisione del traffico verso la tua versione:
-
Esegui il deployment della nuova versione senza instradare il traffico a quella versione
versione:
Devi specificare sia
app.yaml
cheindex.yaml
file e anche includi il flag--no-promote
in modo che non venga indirizzato alla versione:gcloud app deploy app.yaml index.yaml --no-promote
- Usa la console Google Cloud per monitorare lo stato di tutti i tuoi indici:
- Dopo aver creato tutti gli indici, utilizza la console Google Cloud per esegui la migrazione o la suddivisione del traffico alla tua versione:
-
Esegui il deployment della nuova versione senza instradare il traffico a quella versione
versione:
Devi specificare sia
Per ulteriori informazioni sugli indici, consulta Configurazione di Datastore Indici.
Risoluzione dei problemi
Di seguito sono riportati i messaggi di errore 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 delle autorizzazioni necessarie per creare applicazioni App Engine. Command not found
- Consulta l'articolo Utilizzo del server di sviluppo locale per istruzioni su come configurare lo strumento del server di sviluppo locale.
Import Error
- Se hai installato sia gcloud CLI sia l'app originale SDK Engine, le voci del percorso PATH potrebbero essere in conflitto 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
, vedi Deployment per più applicazioni di servizio. Too Many Versions (403)
- App Engine ha un limite al numero di versioni di cui è stato eseguito il deployment di un'applicazione. Si differenziano per le applicazioni gratuite e per quelle di cui è stato eseguito il deployment. Puoi utilizzare la console Google Cloud per eliminare una versione precedente e caricare il codice più recente.
[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 per archiviare i contenuti della tua applicazione. Questo errore è quando non è possibile creare questo bucket, nei seguenti scenari:
L'account di servizio App Engine predefinito non è presente nel tuo progetto. Se il tuo account è stato rimosso prima di 30 giorni trascorsi dalla sua eliminazione, puoi ripristinarlo.
Il tuo progetto si trova in un'organizzazione che applica i
constraints/gcp.resourceLocations
, e l'organizzazione non consente la creazione di risorse sullo stesso regione in cui è stato creato il tuo App Engine. Dovrai eseguire l'override del criterioconstraints/gcp.resourceLocations
applicato per il tuo progetto, e consenti le località con più regioni nella stessa regione in cui è stata creata l'app di App Engine.
[13] An internal error occurred
Questo errore può verificarsi se la configurazione
app.yaml
di App Engine file contiene una risorsa non validaname
nella chiavevpc_access_connector
. Assicurati che il camponame
contiene il progetto e la regione corretti in cui l'accesso VPC serverless viene creato un nuovo connettore.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 abilita automaticamente questa API il primo quando esegui il deployment di un'app, ma se qualcuno ha disabilitato l'API, i deployment non riuscirà.
Passaggi successivi
- Utilizza le funzionalità di servizi per creare un'applicazione di grandi dimensioni.
- Suddividi il traffico o eseguire la migrazione del traffico per instradare il traffico alle versioni di cui esegui il deployment.
- Esamina gli argomenti della riga di comando
gcloud app deploy
e e i flag.