Opzioni del server di sviluppo locale

Il server di sviluppo locale (dev_appserver.py) fa parte dei componenti di App Engine dell'interfaccia a riga di comando gcloud. Questo argomento fornisce informazioni avanzate sull'utilizzo di dev_appserver.py.

Ti consigliamo di utilizzare strumenti Python standard, come virtualenv per creare ambienti isolati e pytest per eseguire test di unità e di integrazione, anziché fare affidamento su dev_appserver, il server di sviluppo locale fornito con l'SDK Google Cloud.

Per ulteriori informazioni sui test locali, consulta la sezione Utilizzare il server di sviluppo locale.

Configurare lo strumento del server di sviluppo locale

Un comando dev_appserver.py di esempio potrebbe avere il seguente aspetto:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py OPTION yaml_path FILES

Sostituisci quanto segue:

  • CLOUD_SDK_ROOT con il percorso della directory principale dove hai installato Google Cloud CLI. La directory predefinita è ./google-cloud-sdk/.
  • OPTION con un flag supportato dal server di sviluppo locale.
  • FILES specifica uno o più file app.yaml, uno per servizio, per l'argomento posizionale yaml_path.

Per un elenco completo delle opzioni, esegui il seguente comando:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py -h

Opzioni comuni

Le opzioni più comuni sono le seguenti:

--admin_host=ADMIN_HOST
Nome host a cui deve essere associata la console di amministrazione del server di sviluppo locale (valore predefinito: localhost).
--admin_port=ADMIN_PORT
Porta a cui deve essere associata la console di amministrazione del server di sviluppo locale (valore predefinito: 8000).
--addn_host=ADDN_HOST
Questo argomento consente di inserire nella lista consentita valori aggiuntivi dell'intestazione Host HTTP, in modo che il server possa essere reso accessibile dietro un proxy, senza dover disattivare il controllo dell'host (vedi --enable_host_checking). Gli host aggiuntivi che iniziano con *. consentono tutti i sottodomini. Ad esempio, *.example.org consente host.example.org, ma non sub.host.example.org o example.org. Gli host che iniziano con **. consentono sottodomini di qualsiasi profondità. Ad esempio, **.example.com consente host.example.com e sub.host.example.com, ma non example.com. (valore predefinito: [])
--allow_skipped_files=...
Rendi i file specificati nei gestori app.yaml skip_files o static leggibili dall'applicazione (valore predefinito: False).
-A APP_ID, --application=...
Imposta l'applicazione, sostituendo il valore dell'applicazione del file app.yaml (valore predefinito: Nessuno).
--appidentity_email_address=...
Indirizzo email associato a un account di servizio con una chiave scaricabile. Può essere None per nessuna identità dell'applicazione locale (valore predefinito: Nessuno).
--appidentity_private_key_path=...
Percorso del file della chiave privata associata all'account di servizio (formato .pem). Deve essere impostato se è impostato appidentity_email_address (valore predefinito: Nessuno).
--api_host=API_HOST
Nome host a cui deve essere associato il server API (valore predefinito: localhost).
--api_port=API_PORT
Porta a cui deve essere associato il server per le chiamate API (valore predefinito: 0).
--auth_domain=...
Nome del dominio di autorizzazione da utilizzare (valore predefinito: gmail.com).
--auto_id_policy=...
Ritirata. Come il data store locale assegna gli ID automatici. Le opzioni sono sequential o scattered (valore predefinito: scattered).
--automatic_restart=...
Riavvia automaticamente le istanze quando i file pertinenti al relativo modulo vengono modificati (valore predefinito: True).
--blobstore_path=...
Percorso della directory utilizzata per archiviare i contenuti dei blob (se non impostato, viene utilizzato per impostazione predefinita una sottodirectory di --storage_path) (valore predefinito: Nessuno).
--clear_datastore=yes|no
Svuota i file di dati e della cronologia del datastore prima di avviare il server web (valore predefinito: no).
--clear_search_indexes...
Cancella gli indici di ricerca (valore predefinito: False).
--custom_entrypoint=...

Specifica un punto di contatto per i moduli di runtime personalizzati. Questo è necessario quando sono presenti questi moduli. Includi {port} nella stringa (senza virgolette) per passare il numero di porta come argomento (valore predefinito: ). Ad esempio:

--custom_entrypoint="gunicorn -b localhost:{port}
  mymodule:application"
--datastore_consistency_policy {consistent,random,time}

Il criterio da applicare per decidere se una scrittura nel datastore deve essere visualizzata nelle query globali (valore predefinito: ora).

