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.
Configura le impostazioni dell'app App Engine nel file app.yaml
.
Questo file specifica in che modo i percorsi dell'URL corrispondono ai gestori delle richieste e ai file statici.
Il file app.yaml
contiene anche informazioni sul codice dell'app, ad esempio il runtime e l'identificatore della versione più recente.
Ogni servizio nella tua app ha il proprio file app.yaml
, che funge da descrittore per il 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 ulteriori informazioni su come strutturare più servizi nella tua app, vedi 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
L'esempio precedente pubblicherà i file con estensione gif
, png
o jpg
come
risorse statiche. I file sono stati configurati in modo da essere leggibili
dal codice dell'applicazione in fase di runtime.
L'esempio pubblicherà anche tutti gli script PHP. Puoi limitare il gestore degli script a script a livello principale utilizzando l'espressione url: /([^/]+\.php)
. Le applicazioni esistenti potrebbero essere utili per simulare Apache mod_rewrite $_GET['q']
routing.
Di seguito è riportata una configurazione più completa di app.yaml
:
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
Syntax
La sintassi di app.yaml
è il formato YAML.
Il formato YAML supporta i commenti. Una riga che inizia con un carattere di cancelletto (#
) viene ignorata:
# This is a comment.
Per i pattern di URL e percorsi dei file viene usata la sintassi estesa delle espressioni regolari, esclusi gli elementi di confronto e le classi di confronto. Sono supportati i riferimenti a corrispondenze raggruppate (ad es. \1
), così come le seguenti estensioni Perl: \w \W \s \S \d \D
.
Elementi di runtime e app
Elemento | Descrizione |
---|---|
application |
L'approccio consigliato è rimuovere l'elemento
Per ulteriori informazioni sull'utilizzo di questi comandi, vedi Deployment dell'applicazione. L'ID applicazione è l'ID progetto Cloud Console che hai specificato al momento della creazione dell'applicazione in Google Cloud Console. |
api_version |
Obbligatorio. La versione dell'API nell'ambiente di runtime specificato utilizzata dalla tua app. Questo campo è deprecato nei runtime di App Engine più recenti.
Quando Google annuncia il supporto di una nuova versione di un ambiente runtime, l'app di cui hai eseguito il deployment continuerà a utilizzare l'API per cui è stata scritta. Per eseguire l'upgrade dell'app a una nuova versione dell'API, devi modificare questo valore e quindi eseguire 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 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, in cui le unità possono essere utilizzate 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, consulta Scadenza della cache. |
env_variables
|
(Facoltativo)
Puoi definire variabili di ambiente nel file
Le variabili di ambiente con il prefisso env_variables: MY_VAR: "my value"dove MY_VAR e my value sono il nome e
il valore della variabile di ambiente che vuoi definire e ciascuna
voce di variabile di ambiente rientrata di due spazi sotto l'elemento
env_variables . Per le variabili di ambiente non assegnato
un valore predefinito, "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 delle descrizioni di gestione. 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 attivare questi servizi prima di poter 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 di 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 l'app con l'interfaccia a riga di comando gcloud, utilizza invece l'elemento service. |
runtime |
Obbligatorio. Il nome dell'ambiente di runtime utilizzato dalla tua app. Per specificare PHP 5, utilizza: runtime: php55 |
service |
I servizi in precedenza erano noti come Moduli.
Supportato solo dall'interfaccia a riga di comando gcloud o gcloud CLI, ad esempio:
Obbligatorio se si crea 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 nel formato
Per estendere l'elenco di espressioni regolari riportato sopra, copia e incolla questo 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 la pagina 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 sono 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 su 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 i sottoelementi 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 dei 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 di archiviazione del codice e dei dati statici.
Questo campo è deprecato nei runtime di App Engine più recenti. |
expiration
|
(Facoltativo)
La durata di un file statico pubblicato da questo gestore deve essere memorizzato nella cache da proxy e browser web. Il valore è una stringa di
numeri e unità separati da spazi, in cui 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 richiesta iniziale del file. Se omesso, viene usato il
default_expiration dell'applicazione. Consulta Scadenza
della cache per ulteriori dettagli.
|
http_headers |
(Facoltativo) Puoi impostare intestazioni HTTP per le risposte dei gestori dei file o delle directory statici. Se devi impostare 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 uso importante di questa funzionalità è quello di supportare la condivisione delle risorse tra origini (CORS), ad esempio l'accesso a file ospitati da un'altra app App Engine.
Ad esempio, potresti avere un'app di gioco Ecco come rendere il gestore del file statico restituire quel valore di intestazione della risposta richiesto: 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 di un file verrà estratto dall'estensione del nome file. Se lo stesso file viene caricato con più estensioni, l'estensione risultante può dipendere dall'ordine in cui si sono verificati. Per ulteriori informazioni sui possibili tipi di contenuti multimediali 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 viene reindirizzata una richiesta di un utente, 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 più recenti di App Engine, il comportamento di questo campo è cambiato. |
secure |
(Facoltativo) Qualsiasi gestore di URL può utilizzare l'impostazione secure , inclusi i gestori degli 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 i domini personalizzati con HTTPS, devi prima attivare e configurare i certificati SSL per tale dominio. L'accesso e la disconnessione di Google Account vengono sempre eseguiti utilizzando una connessione sicura, non correlata alla configurazione degli URL dell'applicazione. |
static_dir
|
(Facoltativo) Il percorso della directory contenente i file statici dalla directory radice dell'applicazione. Tutto ciò che si trova dopo la fine del pattern
Ogni file nella directory statica viene pubblicato utilizzando il tipo MIME corrispondente alla relativa 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 file statici
separatamente dai file dell'app. I file statici non sono disponibili per impostazione predefinita nel file system dell'app. Puoi modificare questa opzione 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 ai file statici caricati con l'applicazione. L'espressione regolare del pattern URL può definire raggruppamenti di espressioni regolari da utilizzare nella creazione del percorso del file. Puoi utilizzarlo al posto di
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. I file statici non sono disponibili per impostazione predefinita nel file system dell'applicazione. Puoi modificare questa impostazione impostando
l'opzione
I file statici non possono essere gli stessi dei file di 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 di tutti i file a cui verrà fatto riferimento da questo gestore. Ciò è necessario 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 utilizzato con i seguenti elementi:
|
Ridimensionare gli elementi
Gli elementi nella tabella seguente configurano la scalabilità dell'applicazione. Per ulteriori informazioni sulla scalabilità delle app di App Engine, consulta la pagina relativa ai tipi di scalabilità.
Elemento | Descrizione |
---|---|
automatic_scaling |
(Facoltativo) Applicabile solo per applicazioni che utilizzano una classe di istanza di livello F1 o superiore. Specifica questo elemento per modificare le impostazioni predefinite per la scalabilità automatica, come 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 di istanza di 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 di istanza di B1 o superiore devono specificare questo elemento o Questo elemento consente la scalabilità manuale delle classi di istanza B1 e superiori e può contenere il seguente elemento:
manual_scaling: instances: 5 |