ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base
all'area geografica selezionata al momento della creazione dell'app. Il codice non
corrisponde a un paese o a una provincia, anche se alcuni ID di area geografica potrebbero essere
simili ai codici di paese e provincia di uso comune. Per le app create dopo
febbraio 2020, REGION_ID.r
è incluso negli
URL di App Engine. Per le app esistenti create prima di questa data, l'ID area geografica è facoltativo nell'URL.
Scopri di più sugli ID dell'area geografica.
Utilizza il seguente documento per capire come strutturare i servizi e le relative risorse 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 di deployment e definisce il tipo di scalabilità e le risorse di 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 delle tue versioni.
Per ciascun servizio puoi creare directory separate nella directory principale dell'app
in fase di sviluppo locale. Se ospiti la tua app al di fuori di un sistema di controllo delle versioni (VCS), ad esempio GitHub, puoi anche strutturarla per l'utilizzo di directory separate in un repository o per utilizzare repository separati per ciascun 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 ogni file app.yaml
del tuo servizio. Ad esempio, puoi assegnare un nome al file di configurazione dopo il servizio o utilizzare nomi univoci per rappresentare ogni versione del servizio specifico, ad esempio service1.yaml
o app.flexible.yaml
.
Gli altri file di configurazione facoltativi devono trovarsi 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 specifico, come dispatch.yaml
,
index.yaml
e cron.yaml
.
Esempi
L'esempio seguente mostra come potrebbe apparire un'app con tre servizi
se stai sviluppando la tua app in locale. Il servizio dispatch.yaml
facoltativo è stato aggiunto a tale app nella directory principale. Inoltre, all'interno della directory principale sono presenti tre directory per ogni servizio dell'app. La sottodirectory per service1
include i file di origine e di configurazione per tale servizio. Allo stesso modo, service2
e service3
si trovano in directory separate, che contengono
i file di ciascun servizio, sebbene service3
includa due versioni del file
di configurazione YAML:
Per una singola
app di servizio, tale app includerà solo il
servizio default
e tutti i file possono trovarsi nella stessa directory, alla radice dell'app. Nel seguente esempio viene illustrata la possibile struttura di una singola app di servizio e include 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 il tempo di attività delle istanze
Gli errori hardware o software che causano l'interruzione anticipata o il riavvio frequente delle istanze possono verificarsi senza avvisi e possono richiedere molto tempo per la risoluzione. L'applicazione dovrebbe essere in grado di gestire questo tipo di errori.
Ecco alcune buone strategie per evitare tempi di inattività dovuti al riavvio delle istanze:
- Riduci il tempo necessario per il riavvio delle istanze o per l'avvio di nuove istanze.
- Per i calcoli a lunga esecuzione, crea periodicamente punti di controllo in modo da poter riprendere da tale stato.
- L'applicazione deve essere in stato stateless, in modo che non sia archiviato nulla nell'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 del necessario per gestire il traffico normale.
- Scrivi logica di riserva che utilizza i risultati memorizzati nella cache quando un'istanza di scalabilità manuale non è disponibile.
Scopri di più sulle istanze in Modalità di gestione delle istanze.
Il servizio default
Ogni applicazione App Engine include un servizio default
. Per poter creare ed eseguire il deployment di servizi aggiuntivi, devi eseguire il deployment della versione iniziale dell'app nel servizio default
.
Il servizio predefinito può essere specificato in modo facoltativo
in app.yaml
con l'impostazione
service: default
.
Le richieste inviate alla tua app utilizzando il progetto Cloud vengono inviate al servizio default
, ad esempio https://PROJECT_ID.REGION_ID.r.appspot.com
. Per ulteriori informazioni sul targeting di altri servizi, consulta la sezione Comunicazione tra servizi.
File di configurazione facoltativi
I seguenti file di configurazione controllano le funzionalità facoltative che si applicano a tutti i servizi in una singola app. Vedi i seguenti argomenti per i dettagli su ciascuna delle funzionalità facoltative:
dispatch.yaml
sostituisce le regole di routing predefinite inviando richieste in arrivo a un servizio specifico in base al percorso o al nome host nell'URL.index.yaml
specifica quali indici la tua app richiede se utilizzi le query Datastore.cron.yaml
configura attività programmate ricorrenti eseguite in orari specifici o a intervalli regolari.
Considerazioni sull'archiviazione di dati e file
Da App Engine puoi accedere facilmente ad altri servizi di Google Cloud come Datastore, Cloud SQL e Cloud Storage.
Hai anche la possibilità di utilizzare un database esterno o di terze parti se il database è supportato dalla tua lingua ed è accessibile dalla tua istanza App Engine.
Per maggiori dettagli sull'archiviazione di file in Google Cloud o esternamente, vedi Informazioni sull'archiviazione di file e dati.Puoi anche scegliere come pubblicare i contenuti statici. Puoi pubblicare i contenuti statici dell'app direttamente da tale app in App Engine, ospitare i contenuti statici su un'opzione di Google Cloud come Cloud Storage o utilizzare una rete CDN (Content Delivery Network) di terze parti. Per ulteriori informazioni sulla pubblicazione di contenuti statici, consulta Pubblicazione di file statici.
Passaggi successivi
Se lavori con più servizi e vuoi implementarli insieme, vedi i passaggi per eseguire il deployment di più servizi.