Ogni versione di un servizio è definita in un file .yaml
, che indica il nome del servizio e la versione. Il file YAML di solito ha lo stesso nome del servizio che definisce, ma questo non è obbligatorio. Se stai eseguendo il deployment di diverse versioni di un servizio, puoi creare più file YAML nella stessa directory, uno per ogni versione.
In genere, per ogni servizio viene creata una directory contenente i file YAML del servizio e il codice sorgente associato. I file di configurazione facoltativi a livello di applicazione (dispatch.yaml
, cron.yaml
, index.yaml
e queue.yaml
) sono inclusi nella directory delle app di primo livello. L'esempio seguente mostra tre servizi.
In service1
e service2
, i file di origine si trovano allo stesso livello del file YAML. In service3
esistono file YAML per due versioni.
Per i progetti piccoli e semplici, tutti i file dell'app possono essere inseriti in un'unica directory:
Ogni file YAML deve includere un parametro di versione. Per definire il servizio predefinito, puoi includere esplicitamente il parametro service: default
o escludere il parametro del servizio dal file.
Il file di configurazione di ogni servizio definisce il tipo di scalabilità e la classe dell'istanza per un servizio/versione specifici. Vengono utilizzati diversi parametri di scalabilità
a seconda del tipo di scalabilità specificato. Se non specifichi la scalabilità, quella automatica è l'impostazione predefinita. Le impostazioni di scalabilità e classe di istanza sono descritte nella sezione di riferimento app.yaml
.
Per ogni servizio puoi anche specificare le impostazioni che mappano le richieste URL a script specifici e identificano i file statici per migliorare l'efficienza del server. Queste impostazioni sono incluse anche nel file YAML e sono descritte nella sezione Riferimento app.yaml
.
Il servizio predefinito
Ogni applicazione ha un singolo servizio predefinito. Puoi definire il servizio
predefinito in app.yaml
con l'impostazione
service: default
, ma non è necessario. Tutti i parametri di configurazione pertinenti ai servizi possono essere applicati al servizio predefinito.
File di configurazione facoltativi
Questi file di configurazione controllano le funzionalità facoltative che si applicano a tutti i servizi in un'app:
dispatch.yaml
esegue l'override delle regole predefinite di routing inviando le richieste in arrivo a un servizio specifico in base al percorso o al nome host nell'URL.queue.yaml
configura sia le code in modalità push sia le code in modalità pull.index.yaml
specifica gli indici necessari all'app se utilizzi le query Datastore.cron.yaml
configura attività programmate regolarmente che operano in orari definiti o a intervalli regolari.
Per eseguire il deployment degli aggiornamenti di questi file di configurazione in App Engine, esegui questo comando dalla directory in cui si trovano:
gcloud app deploy [CONFIG_FILE]
Esempio
Ecco un esempio di come configurare i file YAML per un'applicazione che dispone di tre servizi: un servizio predefinito che gestisce le richieste web e altri due servizi che gestiscono le richieste mobile e l'elaborazione del backend.
Inizia definendo un file di configurazione denominato app.yaml
che gestirà tutte
le richieste relative al web:
runtime: php55
api_version: 1
threadsafe: true
Se l'ID progetto della console Google Cloud per questa app è simple-sample
, questa configurazione creerà un servizio predefinito con scalabilità automatica e un indirizzo pubblico di https://simple-sample.uc.r.appspot.com
.
Quindi, supponiamo che tu voglia creare un servizio per gestire le richieste del web mobile.
Per gli utenti di dispositivi mobili (in questo esempio), la latenza massima in attesa sarà di solo un secondo e avremo sempre almeno due istanze inattive. Per configurarlo, devi creare un file di configurazione mobile-frontend.yaml
con il seguente contenuto:
service: mobile-frontend
runtime: php55
api_version: 1
threadsafe: true
automatic_scaling:
min_idle_instances: 2
max_pending_latency: 1s
Il servizio creato da questo file sarà quindi raggiungibile all'indirizzo https://mobile-frontend-dot-simple-sample.uc.r.appspot.com
.
Infine, aggiungi un servizio, chiamato my-service
, per gestire il lavoro del backend statico.
Potrebbe essere un job continuo che esporta i dati da Datastore a BigQuery. La quantità di lavoro è relativamente fissa, quindi basta avere un servizio residente in un dato momento. Inoltre, questi job dovranno gestire una grande quantità di elaborazione in memoria, quindi ti consigliamo di utilizzare servizi con una configurazione della memoria maggiore. Per configurarlo, devi creare un file di configurazione my-service.yaml
con il contenuto seguente.
service: my-service
runtime: php55
api_version: 1
threadsafe: true
instance_class: B8
manual_scaling:
instances: 1
Il servizio creato da questo file sarà quindi raggiungibile all'indirizzo https://my-service-dot-simple-sample.uc.r.appspot.com
.
Osserva l'impostazione manual_scaling:
. Il parametro instances:
indica ad App Engine quante istanze creare per questo servizio.