Ogni versione di un servizio è definita in un file .yaml
, che fornisce il nome di
il servizio e la versione. Il file YAML di solito ha lo stesso nome del
che definisce il servizio, ma non è obbligatorio. Se esegui il deployment
più versioni di un servizio, puoi creare più file YAML nella stessa directory,
uno per ogni versione.
In genere, per ogni servizio si crea una directory, che contiene
YAML e codice sorgente associato. Configurazione facoltativa a livello di applicazione
file (dispatch.yaml
, cron.yaml
, index.yaml
e queue.yaml
) sono
incluso nella directory dell'app di primo livello. L'esempio seguente mostra tre servizi.
In service1
e service2
, i file di origine sono allo stesso livello del file YAML
. In service3
esistono file YAML per due versioni.
Per progetti piccoli e semplici, tutti i file dell'app possono trovarsi 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 uscire dal servizio
dal file.
Il file di configurazione di ogni servizio definisce il tipo di scalabilità e la classe dell'istanza
per un servizio o una versione specifici. Vengono utilizzati parametri di scalabilità diversi a seconda
in base al tipo di scalabilità
specificato. Se non specifichi la scalabilità,
la scalabilità è l'impostazione predefinita. Le impostazioni di scalabilità e classe di istanza sono descritte in
il app.yaml
riferimento
.
Per ogni servizio puoi anche specificare le impostazioni che associano le richieste di URL a specifiche
e identificare file statici per una migliore efficienza del server. Queste impostazioni
sono incluse anche nel file YAML e sono descritte
Riferimento app.yaml
.
Il servizio predefinito
Ogni applicazione dispone di un singolo servizio predefinito. Puoi definire il valore predefinito
servizio in app.yaml
con l'impostazione
service: default
, ma questa operazione non è necessaria. Tutte le configurazioni
i parametri 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 tutte le servizi in un'app:
dispatch.yaml
esegue l'override delle regole predefinite di routing inviando le richieste in entrata a una specifica in base al percorso o al nome host dell'URL.queue.yaml
configura sia le code in modalità push che quelle in modalità pull.index.yaml
specifica gli indici necessari per l'app se utilizzi le query Datastore.cron.yaml
configura attività programmate a intervalli regolari che operano in orari specifici o in modo regolare intervalli.
Per eseguire il deployment degli aggiornamenti di questi file di configurazione in App Engine, esegui seguente comando dalla directory in cui si trova:
gcloud app deploy [CONFIG_FILE]
Esempio
Ecco un esempio di come configureresti i file YAML per un'applicazione include tre servizi: uno predefinito che gestisce le richieste web e altri due che gestiscono le richieste mobile e l'elaborazione backend.
Per iniziare, definisci un file di configurazione denominato app.yaml
che gestirà tutti
richieste relative al web:
runtime: python27
api_version: 1
threadsafe: true
Se l'ID progetto della console Google Cloud per questa app è simple-sample
,
questa configurazione creerebbe un servizio predefinito con scalabilità automatica e
indirizzo pubblico di https://simple-sample.uc.r.appspot.com
.
Quindi, supponiamo di voler creare un servizio per gestire le richieste web mobile.
Per gli utenti di dispositivi mobili (in questo esempio), la latenza massima in sospeso
un secondo e rimarremo sempre almeno due istanze inattive. Per configurare
In questo modo creeresti un file di configurazione mobile-frontend.yaml
. con
seguenti contenuti:
service: mobile-frontend
runtime: python27
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 la gestione del lavoro backend statico.
Potrebbe trattarsi di un job continuo che esporta i dati da Datastore a BigQuery. La
La quantità di lavoro è relativamente fissa, quindi ti serve semplicemente 1 servizio residente
in qualsiasi momento. Inoltre, questi job dovranno gestire una grande quantità
nell'elaborazione in memoria, quindi ti serviranno servizi con una maggiore memoria
configurazione. Per configurare questa funzionalità, devi creare un my-service.yaml
di configurazione del deployment con i seguenti contenuti.
service: my-service
runtime: python27
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 all'app
Specifica quante istanze creare per questo servizio.