File di configurazione

Ogni versione di un servizio è definita in un file .yaml, che fornisce il nome di il servizio e la versione. Di solito il file YAML ha lo stesso nome del servizio che definisce, 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, crei una directory per ogni servizio, che contiene i file YAML del servizio e il 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 sono presenti file YAML per due versioni.

Grafico gerarchia dei servizi YAML

Per progetti piccoli e semplici, tutti i file dell'app possono trovarsi in una directory:

Grafico della gerarchia di piccoli servizi YAML

Ogni file YAML deve includere un parametro di versione. Per definire il servizio predefinito, puoi includere esplicitamente il parametro service: default o lasciare il parametro del servizio fuori 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 della classe di istanze sono descritte nella sezione di app.yaml documentazione.

Per ogni servizio puoi anche specificare impostazioni che mappano le richieste di URL a script specifici e identificano i file statici per una maggiore 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. 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 tutte le servizi in un'app:

  • dispatch.yaml sostituisce le regole di routing predefinite inviando le richieste in entrata a un servizio specifico in base al percorso o al nome host nell'URL.
  • queue.yaml configura sia le code in modalità push che quelle in modalità pull.
  • index.yaml specifica gli indici di cui ha bisogno la tua 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]

Un 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 creerà un servizio predefinito con il ridimensionamento automatico e un indirizzo pubblico 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 attesa sarà di solo un secondo e avremo 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 opzione, crea un file di configurazione my-service.yaml 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.

Puoi anche scaricare questa app demo Python per dare un'occhiata.