Migra servicios del entorno estándar al entorno flexible

El entorno de App Engine Flexible no proporciona las bibliotecas de API en el SDK de App Engine. Si decides migrar tu aplicación del entorno estándar de App Engine al entorno flexible, debes actualizar tu código para usar los servicios y las API que están disponibles en todos los entornos de Google Cloud Platform.

Consulta las secciones siguientes para obtener instrucciones sobre cómo migrar servicios y API específicos del entorno estándar al entorno flexible.

Diferencias entre el entorno estándar y el entorno flexible

Además de las diferencias clave que se describen aquí, hay diferencias menores que debes tener en cuenta cuando migras del entorno estándar al entorno flexible:

  • Las rutas de acceso con /_ah/ no están bloqueadas en el entorno flexible. Si tu aplicación en el entorno estándar usa rutas con /_ah/ para acceder a servicios específicos, consulta la sección correspondiente a continuación.

  • Los límites de gasto solo están disponibles en el entorno estándar de App Engine. En el entorno flexible, debes considerar crear presupuestos y configurar alarmas.

Identidad de la app

Si ejecutas tu aplicación en el entorno flexible, puedes obtener información sobre ella con una combinación de variables de entorno y el servicio de metadatos de Google Compute Engine:

Información de la aplicación Cómo acceder a ella
Aplicación/ID del proyecto Ya sea la variable de entorno GOOGLE_CLOUD_PROJECT o el recurso en el servidor de metadatos /project/project-id
Nombre de host predeterminado Método apps.get de la API de Administrador de App Engine
Nombre de la cuenta de servicio El recurso /instance/service-accounts en el servidor de metadatos
Token de acceso de OAuth 2.0 El recurso /instances/service-accounts en el servidor de metadatos. Consulta la documentación de autenticación con credenciales de la cuenta de servicio de Compute Engine

La funcionalidad siguiente no está directamente disponible:

  • No hay un depósito de Cloud Storage predeterminado para tu proyecto. Para usar un depósito en tu aplicación, puedes crear un depósito de Cloud Storage y usar el ID del proyecto como nombre del depósito. A continuación, puedes usar la variable de entorno GOOGLE_CLOUD_PROJECT en tu aplicación como nombre del depósito.
  • No puedes firmar los BLOB con la cuenta de servicio predeterminada. Puedes solucionar esto con la API de administración de identidades y accesos (IAM) de Google o proporcionando una clave privada de cuenta de servicio a tu aplicación cuando la implementes.
  • Del mismo modo, no hay una API incorporada para obtener certificados públicos a fin de verificar firmas. Sin embargo, los certificados públicos de cada cuenta de servicio están disponibles en https://www.googleapis.com/robot/v1/metadata/x509/{service account email}.

Subprocesos en segundo plano

Debido a que el entorno flexible no tiene limitaciones en la zona de pruebas, puedes crear subprocesos o procesos que estén fuera del entorno de solicitud. Por lo general, solo necesitas usar las herramientas de subprocesamiento o multiprocesamiento integradas del lenguaje.

Blobstore

Cloud Storage reemplazó en gran medida el uso del servicio de Blobstore en los entornos estándar y flexible. Usa las bibliotecas cliente de Google Cloud para almacenar y recuperar datos en Cloud Storage.

Para obtener más información, consulta la siguiente guía:

Capacidades

No hay ninguna función similar al servicio de capacidades disponible fuera del entorno estándar.

WebSockets

El entorno flexible de App Engine es compatible con websockets. Si deseas obtener más información, consulta las siguientes guías:

Cloud Datastore

Puedes acceder a Cloud Datastore desde cualquier lugar con la API de Cloud Datastore. Usa las bibliotecas cliente de Google Cloud para almacenar y recuperar datos de Cloud Datastore.

Los mismos datos de Cloud Datastore están disponibles sin importar si usas las bibliotecas de App Engine, las bibliotecas cliente de Google Cloud o si llamas directamente a la API.

Para obtener más información, consulta la siguiente guía:

Imágenes

El servicio de Imágenes no está disponible fuera del entorno estándar. Sin embargo, puedes entregar imágenes fácilmente directo desde tu aplicación o desde Cloud Storage.

Si necesitas procesar imágenes, puedes instalar y usar cualquier biblioteca de procesamiento de imágenes, como imaging.

El servicio de Imágenes también proporcionó una funcionalidad para evitar el envío de solicitudes dinámicas a tu aplicación controlando el cambio de tamaño de imagen con una URL de entrega. Si deseas una funcionalidad similar, puedes generar las imágenes redimensionadas por adelantado y subirlas a Cloud Storage para entregarlas. De forma alternativa, puedes usar un servicio de red de entrega de contenido (CDN) de terceros que ofrece cambio de tamaño de imagen.

Para ver más recursos, consulta las guías siguientes:

Logging

