Usa el servidor de desarrollo local de Java 8

El SDK de Cloud para Java incluye un servidor de desarrollo local que permite probar la aplicación en tu computadora. El servidor de desarrollo local simula el entorno de ejecución de Java de App Engine y todos sus servicios, incluido Datastore.

Ejecuta el servidor web de desarrollo

Para obtener información sobre cómo configurar las propiedades del sistema y las variables del entorno de la aplicación, consulta Cómo se manejan las solicitudes.

También puedes ejecutar el servidor web de desarrollo desde el símbolo del sistema. El comando para ejecutar se encuentra en el directorio google-cloud-sdk/bin/ del SDK.

Sintaxis del comando para Windows:

google-cloud-sdk\bin\java_dev_appserver.cmd [options] [WAR_DIRECTORY_LOCATION]

Sintaxis del comando para Linux o macOS:

google-cloud-sdk/bin/java_dev_appserver.sh [options] [WAR_DIRECTORY_LOCATION]

El comando adopta como argumento la ubicación del directorio de WAR de tu aplicación.

Detén el servidor de desarrollo

Para detener el servidor web, presiona Ctrl-C.

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 verificar el valor del método SystemProperty.environment.value(). Por ejemplo:

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
   // Production
 } else {
  // Local development server
  // which is: SystemProperty.Environment.Value.Development
}

Usa el emulador del almacén de datos local

El servidor web de desarrollo simula un almacén de datos mediante un almacén local respaldado por archivos en la computadora. El nombre del almacén de datos es local_db.bin y se crea en el directorio WEB-INF /appengine-generated/ del directorio de WAR de tu aplicación. No se sube con tu aplicación.

Este almacén permanece entre cada invocación del servidor web, de modo que los datos que almacenes sigan estando disponibles la próxima vez que ejecutes ese servidor. Para borrar el contenido del almacén de datos, apaga el servidor y elimina este archivo.

Como se describe en Configuración de índice del almacén de datos, el servidor de desarrollo puede generar la configuración que necesite tu aplicación para los índices del almacén de datos, que están determinados por las consultas que realiza mientras ejecutas las pruebas. Con esto, se genera un archivo denominado datastore-indexes-auto.xml en el directorio WEB-INF/appengine-generated/ de WAR. Para inhabilitar la configuración automática de índices, crea o edita el archivo datastore-indexes.xml en el directorio WEB-INF/ mediante el atributo autoGenerate="false" para el elemento <datastore-indexes>. Para obtener más información, consulta Configuración de índice del almacén de datos.

Navega por el almacén de datos en el servidor de desarrollo

Para navegar por el almacén de datos local con el servidor web de desarrollo:

  1. Inicia el servidor de desarrollo como se describió previamente.
  2. Dirígete a Development Console.
  3. Haz clic en Lector de Datastore en el panel de navegación izquierdo para ver el contenido del almacén de datos local.

El modelo de coherencia de Cloud Datastore

En el almacén de datos local, el valor predeterminado del porcentaje de escrituras que no se ven de inmediato en las consultas globales está establecido en el 10%.

Para ajustar este nivel de coherencia, configura la propiedad datastore.default_high_rep_job_policy_unapplied_job_pct del sistema con un valor correspondiente al volumen de coherencia eventual que quieres que vea la aplicación.

-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20

Si configuras esta propiedad mediante el símbolo del sistema java_dev_appserver.sh, debes usar --jvm_flag=... para configurar la propiedad:

google_cloud_sdk/bin/java-dev_appserver.sh  --jvm_flag=-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20

El rango válido de datastore.default_high_rep_job_policy_unapplied_job_pct se encuentra entre 0 y 100. Ocurrirá un error si usas números fuera de este rango.

Si usas Maven, puedes pasar esta marca como argumento a appengine:devserver mediante jvmFlags:

<jvmFlags>
  <jvmFlag>-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20</jvmFlag>
</jvmFlags>

Especifica la política de asignación de ID automática

Puedes configurar cómo asigna el almacén de datos local los ID de entidades automáticos. En el servidor de desarrollo, se admiten las siguientes políticas de asignación automática de ID:

sequential
Los ID se asignan a partir de la secuencia de números enteros consecutivos.
scattered
Los ID se asignan a partir de una secuencia no repetitiva de números enteros distribuidos de manera casi uniforme.

La política predeterminada en el almacén de datos local es scattered.

Para especificar la política automática de ID, configura la propiedad datastore.auto_id_allocation_policy del sistema en sequential o scattered.

-Ddatastore.auto_id_allocation_policy=scattered

Si quieres configurar esta propiedad del sistema mediante un marcador transmitido a la macro dev_appserver, utiliza:

java_dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered

Simula cuentas de usuario

El servidor web de desarrollo simula Cuentas de Google con sus propias páginas de acceso y cierre de sesión. Mientras se ejecutan en el servidor web de desarrollo, los métodos que generan las URL de acceso y cierre de sesión muestran URL para /_ah/login y /_ah/logout en el servidor local.

La página de acceso del servidor de desarrollo incluye un formulario en el que puedes escribir una dirección de correo electrónico. Esta dirección es el usuario activo de la sesión.

Para que la aplicación crea que el usuario que accedió es un administrador, marca la casilla de verificación "Acceder como administrador" en el formulario.

Usa la recuperación de URL

Cuando tu aplicación utiliza la API de Recuperación de URL para hacer una solicitud HTTP, el servidor web de desarrollo realiza la solicitud directamente desde tu computadora. El comportamiento puede diferir de la ejecución de tu aplicación en App Engine si utilizas un servidor proxy para acceder a sitios web.

Development Console

El servidor web de desarrollo incluye una aplicación web de consola que puedes usar para navegar por el almacén de datos local.

Para acceder a la consola, visita la URL /_ah/admin en tu servidor: http://localhost:8080/_ah/admin

Argumentos de la línea de comandos

El comando del servidor de desarrollo es compatible con estos tipos de argumentos de línea de comandos:

--address=...

La dirección del host que se utilizará para el servidor. Es posible que debas configurar este parámetro para poder acceder al servidor de desarrollo desde otra computadora de la red. Una dirección de 0.0.0.0 permite tanto el acceso de localhost como el acceso de nombre de host. Valor predeterminado: localhost.

--default_gcs_bucket=...

Configura el nombre del depósito predeterminado de Google Cloud Storage.

--disable_update_check

Si lo haces, el servidor de desarrollo no se comunicará con App Engine para comprobar la disponibilidad de una versión nueva del SDK. De manera predeterminada, el servidor busca versiones nuevas al iniciarse y, luego, imprime un mensaje si hay una nueva versión disponible.

--generated_dir=...

Configura el directorio donde se crean los archivos generados.

--help

Imprime un mensaje útil y se cierra.

--jvm_flag=...

Transmite el marcador específico como un argumento de JVM. Se puede repetir para suministrar varios marcadores.

--port=...

El número de puerto que se utilizará para el servidor. El valor predeterminado es 8080.

--sdk_root=...

Una ruta de acceso al SDK de Cloud, si no es igual a la ubicación de la herramienta.

--server=...

El servidor utilizado para determinar la versión más reciente del SDK.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8