Opciones del servidor de desarrollo local

El servidor de desarrollo local (dev_appserver.py) forma parte de los componentes de App Engine de la CLI de gcloud. En este tema se proporciona información avanzada sobre el uso de dev_appserver.py.

Te recomendamos que uses herramientas estándar de Python, como virtualenv para crear entornos aislados y pytest para ejecutar pruebas unitarias y de integración, en lugar de depender de dev_appserver, el servidor de desarrollo local que se proporciona con el SDK de Google Cloud.

Consulta Utilizar el servidor de desarrollo local para obtener más información sobre las pruebas locales.

Configurar la herramienta de servidor de desarrollo local

Un comando dev_appserver.py de ejemplo podría tener el siguiente aspecto:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py OPTION yaml_path FILES

Haz los cambios siguientes:

  • CLOUD_SDK_ROOT con la ruta al directorio raíz donde has instalado Google Cloud CLI. El directorio predeterminado es ./google-cloud-sdk/.
  • OPTION con una marca compatible con el servidor de desarrollo local.
  • FILES especifica uno o varios archivos app.yaml, uno por servicio, para el argumento posicional yaml_path.

Para ver una lista completa de opciones, ejecuta el siguiente comando:

python3 CLOUD_SDK_ROOT/bin/dev_appserver.py -h

Opciones comunes

Las opciones más habituales son las siguientes:

--admin_host=ADMIN_HOST
Nombre de host al que debe enlazarse la consola de administración del servidor de desarrollo local (valor predeterminado: localhost).
--admin_port=ADMIN_PORT
Puerto al que debe enlazarse la consola de administración del servidor de desarrollo local (valor predeterminado: 8000).
--addn_host=ADDN_HOST
Este argumento te permite incluir en una lista de permitidos valores adicionales del encabezado Host de HTTP, de modo que se pueda acceder al servidor a través de un proxy sin tener que inhabilitar la comprobación de hosts (consulta --enable_host_checking). Los hosts adicionales que empiecen por *. permiten todos los subdominios. Por ejemplo, *.example.org permite host.example.org, pero no sub.host.example.org ni example.org. Los hosts que empiezan por **. permiten subdominios de cualquier profundidad. Por ejemplo, **.example.com permite host.example.com y sub.host.example.com, pero no example.com. predeterminado: [])
--allow_skipped_files=...
Hace que la aplicación pueda leer los archivos especificados en app.yaml skip_files o static (valor predeterminado: False).
-A APP_ID, --application=...
Define la aplicación, lo que anula el valor de la aplicación del archivo app.yaml (valor predeterminado: None).
--appidentity_email_address=...
Dirección de correo asociada a una cuenta de servicio que tiene una clave descargable. Puede ser None si no hay ninguna identidad de aplicación local (valor predeterminado: None).
--appidentity_private_key_path=...
Ruta al archivo de clave privada asociado a la cuenta de servicio (formato .pem). Se debe definir si se ha definido appidentity_email_address (valor predeterminado: None).
--api_host=API_HOST
Nombre de host al que debe enlazarse el servidor de la API (valor predeterminado: localhost).
--api_port=API_PORT
Puerto al que debe enlazarse el servidor de las llamadas a la API (valor predeterminado: 0).
--auth_domain=...
Nombre del dominio de autorización que se va a usar (valor predeterminado: gmail.com).
--auto_id_policy=...
Obsoleta. Cómo asigna IDs automáticos el almacén de datos local. Las opciones son sequential o scattered (valor predeterminado: scattered).
--automatic_restart=...
Reinicia las instancias automáticamente cuando se cambien los archivos relevantes para su módulo (valor predeterminado: True).
--blobstore_path=...
Ruta del directorio que se usa para almacenar el contenido de los blobs (si no se define, se usa un subdirectorio de --storage_path) (valor predeterminado: None).
--clear_datastore=yes|no
Borra los datos del almacén de datos y los archivos del historial antes de iniciar el servidor web (valor predeterminado: no).
--clear_search_indexes...
Borra los índices de búsqueda (valor predeterminado: False).
--custom_entrypoint=...

Especifica un punto de entrada para los módulos de tiempo de ejecución personalizados. Es obligatorio cuando se incluyen estos módulos. Incluye {port} en la cadena (sin comillas) para transferir el número de puerto como argumento (el valor predeterminado es ). Por ejemplo:

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

Política que se aplica para decidir si una escritura de almacén de datos debe aparecer en las consultas globales (valor predeterminado: tiempo).

--datastore_emulator_cmd=...

