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 regione possono sembrare simili ai codici 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 regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Puoi configurare le impostazioni dell'app App Engine nel file app.yaml
.
Questo file specifica in che modo i percorsi degli URL corrispondono ai gestori di richieste e ai file statici.
Il file app.yaml
contiene anche informazioni sul codice dell'app, come il runtime e l'identificatore della versione più recente.
Ogni servizio nell'app ha il proprio file app.yaml
, che funge da descrittore per il relativo deployment. Devi creare il file app.yaml
per il servizio default
prima di poter creare ed eseguire il deployment di file app.yaml
per servizi aggiuntivi all'interno dell'app.
Struttura delle directory
Per scoprire di più sulla strutturazione di più servizi nell'app, consulta Strutturare i servizi web in App Engine.Esempio
Di seguito è riportato un esempio di file app.yaml
per un'applicazione
PHP 5:
runtime: php55 api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 upload: .+\.(gif|png|jpg)$ application_readable: true # Serve php scripts. - url: /(.+\.php)$ script: \1
Nell'esempio precedente, i file con estensione gif
, png
o jpg
verranno pubblicati come risorse statiche. I file sono stati configurati per essere leggibili mediante il codice dell'applicazione in fase di runtime.
Nell'esempio vengono pubblicati anche tutti gli script PHP. Puoi limitare il gestore di script agli script di livello principale utilizzando l'espressione url: /([^/]+\.php)
. Le applicazioni esistenti potrebbero trovare utile simulare il routing $_GET['q']
di Apache mod_rewrite.
Di seguito è riportata una configurazione app.yaml
più completa:
runtime: php55 api_version: 1 handlers: - url: / script: home.php - url: /index\.html script: home.php - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.php login: admin - url: /.* script: not_found.php
Sintassi
La sintassi di app.yaml
è il formato YAML.
Il formato YAML supporta i commenti. Una riga che inizia con un carattere cancelletto (#
) viene ignorata:
# This is a comment.
I pattern di URL e di percorsi dei file utilizzano la sintassi delle espressioni regolari estese di POSIX, escludendo gli elementi di confronto e le classi di confronto. Sono supportati i ritorni a ritroso alle corrispondenze raggruppate (ad es. \1
), così come le seguenti estensioni Perl: \w \W \s \S \d \D
.
Elementi di runtime ed app
Elemento | Descrizione |
---|---|
application |
L'approccio consigliato consiste nel rimuovere l'elemento
Per maggiori informazioni sull'utilizzo di questi comandi, vedi Deployment dell'app. L'ID applicazione è l'ID progetto della console Google Cloud che hai specificato al momento della creazione dell'applicazione nella console Google Cloud. |
api_version |
Obbligatorio. La versione dell'API nell'ambiente di runtime specificato che viene utilizzato dalla tua app. Questo campo è ritirato nei runtime di App Engine più recenti.
Quando Google annuncia il supporto di una nuova versione dell'API di un ambiente di runtime, l'app di cui hai eseguito il deployment continuerà a utilizzare quella per cui era stata scritta. Per eseguire l'upgrade dell'app a una nuova versione dell'API, modifica questo valore ed esegui nuovamente il deployment dell'app in App Engine. Quando specifichi il valore
Al momento, App Engine dispone di una sola versione dell'ambiente di runtime |
default_expiration |
Facoltativo. Consente di impostare un periodo predefinito per la cache 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 i giorni, h per ore, m per minuti e s per secondi. Ad esempio, runtime: php55 api_version: 1 default_expiration: "4d 5h" handlers: # ... Per maggiori informazioni, consulta Scadenza della cache. |
env_variables
|
Facoltativo.
Puoi definire le variabili di ambiente nel file
Le variabili di ambiente precedute dal prefisso env_variables: MY_VAR: "my value"dove MY_VAR e my value sono il nome e il valore della variabile di ambiente da definire e ogni voce di variabile di ambiente rientra di due spazi sotto l'elemento env_variables . Variabili di ambiente a cui non è assegnato un valore predefinito su "None" .
Puoi quindi recuperare il valore di queste variabili utilizzando
echo getenv('MY_VAR');o echo $_SERVER['MY_VAR']; |
error_handlers |
Facoltativo. Utilizzato per configurare pagine di errore personalizzate che vengono restituite per diversi tipi di errore. Questo elemento può contenere i seguenti elementi:
error_handlers: - file: default_error.html - error_code: over_quota file: over_quota.html |
handlers |
Obbligatorio. 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. |
inbound_services |
Facoltativo.
Le applicazioni devono abilitare questi servizi prima che possano ricevere richieste in entrata. Puoi abilitare il servizio per un'app PHP 5
includendo una sezione Sono disponibili i seguenti servizi in entrata:
inbound_services: - mail - warmup |
instance_class |
Facoltativo. La classe istanza per questo servizio. I seguenti valori sono disponibili a seconda della scalabilità del servizio:
|
module |
Nota : i moduli ora si chiamano Servizi. Per gestire la tua app con gcloud CLI, utilizza invece l'elemento service. |
runtime |
Obbligatorio. Il nome dell'ambiente di runtime utilizzato dalla tua app. Ad esempio, per specificare PHP 5, utilizza: runtime: php55 |
service |
I servizi in precedenza erano noti come Moduli.
Supportato solo dai plug-in basati su gcloud CLI o gcloud CLI, ad esempio:
Obbligatorio se crei un
servizio.
Facoltativo per il servizio
service: service-name
Nota: il comando module: service-name |
service_account |
Facoltativo. L'elemento service_account: [SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com |
skip_files |
Facoltativo.
L'elemento
skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$
Il pattern predefinito esclude i file di backup di Emacs con nomi nei formati
Per estendere l'elenco di espressioni regolari riportato sopra, copia e incolla l'elenco precedente in skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Per saltare una directory completa, aggiungi il nome della directory all'elenco. Ad esempio, per saltare una directory denominata skip_files: - logs/ |
version |
L'approccio consigliato consiste nel rimuovere l'elemento
Per maggiori informazioni sull'utilizzo di questo comando, vedi Deployment dell'app. Un identificatore della versione del codice dell'applicazione di cui esegui il deployment in App Engine.
L'ID versione può contenere lettere minuscole, cifre e trattini. Non
può iniziare con il prefisso
Nota: i nomi di versione devono iniziare con una lettera per distinguerli dalle istanze numeriche sempre specificate da un numero. Ciò consente di evitare ambiguità relative a URL come
Ogni versione di un'applicazione conserva la propria copia di |
Elemento Gestori
L'elemento handlers
è un elemento obbligatorio nel
file di configurazione app.yaml
. L'elemento 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, come immagini, CSS o JavaScript.
I pattern vengono valutati nell'ordine in cui appaiono nel file app.yaml
, dall'alto verso il basso. Il primo mapping il cui pattern corrisponde all'URL è quello utilizzato per gestire la richiesta.
Nella tabella seguente sono elencati gli elementi secondari dell'elemento handlers
che controllano il comportamento di script, file statici, directory statiche e altre impostazioni.
Elemento | Descrizione |
---|---|
application_readable |
Facoltativo. Valore booleano. Per impostazione predefinita, i file dichiarati nei gestori di file statici vengono caricati come dati statici e vengono pubblicati solo per gli utenti finali. Non possono essere letti da un'applicazione. Se questo campo viene impostato su true, i file vengono caricati anche come dati di codice in modo che l'applicazione possa leggerli.
Entrambi i caricamenti vengono addebitati in base alle quote delle risorse di codice e archiviazione dei dati statici.
Questo campo è ritirato nei runtime di App Engine più recenti. |
expiration
|
Facoltativo.
Il periodo di tempo in 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, dove le unità possono essere
d per i giorni, h per ore, m per
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 Scadenza della cache.
|
http_headers |
Facoltativo. Puoi impostare intestazioni HTTP per le risposte dei gestori di directory o di file statici. Se devi impostare le intestazioni HTTP nei gestori handlers: - url: /images static_dir: static/images http_headers: X-Foo-Header: foo X-Bar-Header: bar value vary: Accept-Encoding # ... Supporto CORSUn utilizzo importante di questa funzionalità è il supporto della 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 Ecco come fare in modo che il gestore di file statico restituisca il valore di intestazione della risposta richiesta: handlers: - url: /images static_dir: static/images http_headers: Access-Control-Allow-Origin: https://mygame.uc.r.appspot.com # ...
Nota: se vuoi consentire a tutti di accedere ai tuoi asset, puoi
utilizzare il carattere jolly |
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à derivato dall'estensione del nome file del file. Se lo stesso file viene caricato con più estensioni, l'estensione risultante può dipendere dall'ordine in cui sono stati eseguiti i caricamenti. Per ulteriori informazioni sui possibili tipi di contenuti multimediali MIME, visita il sito web IANA MIME Media Type |
redirect_http_response_code |
Facoltativo.
handlers: - url: /youraccount/.* script: accounts.php secure: always redirect_http_response_code: 301
Quando la richiesta di un utente viene reindirizzata, il codice di stato HTTP viene impostato sul valore del parametro |
script |
Facoltativo. Specifica il percorso dello script dalla directory radice dell'applicazione: ... handlers: - url: /profile/(.*)/(.*) script: /employee/\2/\1.php # specify a script Nei runtime di App Engine più recenti, il comportamento di questo campo è cambiato. |
secure |
Facoltativo. Qualsiasi gestore di URL può utilizzare l'impostazione secure , inclusi i gestori di script e di file statici. L'elemento secure ha i seguenti
valori possibili:
handlers: - url: /youraccount/.* script: accounts.php secure: always
Il server web di sviluppo non supporta le connessioni HTTPS. Il parametro
Per
scegliere come target una versione specifica della tua app utilizzando il dominio Per utilizzare domini personalizzati con HTTPS, devi prima attivare e configurare i certificati SSL per il dominio in questione. L'accesso e la disconnessione da un Account Google vengono sempre eseguiti utilizzando una connessione protetta, indipendentemente dalla configurazione degli URL dell'applicazione. |
static_dir
|
Facoltativo. Il percorso della directory contenente i file statici, dalla directory principale dell'applicazione. Tutto quello che segue la fine del
pattern
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
Tutti i file in questa directory vengono caricati con la tua app come file statici. App Engine archivia e pubblica i file statici separatamente dai file dell'app. I file statici non sono disponibili nel file system dell'app per impostazione predefinita. Per modificare questa impostazione, imposta l'opzione
handlers: # All URLs beginning with /stylesheets are treated as paths to # static files in the stylesheets/ directory. - url: /stylesheets static_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 creazione del percorso file. Puoi utilizzare questa opzione anziché 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/\1 upload: static/.*\.(gif|png|jpg)$ # ...
App Engine archivia e gestisce i file statici separatamente dai file dell'applicazione. Per impostazione predefinita, i file statici non sono disponibili nel file system dell'applicazione. Questo valore può essere modificato impostando l'opzione
I file statici non possono essere uguali ai file con il codice dell'applicazione. Se un percorso di file statico corrisponde a un percorso a uno script utilizzato in un gestore dinamico, lo script non sarà disponibile per il gestore dinamico. |
upload |
Facoltativo. Un'espressione regolare che corrisponde ai percorsi dei file di tutti i file a cui questo gestore farà riferimento. Questa operazione è necessaria perché il gestore non è in grado di determinare quali file nella directory dell'applicazione corrispondono ai pattern |
url |
Elemento obbligatorio in Il pattern URL presenta alcune differenze di comportamento quando viene utilizzato con i seguenti elementi:
|
Ridimensionare gli elementi
Gli elementi nella tabella seguente configurano la scalabilità dell'applicazione. Per scoprire di più sulla scalabilità delle app di App Engine, consulta Tipi di scalabilità.
Elemento | Descrizione |
---|---|
automatic_scaling |
Facoltativo. Applicabile solo per le applicazioni che utilizzano una classe di istanza F1 o superiore. Specifica questo elemento per modificare le impostazioni predefinite per la scalabilità automatica, ad esempio l'impostazione dei livelli minimo e massimo per il numero di istanze, la latenza e le connessioni simultanee per un servizio. Questo elemento può contenere i seguenti elementi:
automatic_scaling: target_cpu_utilization: 0.65 min_instances: 5 max_instances: 100 min_pending_latency: 30ms max_pending_latency: automatic max_concurrent_requests: 50 |
basic_scaling |
Le applicazioni che utilizzano una
classe
istanza B1 o superiore devono specificare questo elemento o
Questo elemento consente la scalabilità di base delle classi di istanza B1 e successive. Può contenere i seguenti elementi:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Le applicazioni che utilizzano una
classe
istanza B1 o superiore devono specificare questo elemento o
Questo elemento consente la scalabilità manuale delle classi di istanza B1 e successive e può contenere il seguente elemento:
manual_scaling: instances: 5 |