--datastore_emulator_cmd=...

Il percorso di uno script che richiama l'emulatore Cloud Datastore. Se non viene specificato, dev_appserver tenterà di trovare l'emulatore Datastore in Google Cloud SDK (valore predefinito: Nessuno).

--datastore_emulator_port=...

Il numero di porta su cui dev_appserver deve avviare l'emulatore Cloud Datastore (valore predefinito: 0).

--datastore_path=...

Il percorso da utilizzare per il file di dati del data store locale. Il server crea questo file se non esiste.

--default_gcs_bucket_name=...

Nome del bucket Cloud Storage predefinito (valore predefinito: Nessuno).

--dev_appserver_log_level {debug,info,warning,critical,error}

Il livello di log al di sotto del quale i messaggi di log generati dal server di sviluppo non verranno visualizzati sulla console (questo flag è più utile per diagnosticare i problemi in dev_appserver.py anziché nel codice dell'applicazione) (valore predefinito: info).

--enable_host_checking=yes|no

Determina se applicare il HTTP controllo dell'host per i moduli dell'applicazione, il server API e il server di amministrazione. Il controllo dell'host protegge dagli attacchi DNS rebinding. Disattiva questa opzione solo dopo aver compreso le implicazioni per la sicurezza (valore predefinito: True).

--enable_console=yes|no

Attiva la console interattiva nella visualizzazione Amministrazione (valore predefinito: False).

--enable_sendmail=yes|no

Utilizza l'installazione di Sendmail sul computer locale per inviare messaggi email.

--enable_task_running=yes|no

Consente al server di sviluppo di eseguire attività push (valore predefinito: yes). Se specifichi no, il server non eseguirà attività push.

--env_var=...

Variabile di ambiente definita dall'utente per il processo di runtime locale. Ogni env_var ha il formato di key=value e puoi definire più variabili di ambiente. Oltre a env_variables in app.yaml, questo flag consente di impostare variabili di ambiente aggiuntive per i processi locali.

Ad esempio:--env_var KEY_1=val1 --env_var KEY_2=val2

--grpc_api_port...

Porta su cui il server API gRPC è in ascolto (valore predefinito:0).

--help

Stampa un messaggio utile e poi esce.

--host=...

L'indirizzo host da utilizzare per il server. Potresti dover impostare questa opzione per poter accedere al server di sviluppo da un altro computer della rete. Un valore di 0.0.0.0 consente sia l'accesso a localhost sia l'accesso all'IP o al nome host (valore predefinito: localhost).

--log_level=...

Il livello di logging più basso a cui i messaggi di logging verranno scritti nella console. Verranno visualizzati i messaggi del livello di logging specificato o superiore. I valori possibili sono debug, info, warning, error e critical.

--logs_path=...

Per impostazione predefinita, i log del server di sviluppo locale vengono memorizzati solo in memoria. Specifica questa opzione quando esegui il server di sviluppo locale per archiviare i log in un file, in modo che siano disponibili durante i riavvii del server. Devi specificare il percorso della directory e il nome di un file del database SQLite. Se il file non esiste già, viene creato un file del database SQLite con il nome specificato.

Ad esempio: --logs_path=/home/logs/boglogs.db

--max_module_instances=...

Il numero massimo di istanze di runtime che possono essere avviate per un determinato modulo. Il valore può essere un numero intero, nel qual caso tutti i moduli sono limitati al numero di istanze o un elenco di module:max_instances separati da virgole (valore predefinito: Nessuno). Ad esempio: default:5,backend:3

--mysql_host=MYSQL_HOST

Nome host di un server MySQL in esecuzione utilizzato per lo spazio di archiviazione Cloud SQL simulato (valore predefinito: localhost).

--mysql_port=MYSQL_PORT

Numero di porta di un server MySQL in esecuzione utilizzato per lo spazio di archiviazione Cloud SQL simulato (valore predefinito: 3306).

--mysql_user=MYSQL_USER

Nome utente da utilizzare per la connessione al server MySQL specificato in --mysql_host e --mysql_port o --mysql_socket (valore predefinito: ).

--mysql_password=MYSQL_PASSWORD

Password da utilizzare per la connessione al server MySQL specificato in --mysql_host e --mysql_port o --mysql_socket (valore predefinito: ).

--mysql_socket=MYSQL_SOCKET

Percorso di un file socket Unix da utilizzare per la connessione a un server MySQL in esecuzione utilizzato per lo spazio di archiviazione Cloud SQL simulato (valore predefinito: Nessuno).

--port=...

Il numero di porta da utilizzare per il server. Il valore predefinito è 8080. Se vengono avviati più server, ad esempio per i servizi, verranno assegnate porte successive, ad esempio 8081, 8082.

--require_indexes=yes|no

Disattiva la generazione automatica delle voci nel file index.yaml. Invece, quando l'applicazione esegue una query che richiede che l'indice sia definito nel file e la definizione dell'indice non viene trovata, viene generata un'eccezione, simile a quanto accadrebbe durante l'esecuzione su App Engine (valore predefinito: no).

--runtime=...

Specifica i runtime predefiniti che vuoi utilizzare. Per l'elenco dei runtime supportati, consulta il programma di supporto del runtime.

--running_datastore_emulator_host=...

Sostituisce la variabile di ambiente DATASTORE_EMULATOR_HOST, ovvero l'hostname:port di un emulatore Cloud Datastore in esecuzione a cui dev_appserver può connettersi (valore predefinito: Nessuno).

--search_indexes_path=...

Percorso di un file utilizzato per archiviare gli indici di ricerca (se non impostato, il valore predefinito è un file in --storage_path) (valore predefinito:Nessuno).

--skip_sdk_update_check=...

Salta il controllo degli aggiornamenti dell'SDK (se false, utilizza .appcfg_nag per decidere) (valore predefinito: False).

--show_mail_body=...

Logga i contenuti delle email inviate utilizzando l'API Mail (valore predefinito: False).

--smtp_allow_tls...

Consenti l'utilizzo di TLS quando il server SMTP annuncia il supporto di TLS (ignorato se non è impostato --smtp_host) (valore predefinito: True).

--smtp_host=...

Il nome host del server SMTP da utilizzare per l'invio dei messaggi email.

--smtp_port=...

Il numero di porta del server SMTP da utilizzare per l'invio di messaggi email.

--smtp_user=...

Il nome utente da utilizzare con il server SMTP per l'invio di messaggi email.

--smtp_password=...

La password da utilizzare con il server SMTP per l'invio di messaggi email.

--storage_path=...

Percorso in cui verranno archiviati tutti i file locali, ad esempio i file e i log di Datastore, Blobstore e Cloud Storage, a meno che non vengano sostituiti da --datastore_path, --blobstore_path o --logs_path.

--support_datastore_emulator=yes|no

Utilizza l'emulatore Cloud Datastore (beta) per l'emulazione del datastore locale.

--ssl_certificate_path=...

Percorso del certificato SSL. Se utilizzi questa opzione, devi fornire anche --ssl_certificate_key_path (valore predefinito: Nessuno).

--ssl_certificate_key_path=...

Percorso della chiave privata SSL corrispondente. Se utilizzi questa opzione, devi fornire anche --ssl_certificate_path (valore predefinito: Nessuno).

--threadsafe_override=...

Sostituisci la configurazione thread-safe dell'applicazione. Il valore può essere un valore booleano, nel qual caso verrà sostituita l'impostazione threadsafe di tutti i moduli oppure un elenco separato da virgola di module:threadsafe_override (valore predefinito: None).

Ad esempio: default:False,backend:True

--use_mtime_file_watcher=...

Utilizza il polling mtime per rilevare le modifiche al codice sorgente. È utile se modifichi il codice da una macchina remota utilizzando un sistema di file distribuito (valore predefinito: False).

--watcher_ignore_re=...

Stringa regex per specificare i file da ignorare dal filewatcher. (valore predefinito: Nessuno)

Opzioni di comando specifiche del runtime Python:

--python_startup_script
Lo script da eseguire all'avvio di nuove istanze di runtime Python (utile per strumenti come i debugger) (valore predefinito: None).
--python_startup_args
Gli argomenti resi disponibili allo script specificato in python_startup_script (valore predefinito: None).
--python27_executable_path=...
Il percorso dell'eseguibile python27 per le istanze di runtime python27 (valore predefinito: None).
--python_virtualenv_path
Il percorso della directory utilizzata per configurare un ambiente virtuale Python 3 per l'ambiente di esecuzione devappserver locale per le applicazioni Python 3. Se il percorso non esiste, la directory viene creata, ma non verrà ripulita al termine dell'esecuzione di devappserver, consentendo la memorizzazione nella cache tra le invocazioni. Se non è definita, verrà utilizzata una directory temporanea che verrà ripulita al termine dell'esecuzione.
--runtime_python_path=...
Il percorso del file binario Python. Per eseguire un'app Python su dev_appserver, specifica questo flag.