Cómo actualizar a la versión más reciente del entorno flexible de App Engine

Esta página es para desarrolladores que usan el entorno flexible con la configuración vm:true en su appengine-web.xml y quieren instalar la última actualización, que requiere que hagas cambios en la configuración de tu aplicación.

El contenido de esta página no aplica a la actualización del entorno estándar de App Engine que se explica en Cómo migrar servicios desde el entorno estándar hasta el entorno flexible.

Cómo actualizar al entorno flexible

Para actualizar al entorno flexible desde el entorno de las VM administradas, sigue los siguientes pasos:

  1. Reemplaza el archivo appengine-web.xml con el archivo de configuración app.yaml. Para hacerlo, lee las pestañas de la sección Cómo convertir desde appengine-web.xml hacia app.yaml. Asegúrate de que contenga la siguiente configuración:
    runtime: java
    env: flex
  2. Revisa la lista de cambios rotundos para determinar si tu app.yaml requiere algún cambio adicional.
  3. Durante la actualización, considera realizar cambios para poder usar las características nuevas.
  4. Tras realizar los cambios necesarios, implementa la versión nueva de la aplicación en App Engine.

Tipos de máquinas de núcleo compartido

Los tipos de máquinas de núcleo compartido que tienen menos de 1 CPU virtual, no son compatibles con el entorno flexible de App Engine. Si usas máquinas de núcleo compartido, cuando pases a env:flex, deberás actualizar tus máquinas para que tengan, al menos, un núcleo. Otra alternativa es mover la aplicación al entorno estándar de App Engine.

Solicitudes de preparación

Las solicitudes /_ah/warmup no son compatibles con el entorno flexible de App Engine.

Para preparar la aplicación, implementa un controlador de verificación de estado que solo muestre el estado de apto una vez que la aplicación esté lista.

Por ejemplo, puedes crear una verificación de aptitud que muestre el estado de apto tras inicializar la caché, de modo que la aplicación no reciba tráfico antes de estar lista.

Problemas con páginas grandes

Si encuentras errores cuando entregas subpáginas JSP grandes que se incluyen a través de <jsp:include page="subpage.jsp">, actualiza el código a <%@ include file="subpage.jsp" %>.

Archivos estáticos

Si defines archivos estáticos en la sección de app.yaml, entonces se entregan de forma directa desde las instancias de App Engine, en lugar de entregarse desde otras infraestructuras de App Engine. La interfaz y el comportamiento son idénticos, pero se consume una pequeña cantidad de la CPU y otros recursos en las instancias de App Engine cuando se entrega un archivo.

Recursos ocultos

Los recursos subyacentes detrás de las implementaciones del entorno flexible (incluso las instancias de Cloud Load Balancing, de Compute Engine y los grupos de instancias administrados) están ocultos en Google Cloud Platform Console a fin de brindar una abstracción más completa de la aplicación de App Engine y sus instancias. Las instancias individuales se pueden ver y controlar en GCP Console en la Página de instancias.

Las instancias aún se pueden desbloquear y acceder a ellas a través de una conexión SSH con fines de depuración. En lugar de usar el comando gcloud compute instances, usa gcloud app instances. Además, puedes iniciar conexiones SSH desde la Página de instancias de GCP Console.

Cambios rotundos

La actualización al entorno flexible de App Engine requiere de algunos cambios en el código y en los archivos de configuración. En esta sección se incluyen bajas y cambios rotundos que debes abordar antes de implementar tu aplicación con la configuración env: flex.

Bibliotecas obsoletas

Las siguientes bibliotecas y sus servicios relacionados quedaron obsoletos el 15 de noviembre de 2016 y no son compatibles con el entorno flexible:

Cambios en app.yaml

Reemplaza la configuración obsoleta vm:true en tu archivo app.yaml con la configuración del entorno flexible env:flex.

Cambios de autenticación

Además, debes actualizar el archivo app.yaml para quitar o reemplazar los otros ajustes de configuración que hayan quedado obsoletos:

  • Controladores seguros
    La configuración secure en handlers quedó obsoleta para el entorno flexible de App Engine. Si necesitas redireccionamiento SSL, puedes actualizar el código de la aplicación y usar el encabezado X-Forwarded-Proto para redirigir el tráfico http. También puedes usar el encabezado de respuesta de HTTP con Seguridad de Transporte Estricta.
  • Controladores de acceso
    La configuración login en handlers quedó obsoleta para el entorno flexible de App Engine. Sigue las instrucciones para la migración del servicio de usuarios.