Ruta a una secuencia de comandos que invoca el emulador de Cloud Datastore. Si se deja vacío, dev_appserver intentará encontrar el emulador de Datastore en el SDK de Google Cloud (valor predeterminado: None).

--datastore_emulator_port=...

El número de puerto en el que dev_appserver debe iniciar el emulador de Cloud Datastore (el valor predeterminado es 0).

--datastore_path=...

La ruta que se debe utilizar para el archivo de datos del almacén de datos local. El servidor crea este archivo si no existe.

--default_gcs_bucket_name=...

Nombre del segmento de Cloud Storage predeterminado (valor predeterminado: None).

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

El nivel de registro por debajo del cual no se mostrarán en la consola los mensajes de registro generados por el servidor de desarrollo. Esta marca es más útil para diagnosticar problemas en dev_appserver.py que en el código de la aplicación. El valor predeterminado es "info".

--enable_host_checking=yes|no

Determina si se debe aplicar la comprobación de host HTTP para los módulos de aplicaciones, el servidor de la API y el servidor de administración. La comprobación de hosts protege contra ataques de revinculación de DNS. Solo se debe inhabilitar después de comprender las implicaciones de seguridad (valor predeterminado: True).

--enable_console=yes|no

Habilita la consola interactiva en la vista de administrador (valor predeterminado: False).

--enable_sendmail=yes|no

Usa la instalación de Sendmail del ordenador local para enviar mensajes de correo.

--enable_task_running=yes|no

Permite que el servidor de desarrollo ejecute tareas push (valor predeterminado: yes). Si especificas no, el servidor no ejecutará tareas push.

--env_var=...

Variable de entorno definida por el usuario para el proceso de tiempo de ejecución local. Cada env_var tiene el formato key=value y puedes definir varias variables de entorno. Además de env_variables en app.yaml, esta marca permite definir variables de entorno adicionales para los procesos locales.

Por ejemplo:--env_var KEY_1=val1 --env_var KEY_2=val2

--grpc_api_port...

Puerto en el que escucha el servidor de la API gRPC (valor predeterminado:0).

--help

Imprime un mensaje de ayuda y finaliza.

--host=...

La dirección de host que se debe utilizar para el servidor. Es posible que tengas que configurar esta opción para poder acceder al servidor de desarrollo desde otro ordenador de tu red. La dirección 0.0.0.0 permite el acceso tanto a localhost como a la IP o al nombre de host (valor predeterminado: localhost).

--log_level=...

El nivel de registro más bajo en el que se escribirán los mensajes de registro en la consola. Se mostrarán los mensajes que tengan el nivel de registro especificado o uno superior. Los valores posibles son debug, info, warning, error y critical.

--logs_path=...

De forma predeterminada, los registros del servidor de desarrollo local se almacenan solo en la memoria. Especifica esta opción cuando ejecutes el servidor de desarrollo local para almacenar los registros en un archivo, lo que hace que los registros estén disponibles en los reinicios del servidor. Debe especificar la ruta del directorio y el nombre de un archivo de base de datos SQLite. Se crea un archivo de base de datos SQLite con el nombre especificado si el archivo no existe.

Por ejemplo: --logs_path=/home/logs/boglogs.db

--max_module_instances=...

El número máximo de instancias de tiempo de ejecución que se pueden iniciar para un módulo concreto. El valor puede ser un número entero, en cuyo caso todos los módulos se limitan al número de instancias, o una lista de module:max_instances separada por comas (valor predeterminado: None). Por ejemplo: default:5,backend:3

--mysql_host=MYSQL_HOST

Nombre de host de un servidor MySQL en ejecución que se usa para el almacenamiento simulado de Cloud SQL (valor predeterminado: localhost).

--mysql_port=MYSQL_PORT

Número de puerto de un servidor MySQL en ejecución que se usa para el almacenamiento simulado de Cloud SQL (valor predeterminado: 3306).

--mysql_user=MYSQL_USER

Nombre de usuario que se usará al conectarse al servidor MySQL especificado en --mysql_host y --mysql_port o --mysql_socket (valor predeterminado: ).

--mysql_password=MYSQL_PASSWORD

Contraseña que se usará al conectarse al servidor MySQL especificado en --mysql_host y --mysql_port o --mysql_socket (valor predeterminado: ).

--mysql_socket=MYSQL_SOCKET

Ruta a un archivo de socket Unix que se usará al conectarse a un servidor MySQL en ejecución que se usa para el almacenamiento simulado de Cloud SQL (valor predeterminado: None).

--port=...

