Panoramica di App Engine

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.

Un'app di App Engine è costituita da una singola risorsa dell'applicazione composta da uno o più servizi. Ogni servizio può essere configurato per utilizzare runtime diversi e per funzionare con impostazioni di prestazioni diverse. All'interno di ciascun servizio, viene eseguito il deployment di versioni del servizio. Ogni versione viene quindi eseguita all'interno di una o più istanze, a seconda del volume di traffico che hai configurato.

Componenti di un'applicazione

L'app App Engine viene creata in base al tuo progetto Google Cloud quando crei una risorsa applicazione. L'applicazione App Engine è un container di primo livello che include il servizio, la versione e le risorse di istanza che compongono la tua app. Quando crei l'app App Engine, tutte le risorse vengono create nell'area geografica che hai scelto, inclusi il codice dell'app e una raccolta di impostazioni, credenziali e metadati dell'app.

Ogni applicazione App Engine include almeno un servizio, il servizio default, che può contenere molte versioni, a seconda dello stato di fatturazione della tua app. Per ulteriori informazioni, consulta la sezione Limiti di seguito.

Il seguente diagramma illustra la gerarchia di un'app App Engine in esecuzione con più servizi. In questo diagramma l'app ha due servizi che contengono più versioni e due di queste sono eseguite attivamente su più istanze:

Grafico gerarchico di servizi, versioni e istanze di un'app

Altri servizi Google Cloud, ad esempio Datastore, sono condivisi nell'app App Engine. Per ulteriori informazioni, consulta la pagina Strutturare i servizi web.

Servizi

Utilizza i servizi in App Engine per suddividere le tue app di grandi dimensioni in componenti logici in grado di condividere in sicurezza le funzionalità di App Engine e comunicare tra loro. In genere, i servizi App Engine si comportano come microservizi. Di conseguenza, puoi eseguire l'intera app in un unico servizio oppure progettare e sottoporre a deployment più servizi da eseguire come set di microservizi.

Ad esempio, un'app che gestisce le richieste dei tuoi clienti potrebbe includere servizi separati, ciascuno dei quali gestisce attività diverse, quali:

  • Richieste API da dispositivi mobili
  • Richieste interne di tipo amministrativo
  • Elaborazione backend come pipeline di fatturazione e analisi dei dati

Ogni servizio in App Engine è costituito dal codice sorgente della tua app e dai corrispondenti file di configurazione di App Engine. L'insieme di file di cui esegui il deployment su un servizio rappresenta una singola versione del servizio e ogni volta che esegui il deployment nel servizio vengono create versioni aggiuntive all'interno dello stesso servizio.

Versioni

Avere più versioni della tua app in ogni servizio ti consente di passare rapidamente da una versione all'altra dell'app per rollback, test o altri eventi temporanei. Puoi indirizzare il traffico verso una o più versioni specifiche dell'app eseguendo la migrazione o suddividendo il traffico.

Istanze

Le versioni all'interno dei tuoi servizi vengono eseguite su una o più istanze. Per impostazione predefinita, App Engine scala l'applicazione in base al carico. Le tue app scalano verticalmente il numero di istanze in esecuzione per fornire prestazioni costanti o riducono per ridurre al minimo le istanze inattive e riducono i costi. Per ulteriori informazioni sulle istanze, consulta Come vengono gestite le istanze.

Nell'ambiente flessibile di App Engine, le istanze sono supportate dalle risorse di Compute Engine. Alcune risorse utilizzate dalle istanze nell'ambiente flessibile di App Engine, come disco, CPU e memoria, vengono conteggiate ai fini delle quote dell'API Compute Engine del tuo progetto. Per ulteriori dettagli su come App Engine utilizza le risorse di Compute Engine, consulta la panoramica dell'ambiente flessibile di App Engine.

Richieste di applicazione

Ogni servizio dell'app e ciascuna versione all'interno di tali servizi deve avere un nome univoco. Puoi quindi utilizzare questi nomi univoci per indirizzare e indirizzare il traffico a risorse specifiche utilizzando gli URL, ad esempio:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Tieni presente che la lunghezza combinata di VERSION-dot-SERVICE-dot-PROJECT_ID, dove VERSION è il nome della versione, SERVICE è il nome del servizio e PROJECT_ID è l'ID del progetto, non può essere più lungo di 63 caratteri e non può iniziare o terminare con un trattino. Se la lunghezza combinata è superiore a 63 caratteri, potrebbe essere visualizzato il messaggio di errore DNS address could not be found.

Le richieste degli utenti in entrata vengono instradate ai servizi o alle versioni configurate per la gestione del traffico. Puoi anche indirizzare e instradare le richieste a versioni e servizi specifici. Per ulteriori informazioni, vedi Comunicazione tra servizi.

Logging delle richieste di applicazione

Quando l'applicazione gestisce una richiesta, può anche scrivere i propri messaggi di logging in stdout e stderr. Per informazioni dettagliate sui log della tua app, vedi Scrittura dei log delle applicazioni.

Limiti

Per ogni applicazione sono previsti limiti al numero di servizi, versioni e istanze (per i servizi con scalabilità manuale):

Descrizione Limite
Numero massimo di servizi per applicazione 5
Numero massimo di versioni per applicazione 5 *
Numero massimo di istanze per versione con scalabilità manuale 20

*I servizi di backend, come un servizio di backend utilizzato da un bilanciatore del carico HTTP esterno, possono essere conteggiati ai fini del limite massimo delle versioni.

Esiste anche un limite al numero di caratteri nell'URL dell'applicazione.

Descrizione Limite
Numero massimo di caratteri per l'URL del progetto per VERSION-dot-SERVICE-dot-PROJECT_ID URL 63

Non tutti i progetti hanno i limiti indicati sopra. Man mano che il tuo utilizzo di Google Cloud Platform aumenta nel tempo, i tuoi limiti potrebbero aumentare di conseguenza. Se prevedi un aumento imminente e consistente dell'utilizzo, puoi richiedere proattivamente le modifiche dalla pagina Quote di App Engine in Cloud Console.