Cambios en las variables de entorno

Las variables de entorno que se mencionan a continuación se quitaron o se les modificó el nombre. Se agregó la variable de entorno de reemplazo a una lista para usar cuando esté disponible:

Variable de entorno obsoleta Variable de entorno nueva (si aplica)
APPENGINE_LOADBALANCER
APPENGINE_LOADBALANCER_IP
GAE_AFFINITY
GAE_APPENGINE_HOSTNAME
GAE_MINOR_VERSION
GAE_LONG_APP_ID GOOGLE_CLOUD_PROJECT
GAE_MODULE_INSTANCE GAE_INSTANCE
GAE_MODULE_NAME GAE_SERVICE
GAE_MODULE_VERSION GAE_VERSION
GAE_PARTITION
GAE_VM
HOSTNAME
MEMCACHE_ENV_DEBIAN_FRONTEND
MEMCACHE_ENV_PORT
MEMCACHE_NAME
MEMCACHE_PORT
MEMCACHE_PORT_11211_TCP
MEMCACHE_PORT_11211_TCP_ADDR
MEMCACHE_PORT_11211_TCP_PORT
MEMCACHE_PORT_11211_TCP_PROTO
MODULE_YAML_PATH
SERVER_SOFTWARE
USE_MVM_AGENT

Cambios en el encabezado de solicitud

Se cambiaron los siguientes encabezados de solicitud HTTP:

  • Estos se quitaron de todas las solicitudes:

    • X-GOOGLE-REAL-IP
    • X-APPENGINE-API-TICKET
    • X-APPENGINE-AUTH-DOMAIN
    • X-APPENGINE-DATACENTER
    • X-APPENGINE-DEFAULT-VERSION-HOSTNAME
    • X-APPENGINE-HTTPS
    • X-APPENGINE-REQUEST-ID-HASH
    • X-APPENGINE-REQUEST-LOG-ID
    • X-APPENGINE-USER-IS-ADMIN
    • X-APPENGINE-USER-IP
  • Los siguientes ya se encuentran en todas las solicitudes:

    • X-FORWARDED-FOR
    • X-CLOUD-TRACE-CONTEXT
    • X-FORWARDED-PROTO

Servicio de Memcache

Por el momento, el servicio de Memcache no está disponible para el entorno flexible de App Engine. Una versión Alfa del servicio de Memcache estará disponible en breve. Si deseas recibir una notificación cuando el servicio esté disponible, llena este formulario de acceso anticipado.

Si necesitas acceder a un servicio de Memcache de inmediato, puedes usar el servicio de Memcache de terceros de Redis Labs. Para acceder a este servicio, consulta Cómo almacenar datos de aplicación en caché con Memcache de Redis Labs.

También puedes usar Redis Cloud de Redis Labs, un servicio administrado en su totalidad por terceros. Para acceder a este servicio, consulta Cómo almacenar datos de aplicación en caché con Redis de Redis Labs.

Listas de tareas en cola

Para usar el servicio push de la lista de tareas en cola fuera del entorno estándar de la primera generación, puedes usar la API Beta de Cloud Tasks.

En muchos casos en que puedes usar listas de extracción, como tareas o mensajes en cola que los trabajos por separado extraerán y procesarán, Cloud Pub/Sub es una buena alternativa, ya que ofrece garantías de entrega y funcionalidades similares.

Cambios de enrutamiento de la URL

Ya no puedes enrutar tráfico a instancias específicas para aplicaciones que se ejecutan en el entorno flexible. Por ejemplo, no puedes dirigir solicitudes a la instancia instanceID:

https://instanceID-dot-versionID-dot-serviceID-dot-app-id.appspot.com

Características nuevas para tener en cuenta cuando se realiza la actualización

Toma nota de las siguientes mejoras que puedes aprovechar cuando actualices tu aplicación:

Cambios de precios

La actualización del entorno flexible de App Engine tiene un nuevo modelo de precios. Los clientes que usan vm:true en la actualidad recibirán un año de precios base de Compute Engine. Para ver los precios nuevos del entorno flexible, consulta Costos de las instancias de entorno flexible.

Sugerencia: No se admiten los límites de gastos en el entorno flexible. Recomendamos crear presupuestos y configurar alertas.

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

Enviar comentarios sobre...

Entorno flexible de App Engine para documentos de Java