Logging funciona automáticamente en el entorno flexible y en el entorno estándar. Sin embargo, los registros se recopilan en un formato diferente. Los registros no se podrán conjuntar en paquetes por solicitudes y los registros de stdout y stderr se recopilarán por separado.

Si deseas tener más control sobre los registros de la aplicación y quieres disponer de la capacidad de agrupar registros y registrar metadatos adicionales, puedes utilizar la API de Stackdriver Logging directamente con las bibliotecas cliente de Google Cloud.

Para obtener más detalles, consulta la guía siguiente:

Correo electrónico

El servicio de correo electrónico de App Engine no está disponible fuera del entorno estándar. Deberás usar un proveedor de correo electrónico de terceros, como SendGrid, Mailgun o Mailjet, para enviar correos electrónicos. Todos estos servicios ofrecen API para enviar correos electrónicos desde aplicaciones que se ejecutan en cualquier lugar.

En las siguientes guías, se muestra cómo usar estos servicios con el entorno flexible:

Memcache

El servicio de Memcache no se encuentra disponible para el entorno de App Engine Flexible. 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 almacenar datos de aplicaciones en caché de forma inmediata, puedes usar Redis Labs Redis Cloud, un servicio administrado por terceros en su totalidad. Para acceder a este servicio, consulta cómo almacenar en caché los datos de aplicación con Redis de Redis Labs.

Módulos

La API de módulos no está disponible fuera del entorno estándar. Sin embargo, puedes usar una combinación de variables de entorno y la API de Administrador de App Engine para obtener información sobre los servicios en ejecución de tu aplicación y modificarlos:

Información del servicio Cómo acceder a ella
Nombre del servicio actual Variable de entorno GAE_SERVICE
Versión del servicio actual Variable de entorno GAE_VERSION
ID de instancia actual Variable de entorno GAE_INSTANCE
Nombre de host predeterminado Método apps.get de la API de Administrador de App Engine
Lista de servicios Método apps.services.list de la API de Administrador de App Engine
Lista de versiones para un servicio Método apps.services.versions.list de la API de Administrador de App Engine
Versión predeterminada para un servicio, incluidas las divisiones del tráfico Método apps.services.get de la API de Administrador de App Engine
Lista de instancias en ejecución para una versión Método apps.services.versions.instances.list de la API de Administrador de App Engine

También puedes usar la API de Administrador de App Engine para implementar y administrar servicios y versiones en tu aplicación.

Espacios de nombres

Solo Cloud Datastore admite la modalidad multiusuario directamente fuera del entorno estándar. Para obtener otros servicios, deberás gestionar la modalidad multiusuario manualmente. Para tener instancias de servicios totalmente aisladas, puedes crear proyectos nuevos de manera programática con la API de Cloud Resource Manager y acceder a los recursos de todos los proyectos.

OAuth

El servicio de OAuth no está disponible en el entorno flexible. Si necesitas verificar tokens de OAuth 2.0, puedes hacerlo con el método oauth2.tokeninfo de la API de OAuth 2.0.

Remota

El servicio de API remota no es aplicable al entorno flexible. Se puede acceder desde cualquier lugar a la mayoría de los servicios de copia de seguridad, como Cloud Datastore, a los que se puede acceder desde un entorno flexible.

El servicio de búsqueda no está disponible fuera del entorno estándar. Puedes alojar bases de datos de búsqueda de texto completo, como ElasticSearch en Google Compute Engine, y acceder a ellas desde los entornos estándar y flexible.

Sockets

El entorno flexible no tiene restricciones de zona de pruebas, por lo que puedes abrir y usar sockets de salida de forma normal.

Lista de tareas en cola

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

En muchos casos en los que puedes usar listas de extracción (como poner en cola las tareas o los mensajes que se extraen y procesan con trabajadores independientes), Cloud Pub/Sub puede ser una buena alternativa, ya que ofrece funcionalidades similares y garantías de entrega.

Recuperación de URL

El servicio de recuperación de URL no está disponible en el entorno flexible. Sin embargo, no hay restricciones en la zona de pruebas, por lo que tu aplicación puede usar cualquier biblioteca HTTP para obtener la funcionalidad de recuperación de URL.

Usuarios

El servicio de usuarios no está disponible fuera del entorno estándar. Puedes usar los mecanismos de autenticación basados en HTTP en el entorno flexible, como los siguientes:

Ten en cuenta que, debido a que el servicio de usuarios no está disponible, no se puede usar app.yaml para hacer que solo los administradores tengan acceso a las URL. Tendrás que gestionar esta lógica dentro de tu aplicación.

Pasos siguientes

Para obtener una descripción general de las diferencias clave entre el entorno flexible y el entorno estándar con pautas que sirven para las aplicaciones que usan ambos, consulta Entorno flexible de App Engine para usuarios del entorno estándar de App Engine.

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

Enviar comentarios sobre...

Entorno flexible de App Engine para Go