ID regione
REGION_ID
è un codice abbreviato assegnato da Google
in base alla regione selezionata al momento della creazione dell'app. Il codice non
corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione
in modo simile ai codici paese e provincia di uso comune. Per le app create dopo il giorno
Febbraio 2020, REGION_ID.r
è incluso in
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.
Configura le impostazioni dell'app App Engine in app.yaml
.
Questo file specifica in che modo i percorsi degli URL corrispondono ai gestori di richieste e
file statici.
Il file app.yaml
contiene anche informazioni sui tuoi
il codice dell'app, ad esempio il runtime e la versione più recente
identificativo dell'utente.
Ogni servizio
nella tua app ha il proprio file app.yaml
, che funge da descrittore per
e deployment continuo. Devi prima creare il file app.yaml
per il servizio default
prima di poter creare ed eseguire il deployment di file app.yaml
per i servizi aggiuntivi all'interno di
la tua app.
Struttura delle directory
Per scoprire di più 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 Python 2
applicazione:
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Un'istruzione script:
può contenere un percorso file che termina con .py
, che
indica che lo script utilizza CGI, o un percorso del modulo Python, con i nomi dei pacchetti.
sono separati da punti, il che significa che lo script utilizza WSGI.
Sintassi
La sintassi di app.yaml
è il formato YAML.
Il formato YAML supporta i commenti. Una retta che inizia con il cancelletto (#
)
viene ignorato:
# This is a comment.
I pattern per URL e percorsi file utilizzano l'espressione regolare estesa POSIX
, escludendo le regole di confronto
elementi e classi di confronto. Riferimenti precedenti 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 consiste nel rimuovere
Per ulteriori informazioni sull'uso di questi comandi, vedi Deployment dell'app. L'ID applicazione è l'ID progetto della console Google Cloud specificato al momento della creazione dell'applicazione nel Console Google Cloud. |
api_version |
Obbligatorio. La versione dell'API utilizzata nell'ambiente di runtime specificato dalla tua app. Questo campo è ritirato nei runtime App Engine più recenti.
Quando Google annuncia il supporto di una nuova versione di
l'API dell'ambiente di runtime, l'app di cui hai eseguito il deployment continuerà a utilizzare
una per cui è stata scritta. Per eseguire l'upgrade dell'app a una nuova versione di
l'API, modifichi questo valore ed esegui nuovamente il deployment dell'app
di ricerca. Se specifichi il valore
Al momento, App Engine ha una versione
Ambiente di runtime |
auto_id_policy |
Facoltativo. Se sei
impostazione automatica degli identificatori di entità, puoi modificare il metodo
per impostare il criterio ID automatico. Di seguito sono riportate alcune opzioni valide:
|
builtins |
Facoltativo.
L'SDK Python 2 include una serie di gestori integrati per
funzioni di applicazione più comuni. Istruzione Questo campo è ritirato nel runtime di Python 3. Puoi utilizzare i seguenti gestori integrati:
builtins: - deferred: on - appstats: on
L'istruzione builtins: - name: on Equivale a: includes: - $PYTHON_LIB/google/appengine/ext/builtins/name/
Quando utilizzi
Ad esempio, considera il seguente handlers: - url: /.* script: main.app builtins: - appstats: on L'elenco di gestori risultante è: [/_ah/stats, /.*]
Se includes: - included.yaml
E il file handlers: - url: /.* script: main.app builtins: - appstats: on L'elenco di gestori risultante è ora: [/.*, /_ah/stats]
L'ordine di posizionamento della clausola |
default_expiration |
Facoltativo. Imposta un periodo di cache predefinito globale per tutti i tipi di dati statici
gestori di file per un'applicazione. Puoi anche configurare una durata della cache per file statici specifici
e i gestori di rete. 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 i secondi. Ad esempio, runtime: python27 api_version: 1 threadsafe: true default_expiration: "4d 5h" handlers: # ... Per ulteriori informazioni, vedi Cache scadenza. |
env_variables
|
Facoltativo.
Puoi definire le variabili di ambiente in
Variabili di ambiente precedute dal prefisso
os.environ
dizionario:
env_variables: DJANGO_SETTINGS_MODULE: "myapp.settings" |
error_handlers |
Facoltativo. Utilizzato per configurare pagine di errore personalizzate che vengono restituite per diverse tipi di errori. 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 dovrebbero essere gestiti. App Engine può gestire gli URL eseguendo il codice dell'applicazione oppure tramite la pubblicazione di file statici caricati con il codice, ad esempio immagini, CSS o JavaScript. |
includes
|
Facoltativo.
L'istruzione includes: - lib/user_admin.yaml App Engine risolve il percorso incluso nel seguente ordine:
Se l'istruzione
|
inbound_services |
Facoltativo.
Le applicazioni devono attivare questi servizi prima di poter ricevere messaggi in entrata
richieste. Puoi abilitare il servizio per un'app Python 2
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 del servizio scalabilità:
|
libraries |
Facoltativo.
Il runtime Python 2.7 include alcuni
librerie. Alcuni di questi sono disponibili per impostazione predefinita; gli altri sono solo
disponibili se configurati. Puoi specificare la versione che vuoi utilizzare
specificando i valori Questo campo è ritirato nel runtime di Python 3. libraries: - name: PIL version: "1.1.7" - name: webob version: "latest"
Nota: rispetto a quando specifichi Se stai sviluppando un'applicazione che non ha ancora utenti: non c'è bisogno di monitorare le nuove versioni. Ma se la tua applicazione viene utilizzata attivamente, fai attenzione: potrebbe sorprenderti il fatto che la tua applicazione inizia a utilizzare una nuova versione della libreria non compatibile con le versioni precedenti. Per un elenco delle librerie di terze parti incluse, consulta Terze parti Biblioteche. Puoi utilizzare applicazioni di terze parti librerie installandole in una directory locale. Se utilizzi l'ambiente flessibile, consulta Utilizzare librerie Python nell'ambiente flessibile. |
module |
Nota: i moduli ora si chiamano Servizi. Per gestire la tua app con gcloud CLI, utilizza service. |
runtime |
Obbligatorio. Il nome dell'ambiente di runtime utilizzato dal tuo dell'app. Ad esempio, per specificare Python 2.7, utilizza: runtime: python27 |
service |
I Servizi in precedenza erano noti come Moduli.
Supportata solo da gcloud CLI o basato su gcloud CLI
plug-in, ad esempio:
Obbligatorio se crei un
Google Cloud.
Facoltativo per 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 modulo
Per estendere l'elenco di espressioni regolari precedente, copia e incolla quanto riportato sopra
elenco nel tuo skip_files: - ^(.*/)?#.*#$ - ^(.*/)?.*~$ - ^(.*/)?.*\.py[co]$ - ^(.*/)?.*/RCS/.*$ - ^(.*/)?\..*$ - ^(.*/)?.*\.bak$
Per saltare una directory completa, aggiungi il nome della directory a
dall'elenco. Ad esempio, per saltare una directory denominata skip_files: - logs/ |
threadsafe |
Obbligatorio.
Configura l'applicazione per l'uso di richieste in parallelo. Se utilizzi
di Python
libreria di thread,
i dati locali di thread, come restituiti da Questo campo è ritirato nel runtime di Python 3. threadsafe: [true | false]
Nota: l'istruzione |
version |
L'approccio consigliato consiste nel rimuovere
Per ulteriori informazioni sull'uso di questo comando, vedi 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. it
non può iniziare con il prefisso
Nota: i nomi delle versioni devono iniziare con una lettera per distinguerli
da istanze numeriche che sono sempre specificate da un numero. Questo
evita l'ambiguità con URL come
Ogni versione di un'applicazione conserva la propria copia
|
vpc_access_connector |
Facoltativo. Configura la tua applicazione per l'uso di un accesso VPC serverless consentendo all'applicazione di inviare richieste ai server delle tue risorse nella tua rete VPC. Per ulteriori informazioni, vedi Connessione a una rete VPC.
vpc_access_connector: name: "projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME" egress_setting: all-traffic |
Elemento gestori
L'elemento handlers
è obbligatorio in
di configurazione di app.yaml
. L'elemento fornisce un elenco di URL
e descrizioni di come dovrebbero 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
, a partire da
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 in gestori di file statici
vengono caricati come dati statici e mostrati
solo agli utenti finali. Loro
non possono essere letti da un'applicazione. Se questo campo è impostato su true,
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 il codice e i dati statici.
Questo campo è ritirato nei runtime App Engine più recenti. |
expiration
|
Facoltativo.
Il periodo di tempo in cui un file statico pubblicato da questo gestore dovrebbe essere
memorizzati 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
minuti e s per i secondi. Ad esempio:
"4d 5h" imposta la scadenza della cache su 4 giorni e 5 ore dopo
se viene richiesto per la prima volta. Se omesso, il valore
È in uso default_expiration . Vedi Cache
data di scadenza per ulteriori dettagli.
|
http_headers |
Facoltativo. Puoi impostare HTTP
intestazioni per le risposte del file statico o della directory
e i gestori di rete. Se devi impostare 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 # ... Assistenza CORSUn uso importante di questa funzionalità è supportare le risorse multiorigine condivisione (CORS), ad esempio l'accesso a file ospitati da un altro dell'app App Engine.
Ad esempio, potresti avere l'app di gioco Ecco come restituire il gestore di file statico valore di intestazione 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 ai tuoi asset, puoi
utilizza il carattere jolly |
mime_type |
Facoltativo. Se specificato, tutti i file pubblicati da questo gestore saranno pubblicati utilizzando il tipo MIME specificato. Se non specificato, il tipo MIME per un file, verrà ricavata dall'estensione del nome file del file. Se lo stesso file viene caricato con più estensioni, può dipendere dall'ordine in cui sono stati eseguiti i caricamenti. Per ulteriori informazioni sui possibili tipi multimediali MIME, visita il sito web sui tipi di media MIME di IANA. |
redirect_http_response_code |
Facoltativo.
handlers: - url: /youraccount/.* script: accounts.app login: required secure: always redirect_http_response_code: 301
Quando la richiesta di un utente viene reindirizzata, viene impostato il codice di stato HTTP
al valore dell'attributo |
script |
Facoltativo. Specifica il percorso dello script dalla directory radice dell'applicazione directory: handlers: # The root URL (/) is handled by the WSGI application named # "app" in home.py. No other URLs match this pattern. - url: / script: home.app # The URL /index.html is also handled by the home.py script. - url: /index\.html script: home.app # A regular expression can map parts of the URL to the # path of the script. - url: /browse/(books|videos|tools) script: \1.catalog.app # All other URLs use the WSGI application named in "app" # in not_found.py. - url: /.* script: not_found.app
Un'istruzione
Nota: proprio come per un'istruzione Nei runtime di App Engine più recenti, il il comportamento di questo campo è cambiato. |
secure |
Facoltativo. Qualsiasi gestore di URL può usare l'impostazione secure ,
inclusi i gestori di script
gestori di file statici. L'elemento secure ha quanto segue
valori possibili:
handlers: - url: /youraccount/.* script: accounts.app login: required secure: always
Il server web di sviluppo non supporta le connessioni HTTPS. it
ignora il parametro
A
scegliere come target una specifica versione dell'app utilizzando
Per utilizzare domini personalizzati con HTTPS, devi prima attivare e configurare i certificati SSL per quel dominio. L'accesso e la disconnessione dall'Account Google vengono sempre eseguiti utilizzando un connessione sicura, non correlata al modo in cui gli URL dell'applicazione configurato. |
static_dir
|
Facoltativo. Il percorso della directory contenente i file statici, da
nella directory radice dell'applicazione. Tutto ciò che dopo la fine
il pattern
Ogni file nella directory statica viene pubblicato utilizzando il tipo MIME che
corrisponde alla relativa estensione del nome file a meno che non venga sostituito dal
dell'impostazione
Tutti i file in questa directory vengono caricati con la tua app in formato statico
. App Engine archivia e pubblica i file statici separatamente
dai file dell'app. I file statici non sono disponibili nell'app
per impostazione predefinita. Questa opzione può essere modificata impostando il
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
i percorsi dei file statici caricati con l'applicazione. Pattern URL
l'espressione regolare può definire i raggruppamenti di espressioni regolari da utilizzare
nella costruzione 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 in
del file system dell'applicazione per impostazione predefinita. Questa opzione può essere modificata impostando
I file statici non possono essere uguali ai file di codice dell'applicazione. Se un percorso file statico corrisponde a un percorso di uno script utilizzato in una , lo script non sarà disponibile per il gestore dinamico. |
upload |
Facoltativo. Un'espressione regolare che corrisponde ai percorsi dei file per tutti
file a cui fa riferimento questo gestore. Questa operazione è necessaria
perché il gestore non è in grado di determinare quali file nella tua applicazione
della directory corrispondano agli attributi |
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 apprendere ulteriori informazioni sulla scalabilità delle app di App Engine, vedi Tipi di scalabilità.
Elemento | Descrizione |
---|---|
automatic_scaling |
Facoltativo. Applicabile solo per le applicazioni che utilizzano un'etichetta istanza F1 o superiore. Specifica questo elemento per modificare le impostazioni predefinite della scalabilità automatica. come l'impostazione dei livelli minimo e massimo per il numero di istanze, latenza e 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
istanza
di B1 o superiore, deve specificare questo elemento oppure
Questo elemento consente la scalabilità di base delle classi di istanza B1 e superiori, può contenere i seguenti elementi:
basic_scaling: max_instances: 11 idle_timeout: 10m |
manual_scaling |
Le applicazioni che utilizzano
istanza
di B1 o superiore, deve specificare questo elemento oppure
Questo elemento consente la scalabilità manuale delle classi di istanza B1 e superiori, e può contenere il seguente elemento:
manual_scaling: instances: 5 |