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.
Questa guida spiega come strutturare i servizi e le relative risorse della tua app 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 di deployment e definisce il tipo di scalabilità e le risorse CPU, disco e memoria 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 l'ambiente di runtime Java, i file di configurazione sono in formato YAML.
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.flexible.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
applicano impostazioni a livello di app che non sono specifiche di un
servizio particolare, inclusi i file dispatch.yaml, index.yaml e cron.yaml.
Esempi
Un'app semplice richiede solo l'aggiunta di app.yaml nella stessa posizione dei file di origine dell'app. Per un'app di un singolo servizio, questa includerà solo il
servizio default e tutti i file possono trovarsi nella stessa
directory, nella directory principale dell'app:
L'esempio seguente mostra come strutturare l'aspetto di un'app con tre servizi se la sviluppi localmente. Il file 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 sia service3 si trovano in directory separate, che contengono i file di ogni servizio, anche se service3 include due versioni del file di configurazione YAML:
Nell'esempio seguente, un singolo servizio ha il file dispatch.yaml facoltativo
e due file di configurazione che rappresentano versioni diverse di quel 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 richiedere molto tempo per essere risolti. La tua applicazione deve essere in grado di gestire questi errori.
Ecco alcune strategie efficaci 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 l'esecuzione asincrona delle attività.
- Se configuri le istanze per la scalabilità manuale:
- Utilizza il bilanciamento del carico su più istanze.
- Configura più istanze di quelle necessarie 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 saperne 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:
cron.yamlconfigura attività programmate ricorrenti eseguite in orari specifici o a intervalli regolari.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.- Tieni presente che questo file è disponibile per tutti i runtime, ad eccezione del runtime .NET.
Considerazioni sull'archiviazione di file e dati
Da App Engine puoi accedere facilmente ad altri servizi Google Cloud come 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 app 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.