Google Cloud CLI incluye un servidor de desarrollo local (dev_appserver.py). Puedes usar el servidor de desarrollo local para simular que se ejecuta tu aplicación de App Engine en producción y acceder a los servicios heredados en paquetes de App Engine. El entorno simulado aplica algunas restricciones de zonas de pruebas, como importaciones de módulos del lenguaje de ejecución y funciones restringidas del sistema; pero no otras, como tiempos de espera de solicitud o cuotas.
El servidor de desarrollo local simula los servicios que proporcionan las bibliotecas en el SDK de App Engine, incluidos Datastore, Memcache y lista de tareas en cola, cuando realizas estas tareas de forma local. Cuando tu aplicación se ejecuta en el servidor de desarrollo, puedes hacer llamadas remotas a la API para la infraestructura de producción mediante el uso de los extremos HTTP de las APIs de Google.
Configura el servidor de desarrollo local
Para ejecutar la herramienta del servidor de desarrollo local, debes configurar lo siguiente:
- Verifica que hayas instalado un intérprete de Python 3 que sea compatible con la versión de Python que requiere gcloud CLI.
Verifica que instalaste el componente de Google Cloud CLI que incluye la extensión de App Engine para Python 3 (
app-engine-python):gcloud components listSi el componente
app-engine-pythonno está instalado, ejecuta el siguiente comando:gcloud components install app-engine-pythonUbica la ruta de instalación del SDK de Google Cloud mediante la ejecución del siguiente comando:
gcloud infoEl comando muestra el directorio raíz en el que instalaste el SDK de Google Cloud, por ejemplo:
Installation Root: [/Users/myname/google-cloud-sdk]Ubica la herramienta
dev_appserver.pyen la carpeta/bin/en la que instalaste Google Cloud CLI, por ejemplo:CLOUD_SDK_ROOT/bin/dev_appserver.pyAnota la ruta de acceso a
dev_appserver.pypara más adelante.
Ejecuta el servidor de desarrollo local
Después de configurar el servidor de desarrollo local y crear el archivo de configuración app.yaml para tu app, puedes usar el comando dev_appserver.py para ejecutar tu aplicación de manera local.
Para iniciar el servidor de desarrollo local, sigue estos pasos:
-
En el directorio que contiene el archivo de configuración
app.yaml, ejecuta el comandodev_appserver.py.dev_appserver.py
Especifica la ruta del directorio a tu app, por ejemplo:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py PATH_TO_YOUR_APPComo alternativa, puedes especificar el archivo de configuración de un servicio específico, como en el ejemplo siguiente:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlPara cambiar el puerto, debes incluir la opción
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 PATH_TO_YOUR_APPgoapp serve
El comando
goapp servese incluye con el SDK de App Engine original para Go y une la herramienta subyacentedev_appserver.pyde Python. Para iniciar el servidor de desarrollo local, debes ejecutar lo siguiente:goapp serve - El servidor de desarrollo local ahora ejecuta y recibe solicitudes. Puedes visitar http://localhost:8080/ en tu navegador web para ver la aplicación en acción.
Si especificaste un puerto personalizado con la opción
--port, recuerda abrir el navegador en ese puerto.
Si deseas detener el servidor local desde la línea de comandos, presiona las siguientes teclas:
- En macOS o Linux: Control+C
- En Windows: Control+Break
Especifica los IDs de aplicación
Si deseas acceder a tu ID de app en el servidor local, por ejemplo, para falsificar una dirección de correo electrónico, usa la función appengine.AppID.
Si deseas obtener el nombre de host de la app en ejecución, usa la función appengine.DefaultVersionHostname.
Detecta el entorno de ejecución de la aplicación
Si deseas determinar si tu código se ejecuta en producción o en el servidor de desarrollo local, puedes llamar al método IsDevAppServer(). Cuando es true, tu código se ejecuta en el entorno de desarrollo local; de lo contrario, se ejecuta en producción.
Consulta GitHub para ver un ejemplo.
Usa el servicio del Datastore local
El servidor de desarrollo local simula el App Engine Datastore con un archivo local que persiste entre las invocaciones del servidor local.
Para obtener más información sobre los índices y index.yaml, consulta la página Índices de Datastore.
Explora el Datastore local
Si tu app escribió datos en Datastore local mediante el servidor de desarrollo local, puedes examinarlos desde Development Console de forma local.
Para explorar el Datastore local, sigue estos pasos:
Ingresa al Visualizador de Datastore desde Development Console de forma local. La URL es
http://localhost:8000/datastore.Observa el contenido de tu Datastore local.
Especifica la política de asignación de ID
Si necesitas App Engine de productividad, puedes configurar Datastore para que genere de los IDs de entidad forma automática.
Aunque las políticas de asignación de ID automática que usa el servidor de producción son difieren en su totalidad con las que usa el servidor de desarrollo, también puedes establecer la política de asignación de ID automática para el servidor local.
Para especificar la política de asignación de ID automática, usa la opción --auto_id_policy:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --auto_id_policy=sequential
En el ejemplo anterior, --auto_id_policy puede ser una de las siguientes opciones:
scattered(valor predeterminado): Los ID se asignan a partir de una secuencia no repetitiva de números enteros distribuidos de manera casi uniforme.sequential: Los IDs se asignan a partir de la secuencia de números enteros consecutivos.
Borra el Datastore local
Si deseas borrar el Datastore local de una aplicación, debes invocar el servidor de desarrollo local de la manera siguiente:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --clear_datastore=yes app.yaml
Cambia la ubicación del Datastore local
Si deseas cambiar la ubicación que se usa para el archivo de Datastore, usa la opción --datastore_path:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
Usa el servicio de correo electrónico
El servidor de desarrollo local puede enviar correos electrónicos para llamar al servicio de correo de App Engine mediante el servidor SMTP o una instalación local de Sendmail.
Usa SMTP
Para habilitar la asistencia de correo con un servidor SMTP, invoca dev_appserver.py de la manera siguiente:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
En el ejemplo anterior, debes configurar las opciones --smtp_host, --smtp_port, --smtp_user y --smtp_password con tus propios valores.
Usa Sendmail
Para habilitar la asistencia de correo con Sendmail, invoca dev_appserver.py de la manera siguiente:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
El servidor local usa el comando sendmail para enviar mensajes de correo electrónico con la configuración predeterminada de tu instalación.
Usa el servicio de recuperación de URLs
Cuando tu aplicación usa la API de recuperación de URL para realizar una solicitud HTTP, el servidor de desarrollo local realiza la solicitud directo desde tu computadora. El comportamiento de recuperación de URL en el servidor local puede diferir de la producción de App Engine si usas un servidor proxy para acceder a sitios web.
Usa el servicio de usuarios
App Engine proporciona un Servicio de usuarios para simplificar la autenticación y la autorización de tu aplicación. El servidor de desarrollo local simula el comportamiento de las Cuentas de Google con sus propias páginas de acceso y salida.
Mientras se ejecuta en el servidor de desarrollo local, las funciones LoginURL y LogoutURL muestran las URLs de /_ah/login y /_ah/logout en el servidor local.
Argumentos de la línea de comandos
Para conocer las opciones del comando del servidor de desarrollo local, consulta las opciones del servidor de desarrollo local.