Opzioni del server di sviluppo locale

Il server di sviluppo locale (dev_appserver.py) fa parte dei componenti App Engine di gcloud CLI. 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 unitari e di integrazione, anziché fare affidamento su dev_appserver, il server di sviluppo locale fornito con Google Cloud SDK.

Per ulteriori informazioni sui test locali, consulta la sezione Utilizzo del 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 in cui 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 comando seguente:

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 (impostazione predefinita: localhost).
--admin_port=ADMIN_PORT
Porta a cui deve essere associata la console di amministrazione del server di sviluppo locale (impostazione predefinita: 8000).
--addn_host=ADDN_HOST
Questo argomento consente di inserire nella lista consentita valori di intestazione host HTTP aggiuntivi, in modo che il server possa essere reso accessibile tramite 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 livello. Ad esempio, **.example.com consente host.example.com e sub.host.example.com, ma non example.com. (predefinito: [])
--allow_skipped_files=...
Rende i file specificati nei gestori app.yaml skip_files o static leggibili dall'applicazione (impostazione predefinita: False).
-A APP_ID, --application=...
Imposta l'applicazione, ignorando il valore dell'applicazione dal file app.yaml (impostazione predefinita: 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 associato al account di servizio (formato .pem). Deve essere impostato se appidentity_email_address è impostato (valore predefinito: Nessuno).
--api_host=API_HOST
Nome host a cui deve essere associato il server API (impostazione predefinita: localhost).
--api_port=API_PORT
Porta a cui deve essere associato il server per le chiamate API (impostazione predefinita: 0).
--auth_domain=...
Nome del dominio di autorizzazione da utilizzare (impostazione predefinita: gmail.com).
--auto_id_policy=...
Deprecato. Come l'archivio dati locale assegna gli ID automatici. Le opzioni sono sequential o scattered (impostazione predefinita: scattered).
--automatic_restart=...
Riavvia automaticamente le istanze quando vengono modificati i file pertinenti al loro modulo (impostazione predefinita: True).
--blobstore_path=...
Percorso della directory utilizzata per archiviare i contenuti dei blob (se non impostato, il valore predefinito è una sottodirectory di --storage_path) (valore predefinito: None).
--clear_datastore=yes|no
Cancella i file di dati e della cronologia del datastore prima di avviare il server web (impostazione predefinita: no).
--clear_search_indexes...
Cancella gli indici di ricerca (impostazione predefinita: False).
--custom_entrypoint=...

Specifica un punto di ingresso per i moduli runtime personalizzati. Questa operazione è necessaria 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 del datastore deve essere visualizzata nelle query globali (impostazione predefinita: ora).

--datastore_emulator_cmd=...

Il percorso di uno script che richiama l'emulatore Cloud Datastore. Se lasciato vuoto, dev_appserver tenterà di trovare l'emulatore Datastore in Google Cloud SDK (impostazione predefinita: 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 datastore locale. Il server crea questo file se non esiste.

--default_gcs_bucket_name=...

Nome del bucket Cloud Storage predefinito (impostazione predefinita: Nessuno).

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

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

--enable_host_checking=yes|no

Determina se applicare il controllo host per i moduli dell'applicazione, il server API e il server amministratore.HTTP Il controllo dell'host protegge dagli attacchi DNS rebinding. Disattivalo solo dopo aver compreso le implicazioni per la sicurezza (impostazione predefinita: True).

--enable_console=yes|no

Attiva la console interattiva nella visualizzazione amministratore (impostazione predefinita: False).

--enable_sendmail=yes|no

Utilizza l'installazione di Sendmail del computer locale per l'invio di messaggi email.

--enable_task_running=yes|no

Consente al server di sviluppo di eseguire attività push (impostazione predefinita: 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 è nel formato 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 è in ascolto il server API gRPC (impostazione predefinita: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 indirizzo di 0.0.0.0 consente l'accesso sia a localhost sia tramite IP o nome host (valore predefinito: localhost).

--log_level=...

Il livello di logging più basso in cui i messaggi di logging verranno scritti nella console; verranno restituiti 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 dopo i riavvii del server. Devi specificare il percorso e il nome della directory di un file di database SQLite. Se il file non esiste già, viene creato un file di 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 a un elenco separato da virgole di module:max_instances (impostazione predefinita: Nessuno). Ad esempio: default:5,backend:3

--mysql_host=MYSQL_HOST

Nome host di un server MySQL in esecuzione utilizzato per l'archiviazione Cloud SQL simulata (impostazione predefinita: localhost).

--mysql_port=MYSQL_PORT

Numero di porta di un server MySQL in esecuzione utilizzato per l'archiviazione Cloud SQL simulata (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 (impostazione predefinita: ).

--mysql_password=MYSQL_PASSWORD

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

--mysql_socket=MYSQL_SOCKET

Percorso di un file socket Unix da utilizzare per la connessione a un server MySQL in esecuzione utilizzato per l'archiviazione Cloud SQL simulata (impostazione predefinita: None).

--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 di voci nel file index.yaml. Al contrario, quando l'applicazione esegue una query che richiede che il suo indice sia definito nel file e la definizione dell'indice non viene trovata, viene generata un'eccezione, in modo simile a quanto accadrebbe durante l'esecuzione su App Engine (impostazione predefinita: no).

--runtime=...

Specifica i runtime predefiniti che vuoi utilizzare. Per l'elenco dei runtime supportati, consulta la pianificazione del supporto dei runtime.

--running_datastore_emulator_host=...

Esegue l'override della variabile di ambiente DATASTORE_EMULATOR_HOST, il che significa che l'hostname:port di un emulatore Cloud Datastore in esecuzione a cui dev_appserver può connettersi (impostazione predefinita: None).

--search_indexes_path=...

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

--skip_sdk_update_check=...

Ignora il controllo degli aggiornamenti dell'SDK (se false, utilizza .appcfg_nag per decidere) (impostazione predefinita: False).

--show_mail_body=...

Registra i contenuti delle email inviate utilizzando l'API Mail (impostazione predefinita: False).

--smtp_allow_tls...

Consente l'utilizzo di TLS quando il server SMTP annuncia il supporto di TLS (ignorato se --smtp_host non è impostato) (impostazione predefinita: 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 dei 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, come Datastore, Blobstore, i file e i log di Cloud Storage, a meno che non venga sostituito da --datastore_path, --blobstore_path o --logs_path.

--support_datastore_emulator=yes|no

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

--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=...

Esegui l'override della configurazione thread-safe dell'applicazione. Il valore può essere un valore booleano, nel qual caso l'impostazione thread-safe di tutti i moduli verrà ignorata, o un elenco separato da virgole di module:threadsafe_override (impostazione predefinita: Nessuno).

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 file system distribuito (impostazione predefinita: False).

--watcher_ignore_re=...

Stringa regex per specificare i file da ignorare da 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) (impostazione predefinita: None).
--python_startup_args
Gli argomenti resi disponibili allo script specificato in python_startup_script (valore predefinito: nessuno).
--python27_executable_path=...
Il percorso dell'eseguibile python27 per le istanze di runtime python27 (impostazione predefinita: None).
--python_virtualenv_path
Il percorso della directory utilizzata per configurare un ambiente virtuale Python 3 per l'ambiente di esecuzione locale di devappserver per le applicazioni Python 3. Se il percorso non esiste, la directory viene creata, ma non verrà pulita al termine dell'esecuzione di devappserver, consentendo la memorizzazione nella cache tra le invocazioni. Se non è definita, verrà utilizzata una directory temporanea e pulita al termine dell'esecuzione.
--runtime_python_path=...
Il percorso del tuo binario Python. Per eseguire un'app Python su dev_appserver, specifica questo flag.