ID regione
Il REGION_ID è un codice abbreviato che Google assegna
in base alla regione selezionata quando crei l'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare
simili ai codici di paesi e province di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r è incluso negli
URL App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Utilizza il seguente documento per capire come strutturare i servizi e le risorse correlate della tua app per App Engine.
Struttura delle directory
Ogni versione del servizio App Engine è definita in un file di configurazione
app.yaml. Per le app semplici, il requisito minimo per il deployment è
definire il file app.yaml. Il file app.yaml funge da descrittore del deployment e definisce il tipo di scalabilità e il runtime, i gestori e altre impostazioni delle risorse per una versione specifica di un servizio. Se esegui il deployment di più versioni di un servizio, puoi creare più file YAML nella stessa directory per rappresentare la configurazione di ciascuna versione.
Per ogni servizio, puoi creare directory separate nella radice dell'app
durante lo sviluppo locale. Se ospiti la tua app al di fuori di un sistema di controllo delle versioni (VCS), ad esempio GitHub, puoi anche strutturarla in modo da utilizzare directory separate in un repository o repository separati per ogni servizio. Ogni directory o repository deve rappresentare un singolo servizio e
contenere il file app.yaml del servizio insieme al codice sorgente associato.
Hai la possibilità di specificare un nome univoco per ciascun file
app.yaml del servizio. Ad esempio, puoi denominare un file di configurazione in base al tuo
servizio o utilizzare nomi univoci per rappresentare ogni versione di quel particolare
servizio, ad esempio service1.yaml o app.standard.yaml.
Gli altri file di configurazione facoltativi devono
risiedere nella directory principale o nel repository del
servizio default della tua app. Questi file di configurazione facoltativi
si applicano alle impostazioni a livello di app che non sono specifiche di un
servizio particolare, inclusi i file dispatch.yaml,
index.yaml e cron.yaml.
Esempi
L'esempio seguente mostra l'aspetto di un'app con tre servizi
se la sviluppi localmente. Il dispatch.yaml facoltativo è stato
aggiunto all'app nella directory principale. Nella radice sono presenti anche tre directory per ciascuno dei servizi dell'app. La sottodirectory per service1
include i file di origine e di configurazione per il servizio. Allo stesso modo, sia service2 che service3 si trovano in directory separate, che contengono i file di ogni servizio, anche se service3 include due versioni del file di configurazione YAML:
Per un'app di servizio singola, questa includerà solo il servizio default e tutti i file possono trovarsi nella stessa directory, nella radice dell'app. Nell'esempio seguente viene illustrata la possibile struttura di un'app di servizio singola e sono inclusi il file di configurazione dispatch.yaml facoltativo e due file di configurazione che rappresentano versioni diverse del servizio, service1.yaml e service2.yaml:
Considerazioni sulla progettazione per l'uptime delle istanze
Guasti hardware o software che causano l'interruzione anticipata o riavvii frequenti delle istanze possono verificarsi senza preavviso e la risoluzione può richiedere molto tempo. La tua applicazione deve essere in grado di gestire questi errori.
Ecco alcune buone strategie per evitare tempi di inattività dovuti ai riavvii delle istanze:
- Ridurre il tempo necessario per il riavvio delle istanze o per l'avvio di nuove istanze.
- Per i calcoli di lunga durata, crea periodicamente dei checkpoint in modo da poter riprendere da quello stato.
- La tua app deve essere "stateless", in modo che non venga memorizzato nulla sull'istanza.
- Utilizza le code per eseguire attività asincrone.
- Se configuri le istanze per la scalabilità manuale:
- Utilizza il bilanciamento del carico su più istanze.
- Configura più istanze del necessario per gestire il traffico normale.
- Scrivi una logica di fallback che utilizzi i risultati memorizzati nella cache quando un'istanza di scalabilità manuale non è disponibile.
Scopri di più sulle istanze in Come vengono gestite le istanze.
Il servizio default
Ogni applicazione App Engine include un servizio default. Devi
implementare la versione iniziale della tua app nel servizio default prima di poter
creare e implementare servizi aggiuntivi nella tua app.
Il servizio predefinito può essere specificato facoltativamente
in app.yaml con l'impostazione
service: default.
Le richieste inviate alla tua app utilizzando il tuo progetto Google Cloud vengono inviate al servizio default, ad esempio https://PROJECT_ID.REGION_ID.r.appspot.com. Per scoprire di più sul targeting degli altri servizi, consulta Comunicazione tra i servizi.
File di configurazione facoltativi
I seguenti file di configurazione controllano le funzionalità opzionali che si applicano a tutti i servizi di una singola app. Per informazioni dettagliate su ciascuna delle funzionalità opzionali, consulta i seguenti argomenti:
dispatch.yamlignora le regole di routing predefinite inviando le richieste in entrata a un servizio specifico in base al percorso o al nome host nell'URL.index.yamlspecifica gli indici necessari alla tua app se utilizzi le query Datastore.cron.yamlconfigura attività programmate ricorrenti eseguite in orari specifici o a intervalli regolari.
Considerazioni sull'archiviazione di file e dati
Da App Engine puoi accedere facilmente ad altri servizi Google Cloudcome Datastore, Cloud SQL e Cloud Storage.
Hai anche la possibilità di utilizzare un database esterno o di terze parti se è supportato dalla tua lingua e accessibile dalla tua istanza App Engine.
Per informazioni dettagliate sull'archiviazione dei file in Google Cloud o esternamente, vedi Informazioni sull'archiviazione di file e dati.Puoi anche scegliere la modalità di pubblicazione dei contenuti statici. Puoi pubblicare i contenuti statici della tua app direttamente da questa in App Engine, ospitare i contenuti statici su un'opzione come Cloud Storage o utilizzare una Content Delivery Network (CDN) di terze parti. Google Cloud Per saperne di più sulla pubblicazione di contenuti statici, consulta Pubblicazione di file statici.
Passaggi successivi
Se lavori con più servizi e vuoi eseguirne il deployment insieme, consulta i passaggi per eseguire il deployment di più servizi.