El número de puerto que se debe utilizar para el servidor. El valor predeterminado es 8080 (ADMITE VALORES NULL). Si se inician varios servidores, como los de servicios, se les asignarán puertos posteriores, como 8081 y 8082.

--require_indexes=yes|no

Inhabilita la generación automática de entradas en el archivo index.yaml. En su lugar, cuando la aplicación haga una consulta que requiera que su índice se defina en el archivo y no se encuentre la definición del índice, se generará una excepción, de forma similar a lo que ocurriría al ejecutar la aplicación en App Engine (valor predeterminado: no).

--runtime=...

Especifica los tiempos de ejecución predeterminados que quieras usar. Para ver la lista de tiempos de ejecución admitidos, consulta el calendario de asistencia de tiempos de ejecución.

--running_datastore_emulator_host=...

Anula la variable de entorno DATASTORE_EMULATOR_HOST, lo que significa que hostname:port de un emulador de Cloud Datastore en ejecución al que dev_appserver se puede conectar (valor predeterminado: None).

--search_indexes_path=...

Ruta a un archivo que se usa para almacenar índices de búsqueda (de forma predeterminada, se usa un archivo de --storage_path si no se define) (valor predeterminado:None).

--skip_sdk_update_check=...

Omite la comprobación de actualizaciones del SDK (si es false, usa .appcfg_nag para decidir) (valor predeterminado: False).

--show_mail_body=...

Registra el contenido de los correos enviados mediante la API Mail (valor predeterminado: False).

--smtp_allow_tls...

Permite usar TLS cuando el servidor SMTP anuncia la compatibilidad con TLS (se ignora si no se define --smtp_host). El valor predeterminado es True.

--smtp_host=...

El nombre de host del servidor SMTP que se debe utilizar para enviar mensajes de correo electrónico.

--smtp_port=...

El número de puerto del servidor SMTP que se debe utilizar para enviar mensajes de correo electrónico.

--smtp_user=...

El nombre de usuario que se debe utilizar con el servidor SMTP para enviar mensajes de correo electrónico.

--smtp_password=...

La contraseña que se debe utilizar con el servidor SMTP para enviar mensajes de correo electrónico.

--storage_path=...

Ruta en la que se almacenarán todos los archivos locales, como Datastore, Blobstore, los archivos de Cloud Storage y los registros, a menos que se anule con --datastore_path, --blobstore_path o --logs_path.

--support_datastore_emulator=yes|no

Usa el emulador de Cloud Datastore (beta) para emular el almacén de datos local.

--ssl_certificate_path=...

Ruta al certificado SSL. También debe proporcionar --ssl_certificate_key_path si usa esta opción (valor predeterminado: None).

--ssl_certificate_key_path=...

Ruta a la clave privada SSL correspondiente. También debe proporcionar --ssl_certificate_path si usa esta opción (valor predeterminado: None).

--threadsafe_override=...

Anula la configuración de seguridad de subprocesos de la aplicación. El valor puede ser un valor booleano, en cuyo caso se anulará la configuración de seguridad de subprocesos de todos los módulos, o una lista de module:threadsafe_override separada por comas (valor predeterminado: None).

Por ejemplo: default:False,backend:True

--use_mtime_file_watcher=...

Usa el sondeo de mtime para detectar cambios en el código fuente. Es útil si modificas el código desde una máquina remota mediante un sistema de archivos distribuido (valor predeterminado: False).

--watcher_ignore_re=...

Cadena de expresión regular para especificar los archivos que debe ignorar el observador de archivos. (predeterminado: Ninguno)

Opciones de comandos específicas del entorno de ejecución de Python:

--python_startup_script
Secuencia de comandos que se ejecuta al iniciar nuevas instancias del entorno de ejecución de Python (útil para herramientas como depuradores). El valor predeterminado es None.
--python_startup_args
Los argumentos disponibles para la secuencia de comandos especificada en python_startup_script (valor predeterminado: None).
--python27_executable_path=...
Ruta al ejecutable de Python 2.7 para las instancias del tiempo de ejecución de Python 2.7 (valor predeterminado: None).
--python_virtualenv_path
Ruta al directorio que se usa para configurar un entorno virtual de Python 3 para el entorno de ejecución de devappserver local de aplicaciones de Python 3. Si la ruta no existe, se crea el directorio, pero no se limpia al final de la ejecución de devappserver, lo que permite almacenar en caché entre invocaciones. Si no se define, se usará un directorio temporal y se limpiará al final de la ejecución.
--runtime_python_path=...
La ruta al archivo binario de Python. Para ejecutar una aplicación de Python en dev_appserver, especifica esta marca.