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.
Configura le impostazioni dell'app App Engine nel file app.yaml.
Questo file specifica la corrispondenza tra i percorsi URL e i gestori delle richieste e i file statici.
Il file app.yaml contiene anche informazioni sul codice della tua app, come il runtime e l'identificatore dell'ultima versione.
Ogni servizio
nella tua app ha il proprio file app.yaml, che funge da descrittore per la sua
implementazione. Prima di poter creare ed eseguire il deployment dei file app.yaml per servizi aggiuntivi all'interno dell'app, devi prima creare il file app.yaml per il servizio default.
Struttura delle directory
Per scoprire di più sulla strutturazione di più servizi nella tua app, vedi Strutturazione dei 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
L'esempio precedente mostrerà i file con estensione gif, png o jpg come
risorse statiche. I file sono stati configurati in modo che siano leggibili dal
codice dell'applicazione in fase di runtime.
L'esempio pubblicherà 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']
mod_rewrite Apache.
Di seguito è riportata una configurazione app.yaml più estesa:
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 il carattere cancelletto (#)
viene ignorata:
# This is a comment.
I pattern di URL e percorsi dei file utilizzano la sintassi delle espressioni regolari estese POSIX, escludendo gli elementi di confronto e le classi di confronto. Sono supportati i riferimenti inversi alle corrispondenze raggruppate (ad es. \1), così come le seguenti estensioni Perl: \w \W \s \S \d \D.
Elementi di runtime e dell'app
| Elemento | Descrizione |
|---|---|
application |
L'approccio consigliato è rimuovere l'elemento
Per ulteriori informazioni sull'utilizzo di questi comandi, consulta Deployment dell'app. L'ID applicazione è l'ID progetto della console Google Cloud che hai specificato quando hai creato l'applicazione in Google Cloud console. |
api_version |
Obbligatorio. La versione dell'API nell'ambiente di runtime specificato utilizzata dalla tua app. Questo campo è obsoleto 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 è stato eseguito il deployment continuerà a utilizzare quella per cui è stata scritta. Per eseguire l'upgrade dell'app a una nuova versione dell'API, modifica questo valore e poi esegui nuovamente il deployment dell'app in App Engine. Quando specifichi il valore
Al momento, App Engine ha una versione dell'ambiente di runtime
|
default_expiration |
Facoltativo. Imposta un periodo di memorizzazione nella cache predefinito globale per tutti i gestori di file statici per 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, runtime: php55 api_version: 1 default_expiration: "4d 5h" handlers: # ... Per ulteriori informazioni, vedi 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" MY_VAR e my value sono il nome e
il valore della variabile di ambiente che vuoi definire e ogni
voce della variabile di ambiente è rientrata di due spazi sotto l'elemento
env_variables. Le variabili di ambiente a cui non è stato assegnato
un valore predefinito sono "None".
Puoi quindi recuperare il valore di queste variabili utilizzando echo getenv('MY_VAR');echo $_SERVER['MY_VAR']; |
error_handlers |
Facoltativo. Utilizzato per configurare pagine di errore personalizzate 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 servendo file statici caricati con il codice, come immagini, CSS o JavaScript. |
inbound_services |
Facoltativo.
Le applicazioni devono abilitare questi servizi prima di poter ricevere richieste
in entrata. Puoi attivare 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 di istanza per questo servizio. A seconda dello scaling del servizio, sono disponibili i seguenti valori:
|
module |
Nota: i moduli ora si chiamano Servizi. Per gestire la tua app con gcloud CLI, utilizza 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 erano precedentemente noti come moduli.
Supportato solo da gcloud CLI o da plug-in basati su 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 del tipo
Per estendere l'elenco di espressioni regolari riportato sopra, copia e incolla l'elenco
in skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Per ignorare una directory completa, aggiungi il nome della directory all'elenco. Ad esempio, per ignorare una directory denominata skip_files: - logs/ |
version |
L'approccio consigliato è rimuovere l'elemento
Per ulteriori informazioni sull'utilizzo di questo comando, consulta Deployment dell'app. Un identificatore per la 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 delle versioni devono iniziare con una lettera per distinguerli
dalle istanze numeriche, che vengono sempre specificate da un numero. In questo modo
si evita l'ambiguità con 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.
La tabella seguente elenca 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 è 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 per l'archiviazione di codice e dati statici.
Questo campo è obsoleto nei runtime di App Engine più recenti. |
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, dove 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 a 4 giorni e 5 ore dopo
la prima richiesta del file. Se omesso, viene utilizzato
default_expiration dell'applicazione. Per ulteriori dettagli, consulta la sezione Scadenza
della cache.
|
http_headers |
Facoltativo. Puoi impostare le intestazioni
HTTP per le risposte dei gestori di file statici o directory. Se devi impostare le intestazioni HTTP
nei tuoi 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 diverse (CORS), ad esempio l'accesso a file ospitati da un'altra app App Engine.
Ad esempio, potresti avere un'app di gioco Ecco come fare in modo che il gestore dei file statici restituisca il valore dell'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 alle tue risorse, 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 per un file verrà derivato 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. Per ulteriori informazioni sui possibili tipi di media MIME, consulta il sito web IANA MIME Media Types. |
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 verrà impostato
sul valore del parametro
|
script |
Facoltativo. Specifica il percorso dello script dalla directory principale dell'applicazione: ... handlers: - url: /profile/(.*)/(.*) script: /employee/\2/\1.php # specify a script Nei runtime App Engine più recenti, il il comportamento di questo campo è cambiato. |
secure |
Facoltativo. Qualsiasi gestore di URL può utilizzare l'impostazione secure,
inclusi i gestori di script e
i gestori 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. Ignora
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 quel dominio. L'accesso e la disconnessione degli 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
Ogni file nella directory statica viene pubblicato utilizzando il tipo MIME che corrisponde alla sua 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. Per impostazione predefinita, i file statici non sono disponibili nel file system dell'app. Puoi modificare questa impostazione impostando 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 a
percorsi a file statici caricati con l'applicazione. L'espressione regolare del pattern URL può definire i raggruppamenti di espressioni regolari da utilizzare nella creazione del percorso del file. Puoi utilizzare questo valore 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 pubblica i file statici separatamente
dai file dell'applicazione. Per impostazione predefinita, i file statici non sono disponibili nel file system dell'applicazione. Puoi modificare questa impostazione impostando
l'opzione
I file statici non possono essere uguali ai file di codice dell'applicazione. Se un percorso di file statico corrisponde a un percorso di 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 per tutti i file a cui farà riferimento questo gestore. Ciò è necessario
perché il gestore non può determinare quali file nella directory
dell'applicazione corrispondono ai pattern |
url |
Elemento obbligatorio in Il pattern URL presenta alcune differenze di comportamento se utilizzato con i seguenti elementi:
|
Elementi di scalabilità
Gli elementi nella tabella seguente configurano la scalabilità dell'applicazione. Per saperne di più su come vengono scalate le app App Engine, consulta Tipi di scalabilità.
| Elemento | Descrizione |
|---|---|
automatic_scaling |
Facoltativo. Applicabile solo alle applicazioni che utilizzano una classe di istanza F1 o superiore. Specifica questo elemento per modificare le impostazioni predefinite per la scalabilità automatica, ad esempio impostando i 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
di istanza B1 o superiore devono specificare questo elemento o
Questo elemento consente la scalabilità di base delle classi di istanze B1 e successive, può contenere i seguenti elementi:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Le applicazioni che utilizzano una
classe
di istanza B1 o superiore devono specificare questo elemento o
Questo elemento consente lo scaling manuale delle classi di istanze B1 e successive e può contenere il seguente elemento:
manual_scaling: instances: 5 |