Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
ID regione
REGION_ID è un codice abbreviato assegnato da Google 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 di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Configura le impostazioni dell'app App Engine nel app.yaml
file di configurazione. Il file di configurazione deve specificare almeno una voce runtime.
Ogni servizio
nella tua app ha il proprio file app.yaml, che funge da descrittore per il suo
implementazione. Devi prima creare il file app.yaml per il servizio default
prima di poter creare e implementare file app.yaml per servizi aggiuntivi all'interno
della tua app. Per scoprire di più sulla strutturazione di più servizi nella tua app, consulta
Strutturare i servizi web in App Engine.
Il formato YAML supporta i commenti. Una riga che inizia con il carattere cancelletto (#) viene ignorata:
# This is a comment.
I pattern di URL e percorsi file utilizzano la sintassi delle espressioni regolari estese POSIX, esclusi gli elementi di confronto e le classi di confronto. I riferimenti a ritroso alle corrispondenze raggruppate (ad es. \1)
sono supportati, così come queste estensioni Perl: \w \W \s \S \d \D.
Esempio
Di seguito è riportato un esempio di file app.yaml:
Elementi di runtime e app
Elemento
Descrizione
build_env_variables
Facoltativo. Se utilizzi un runtime che supporta
buildpack, puoi
definire le variabili di ambiente di compilazione nel
file app.yaml.
Facoltativo. Imposta un periodo di cache predefinito globale per tutti i gestori di file statici di un'applicazione. Puoi anche configurare una durata della cache per gestori di file statici specifici. Il valore è una stringa di numeri e unità, separati da spazi, dove le unità possono essere d per giorni, h per ore, m per minuti e s per secondi. Ad esempio, "4d 5h" imposta la scadenza della cache su 4 giorni e 5 ore dopo la prima richiesta del file. Se omesso,
il server di produzione imposta la scadenza su 10 minuti.
Facoltativo.
Puoi definire le variabili di ambiente nel file app.yaml
per renderle disponibili alla tua app. Assicurati che la chiave in Variabili di ambiente corrisponda all'espressione "[a-zA-Z_][a-zA-Z0-9_]*" (inizia con l'alfabeto o "_" seguito da qualsiasi carattere alfanumerico o "_").
Le variabili di ambiente precedute dal prefisso
GAE sono riservate all'uso di sistema e non sono consentite nel
app.yaml file.
error_handlers
Facoltativo.
Utilizzato per configurare pagine di errore personalizzate restituite per diversi
tipi di errore.
Questo elemento può contenere i seguenti elementi:
error_code
Facoltativo. error_code può essere uno dei seguenti:
Viene pubblicato se viene raggiunta una scadenza prima che la tua app risponda.
Il codice errore è facoltativo; se non è specificato, il file specificato è la risposta di errore predefinita per l'app.
file
Ogni voce del file indica un file statico da pubblicare al posto della risposta generica all'errore. Se specifichi un elemento file senza un elemento error_code corrispondente, il file statico sarà la pagina di errore predefinita per la tua app.
I dati di errore personalizzati devono essere inferiori a 10 kilobyte.
Facoltativo.
Un elenco di pattern URL e descrizioni di come devono essere gestiti.
App Engine può gestire gli URL eseguendo il codice dell'applicazione o pubblicando file statici caricati con il codice, come immagini, CSS o JavaScript.
Facoltativo.
Le applicazioni devono attivare questi servizi prima di poter ricevere richieste in entrata. Puoi attivare il servizio per un'app
includendo una sezione inbound_services nel
file app.yaml.
I seguenti valori sono disponibili in base al
scaling del servizio:
Scalabilità automatica
F1, F2, F4, F4_1G
Valore predefinito:F1
Se vuoi, utilizza l'elemento automatic_scaling per modificare le impostazioni predefinite per la scalabilità automatica, ad esempio il numero minimo e massimo di istanze, la latenza e le connessioni simultanee.
Nota: se instance_class è impostato su F2 o su un valore superiore, puoi ottimizzare le istanze impostando max_concurrent_requests su un valore superiore al valore predefinito di 10. Per determinare il valore ottimale,
aumentalo gradualmente e monitora il rendimento della tua
applicazione.
Scalabilità di base e manuale
B1, B2, B4, B4_1G, B8
Valore predefinito:B2
Le classi di istanze di base e manuali richiedono di specificare
l'elemento basic_scaling o l'elemento manual_scaling.
runtime
Obbligatorio. Il nome dell'ambiente di runtime utilizzato dalla tua
app. Ad esempio, per specificare l'ambiente di runtime, utilizza:
service
Obbligatorio se crei un
servizio.
Facoltativo per il servizio default. Ogni servizio e ogni versione deve avere un nome. Un nome può contenere numeri, lettere e trattini. 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 progetto, non deve essere superiore a 63 caratteri e non deve
iniziare o terminare con un trattino. Scegli un nome univoco per ogni servizio
e per ogni versione. Non riutilizzare i nomi tra servizi e versioni.
Esempio:
service:service-name
service_account
Facoltativo. L'elemento service_account ti consente di specificare un
account di servizio specifico per la versione come identità per la versione. L'account di servizio specificato viene utilizzato per accedere ad altri servizi Google Cloud ed eseguire attività.
Facoltativo.
Configura l'applicazione in modo che utilizzi un connettore di accesso VPC serverless, in modo che possa inviare richieste alle risorse interne della rete VPC. Per ulteriori informazioni, consulta
Connessione a una rete VPC.
name
Valore letterale di stringa. Specifica il nome completo del connettore di accesso VPC serverless tra virgolette:
Facoltativo. Il valore predefinito è private-ranges-only. egress_setting può essere uno dei seguenti:
private-ranges-only
Valore predefinito. Le richieste agli indirizzi IP interni vengono inviate tramite il connettore di accesso VPC serverless alla rete VPC collegata. Le richieste agli indirizzi IP esterni vengono inviate alla rete internet pubblica.
all-traffic
Tutte le richieste vengono inviate tramite il connettore di accesso VPC serverless alla rete VPC collegata.
L'elemento handlers fornisce un elenco di pattern URL e descrizioni di come devono essere gestiti. App Engine può gestire gli URL eseguendo il codice dell'applicazione o pubblicando file statici caricati con il codice, ad esempio immagini, CSS o JavaScript.
I pattern vengono valutati nell'ordine in cui appaiono nel file app.yaml, dall'alto verso il basso. La prima mappatura il cui pattern corrisponde all'URL è quella utilizzata per gestire la richiesta.
La tabella seguente elenca i sottoelementi dell'elemento handlers che controllano il comportamento per file statici, directory statiche, script in ambienti di runtime diversi da Node.js e altre impostazioni.
Elemento
Descrizione
expiration
Facoltativo.
Il periodo di tempo per cui un file statico pubblicato da questo gestore deve essere memorizzato nella cache da proxy web e browser. Il valore è una stringa di
numeri e unità, separati da spazi, in cui le unità possono essere
d per i giorni, h per le ore, m per
i minuti e s per i secondi. Ad esempio,
"4d 5h" imposta la scadenza della cache su 4 giorni e 5 ore dopo
la prima richiesta del file. Se omesso, viene utilizzato il valore default_expiration dell'applicazione. Per ulteriori dettagli, consulta la sezione Scadenza della cache.
http_headers
Facoltativo. Puoi impostare le intestazioni HTTP per le risposte degli elaboratori di directory o file statici.
Se devi impostare le intestazioni HTTP
nei gestori script, devi farlo nel
codice dell'app. Per informazioni sulle intestazioni di risposta
che influiscono sulla memorizzazione nella cache,
consulta Memorizzazione nella cache
dei contenuti statici.
Un uso importante di questa funzionalità è supportare la condivisione delle risorse tra origini (CORS), ad esempio l'accesso ai file ospitati da un'altra app App Engine.
Ad esempio, potresti avere un'app di gioco mygame.uc.r.appspot.com
che accede agli asset ospitati da myassets.uc.r.appspot.com.
Tuttavia, se mygame tenta di eseguire un XMLHttpRequest di JavaScript su myassets, non avrà esito positivo a meno che l'handler per myassets non restituisca un'intestazione di risposta Access-Control-Allow-Origin: contenente il valore http://mygame.uc.r.appspot.com.
Ecco come fare in modo che il gestore dei file statici restituisca il valore obbligatorio dell'intestazione di risposta:
Suggerimento: per consentire a tutti di accedere ai tuoi asset, puoi
utilizzare il carattere jolly '*' anziché
https://mygame.uc.r.appspot.com.
mime_type
Facoltativo. Se specificato, tutti i file pubblicati da questo gestore verranno pubblicati utilizzando il tipo MIME specificato. Se non specificato, il tipo MIME
di un file verrà dedotto dall'estensione del nome file.
Se lo stesso file viene caricato con più estensioni, l'estensione risultante può dipendere dall'ordine in cui sono stati eseguiti i caricamenti.
Facoltativo. redirect_http_response_code viene utilizzato con l'impostazione secure per impostare il codice di risposta HTTP restituito quando viene eseguito un reindirizzamento richiesto dalla configurazione dell'impostazione secure.
L'elemento redirect_http_response_code ha i seguenti
valori possibili:
301
Codice di risposta Spostato in modo permanente.
302
Codice di risposta trovato.
303
Vedi Codice di risposta: altro.
307
Codice di risposta del reindirizzamento temporaneo.
Quando la richiesta di un utente viene reindirizzata, il codice di stato HTTP viene impostato sul valore del parametro redirect_http_response_code. Se il parametro non è presente, verrà restituito il valore 302.
script
Facoltativo.
Specifica che le richieste all'handler specifico devono avere come target la tua app. L'unico valore accettato per l'elemento script è auto perché tutto il traffico viene pubblicato utilizzando il comando entrypoint. Per utilizzare gli handler statici, almeno uno dei
tuoi handler deve contenere la riga script: auto
o definire un elemento entrypoint per il deployment.
secure
Facoltativo. Qualsiasi gestore di URL può utilizzare l'impostazione secure,
inclusi i gestori di file statici. L'elemento secure ha i seguenti
valori possibili:
optional
Sia le richieste HTTP che quelle HTTPS con URL corrispondenti all'handler
vanno a buon fine senza reindirizzamenti. L'applicazione può esaminare la richiesta per determinare quale protocollo è stato utilizzato e rispondere di conseguenza. Questo è il valore predefinito quando secure non viene fornito per un gestore.
never
Le richieste per un URL che corrispondono a questo gestore e che utilizzano HTTPS vengono reindirizzate automaticamente all'URL HTTP equivalente. Quando la richiesta HTTPS di un utente viene reindirizzata a una richiesta HTTP, i parametri di ricerca vengono rimossi dalla richiesta. In questo modo, un
utente non può inviare accidentalmente i dati delle query tramite una connessione
non sicura che era stata pensata per una connessione sicura.
always
Le richieste di un URL che corrispondono a questo gestore e che non utilizzano HTTPS vengono reindirizzate automaticamente all'URL HTTPS con lo stesso percorso. I parametri di query vengono conservati per il reindirizzamento.
L'accesso e la disconnessione dagli Account Google vengono sempre eseguiti utilizzando una connessione sicura, indipendentemente dalla configurazione degli URL dell'applicazione.
static_dir
Facoltativo. Il percorso della directory contenente i file statici, dalla directory principale dell'applicazione. Tutto ciò che segue la fine del
pattern url corrispondente viene aggiunto a
static_dir per formare il percorso completo del file richiesto.
Ogni file nella directory statica viene pubblicato utilizzando il tipo MIME corrispondente all'estensione del nome file, a meno che non venga sostituito dall'impostazione mime_type della directory. Tutti i file della directory specificata vengono caricati come file statici e nessuno di questi può essere eseguito come script.
Esempio:
handlers:# All URLs beginning with /stylesheets are treated as paths to# static files in the stylesheets/ directory.-url:/stylesheetsstatic_dir:stylesheets# ...
static_files
Facoltativo. Un gestore di pattern di file statici associa un pattern URL ai percorsi dei file statici caricati con l'applicazione. L'espressione regolare
del pattern URL può definire raggruppamenti di espressioni regolari da utilizzare
nella costruzione del percorso del file. Puoi utilizzarlo al posto di
static_dir per mappare file specifici in una struttura di directory
senza mappare l'intera directory.
Esempio:
handlers:# All URLs ending in .gif .png or .jpg are treated as paths to# static files in the static/ directory. The URL pattern is a# regular expression, with a grouping that is inserted into the# path to the file.-url:/(.*\.(gif|png|jpg))$static_files:static/\1upload:static/.*\.(gif|png|jpg)$# ...
I file statici non possono essere gli stessi dei file di codice dell'applicazione.
upload
Facoltativo. Un'espressione regolare che corrisponde ai percorsi dei file di tutti
i file a cui farà riferimento questo gestore. Questo è necessario
perché l'handler non può determinare quali file nella directory
dell'applicazione corrispondono ai pattern url e
static_files specificati. I file statici vengono caricati e gestiti separatamente dai file dell'applicazione. L'esempio
riportato sopra potrebbe utilizzare il seguente pattern upload:
archives/(.*)/items/(.*)
url
Elemento obbligatorio in handlers. Il pattern dell'URL come
un'espressione regolare che può contenere raggruppamenti. Ad esempio,
/profile/(.*)/(.*) corrisponde all'URL
/profile/edit/manager e utilizza
edit e manager come primo e secondo
raggruppamento.
Il pattern URL presenta alcune differenze di comportamento se utilizzato con i seguenti elementi:
Utilizza un prefisso URL. Il pattern di espressioni regolari non deve contenere agrupamenti se utilizzato con l'elemento static_dir. Tutti
gli URL che iniziano con questo prefisso vengono gestiti da questo gestore, che utilizza
la parte dell'URL dopo il prefisso come parte del percorso del file.
Un gestore di pattern di file statici associa un pattern URL ai percorsi dei file statici caricati con l'applicazione. L'espressione regolare del pattern URL può definire raggruppamenti di espressioni regolari da utilizzare nella compilazione del percorso del file. Puoi utilizzarlo al posto di
static_dir per mappare file specifici in una struttura di directory
senza mappare l'intera directory.
Ridimensionare gli elementi
Gli elementi nella tabella seguente configurano la scalabilità dell'applicazione. Se non viene specificato alcun tipo di scalabilità, per impostazione predefinita viene impostata la scalabilità automatica.
Per scoprire di più sulla scalabilità delle app App Engine, consulta
Tipi di scalabilità.
Elemento
Descrizione
automatic_scaling
Facoltativo. Applicabile solo per le applicazioni che utilizzano una
classe
di istanze F1 o superiore.
Specifica questo elemento per modificare le impostazioni predefinite per la scalabilità automatica, come l'impostazione di livelli minimi e massimi per il numero di istanze, la latenza e le connessioni simultanee per un servizio.
Questo elemento può contenere i seguenti elementi:
max_instances
Facoltativo. Specifica un valore compreso tra 0 e 2147483647, dove zero disattiva l'impostazione.
Questo parametro specifica il numero massimo di istanze che App Engine deve creare per questa versione del modulo. Questa opzione è utile per limitare
i costi di un modulo.
min_instances
Facoltativo. Il numero minimo di istanze da creare per App Engine per questa versione del modulo. Queste istanze pubblicano il traffico quando arrivano le richieste e continuano a farlo anche quando vengono avviate istanze aggiuntive in base alle esigenze per gestire il traffico.
Specifica un valore compreso tra 0 e 1000. Puoi impostare il parametro sul valore 0 per consentire il ridimensionamento a 0 istanze al fine di ridurre i costi quando non vengono inviate richieste. Tieni presente che ti viene addebitato il costo per il numero di istanze specificate, indipendentemente dal fatto che ricevano o meno traffico.
max_idle_instances
Facoltativo. Il numero massimo di istanze inattive che
App Engine deve mantenere per questa versione. Specifica un valore compreso tra 1 e 1000. Se non specificato, il valore predefinito è automatic,
il che significa che App Engine gestirà
il numero di istanze inattive.
Tieni presente che:
Un valore massimo elevato riduce il numero di istanze inattive in modo più graduale quando i livelli di carico tornano alla normalità dopo un picco. In questo modo,
l'applicazione mantiene prestazioni costanti durante le oscillazioni del carico delle richieste, ma aumenta anche il numero di istanze inattive (e i conseguenti costi di gestione) durante questi periodi di carico elevato.
Un valore massimo basso mantiene bassi i costi di gestione, ma può peggiorare le prestazioni in presenza di livelli di carico volatili.
Nota: quando si torna ai livelli normali dopo un picco di carico, il numero di istanze inattive può superare temporaneamente il valore massimo specificato. Tuttavia, non ti verrà addebitato il costo di più
istanze rispetto al numero massimo specificato.
min_idle_instances
(Facoltativo) Il numero di istanze aggiuntive da mantenere in esecuzione
e pronte a gestire il traffico per questa versione.
App Engine calcola il numero di istanze necessarie per gestire il traffico corrente dell'applicazione in base alle impostazioni di scalabilità come target_cpu_utilization e target_throughput_utilization. L'impostazione min_idle_instances
specifica il numero di istanze da eseguire oltre a questo numero calcolato. Ad esempio, se App Engine calcola che sono necessarie 5 istanze per gestire il traffico e min_idle_instances è impostato su 2, App Engine eseguirà 7 istanze (5, calcolate in base al traffico, più altre 2 per min_idle_instances).
Tieni presente che ti viene addebitato il costo per il numero di istanze specificate, indipendentemente dal fatto che ricevano o meno traffico. Tieni presente che:
Un numero minimo ridotto consente di ridurre i costi di gestione durante i periodi di inattività, ma significa che potrebbero essere disponibili meno istanze immediatamente per rispondere a un picco di carico improvviso.
Un valore minimo elevato ti consente di preparare l'applicazione per picchi rapidi nel carico delle richieste. App Engine mantiene in esecuzione il numero minimo di istanze per gestire le richieste in entrata. Ti viene addebitato il numero di istanze specificate, indipendentemente dal fatto che gestiscano o meno le richieste.
Se imposti un numero minimo di istanze inattive, latenza in sospeso avrà un effetto minore sul rendimento della tua applicazione.
target_cpu_utilization
Facoltativo. Specifica un valore compreso tra 0,5 e 0,95. Il valore predefinito è
0.6.
Questo parametro specifica la soglia di utilizzo della CPU a cui verranno avviate nuove istanze per gestire il traffico, consentendoti di trovare il giusto equilibrio tra prestazioni e costi: i valori più bassi aumentano le prestazioni e i costi, mentre i valori più elevati riducono le prestazioni, ma anche i costi. Ad esempio, un valore di 0,7 indica che le nuove istanze verranno avviate quando l'utilizzo della CPU raggiunge il 70%.
target_throughput_utilization
Facoltativo. Specifica un valore compreso tra 0,5 e 0,95. Il valore predefinito è
0.6.
Utilizzato con max_concurrent_requests per specificare quando viene avviata una nuova istanza a causa di richieste simultanee. Quando il
numero di richieste simultanee raggiunge un valore uguale a
max_concurrent_requests volte
target_throughput_utilization, lo scheduler tenta
di avviare una nuova istanza.
max_concurrent_requests
Facoltativo. Il numero di richieste in parallelo che un'istanza con scalabilità automatica può accettare prima che lo scheduler generi una nuova istanza (valore predefinito: 10, massimo: 1000).
Utilizzato con target_throughput_utilization per
specificare quando viene avviata una nuova istanza a causa di richieste concorrenti.
Quando il numero di richieste simultanee raggiunge un valore pari a
max_concurrent_requests volte
target_throughput_utilization, lo scheduler tenta di
avviare una nuova istanza.
Ti consigliamo di non impostare max_concurrent_requests
su un valore inferiore a 10, a meno che tu non abbia bisogno di un singolo thread. Un valore inferiore a 10 potrebbe comportare la creazione di più istanze di quante ne siano necessarie per un'app sicura per i thread e potrebbe comportare costi non necessari.
Se questa impostazione è troppo elevata, la latenza dell'API potrebbe aumentare. Tieni presente che il programmatore potrebbe generare una nuova istanza prima che venga raggiunto il numero massimo effettivo di richieste.
max_pending_latency
Il tempo massimo che App Engine deve consentire a una richiesta di attendere nella coda in attesa prima di avviare istanze aggiuntive per gestire le richieste in modo da ridurre latenza in sospeso. Quando viene raggiunta questa
soglia, viene attivato un indicatore di scalabilità e si verifica
un aumento del numero di istanze.
Se non specificato, il valore predefinito è automatic. Ciò significa che le richieste possono rimanere nella coda in attesa per un massimo di 10 secondi, il
limite di tempo massimo per le richieste in attesa, prima che vengano avviate nuove istanze.
Un valore massimo basso significa che App Engine avvia nuove istanze
prima per le richieste in attesa, migliorando le prestazioni, ma aumentando
i costi di gestione.
Un valore massimo elevato significa che gli utenti potrebbero attendere più a lungo per la pubblicazione delle loro richieste (se ci sono richieste in attesa e non sono disponibili istanze inattive per gestirle), ma il costo di esecuzione dell'applicazione sarà inferiore.
min_pending_latency
Un elemento facoltativo che puoi impostare per specificare il tempo minimo
che App Engine deve consentire a una richiesta di attendere nella fila
in attesa prima di avviare una nuova istanza per gestirla.
La specifica di un valore può ridurre i costi di gestione, ma aumentare il tempo di attesa degli utenti per l'elaborazione delle richieste.
Per le app gratuite, il valore predefinito è 500ms. Per le app pagate, il valore predefinito è 0.
Questo elemento funziona insieme all'elemento max_pending_latency
per determinare quando App Engine crea nuove istanze.
Se le richieste in attesa sono in coda:
Se il valore è inferiore a min_pending_latency specificato,
App Engine non creerà nuove istanze.
Più di max_pending_latency, App Engine tenterà di creare una nuova istanza.
Tra l'ora specificata da min_pending_latency
e max_pending_latency, App Engine tenterà di riutilizzare un'istanza esistente. Se nessuna istanza è in grado di elaborare la richiesta prima di max_pending_latency, App Engine creerà una nuova istanza.
Questo elemento consente la scalabilità di base delle classi di istanze B1 e successive e può contenere i seguenti elementi:
max_instances
Obbligatorio. Il numero massimo di istanze che App Engine deve creare per questa versione del servizio. Questa opzione è utile per limitare i costi
di un servizio.
idle_timeout
Facoltativo. L'istanza verrà arrestata dopo questo periodo di tempo dalla
ricezione dell'ultima richiesta. Il valore predefinito è 5 minuti
(5m).
Esempio
basic_scaling:max_instances:11idle_timeout:10m
manual_scaling
Le applicazioni che utilizzano una
classe
di istanze di B1 o superiore devono specificare questo elemento o
basic_scaling.
Questo elemento consente la scalabilità manuale delle classi di istanze B1 e successive
e può contenere il seguente elemento:
instances
Il numero di istanze da assegnare al servizio all'avvio.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2024-11-28 UTC."],[],[]]