Los runtimes antiguos incluyen versiones de lenguaje de primera generación que ya no mantienen las comunidades de código abierto. Como muchos clientes de App Engine siguen dependiendo de estas versiones de primera generación de los lenguajes, Google ha ofrecido asistencia a largo plazo para los siguientes entornos de ejecución antiguos en el entorno estándar de App Engine:
Google está pasando los tiempos de ejecución antiguos a la fase de fin de asistencia. Consulta el calendario de asistencia para obtener más información.
Nuestro compromiso
Los entornos de ejecución antiguos llegaron al final del ciclo de asistencia el 30 de enero del 2024.
Se han realizado los siguientes cambios en los tiempos de ejecución antiguos:
En la medida de lo posible, los componentes de los tiempos de ejecución antiguos se han devuelto a sus estados de código abierto sin bifurcar. Hemos tenido que restringir y modificar en gran medida algunos de los tiempos de ejecución para ejecutar tus aplicaciones de forma segura en nuestros centros de datos. Al cambiar la forma en que operamos los tiempos de ejecución en nuestros centros de datos, podemos proporcionar un entorno seguro y escalable para estos tiempos de ejecución a largo plazo.
Se han añadido sistemas de compilación completos que admiten repositorios de paquetes, compilaciones de componentes idiomáticas y repositorios de recursos.
Actualizaciones de seguridad
Si las comunidades dejan de mantener versiones de sus idiomas, tu aplicación puede estar expuesta a vulnerabilidades para las que no haya ninguna solución disponible públicamente. Por lo tanto, seguir ejecutando tu aplicación en algunos entornos de ejecución de App Engine conlleva más riesgos que actualizar a un entorno de ejecución que tenga un lenguaje compatible con la comunidad.
No podemos comprometernos a corregir todas las APIs que usa tu aplicación. Puede que las correcciones solo estén disponibles en bibliotecas para versiones más recientes del lenguaje.
Compatibilidad con servicios agrupados de App Engine
Los entornos de ejecución de Python 2.7, Java 8, Go 1.11 y PHP 5.5 proporcionan servicios y APIs de App Engine agrupados, como Blobstore, Memcache y colas de tareas.
Puedes seguir accediendo a muchos de estos servicios y APIs incluidos en los tiempos de ejecución de segunda generación:
- Python 3
- Java 11 o una versión posterior
- Go 1.12 o versiones posteriores
- PHP 7 o una versión posterior
Tu aplicación puede llamar a las APIs de los servicios incluidos a través de bibliotecas idiomáticas del lenguaje y acceder a las mismas funciones que en los tiempos de ejecución antiguos. Los servicios agrupados se ofrecen en los entornos de ejecución más recientes para proporcionar más flexibilidad, lo que te permite migrar a los servicios sin agrupar o seguir usando los servicios agrupados antiguos de App Engine.
Si hay alguna retirada programada, seguiremos nuestra política de retirada estándar y sugeriremos alternativas. No esperamos que la mayoría de las aplicaciones requieran cambios en el código ni que se tengan que volver a implementar.
Estado actual de cada tiempo de ejecución
Python 2.7
Lanzamos el entorno de ejecución de Python 2.7 el 27 de febrero del 2012. Aunque ya hemos eliminado nuestras modificaciones y restricciones de grandes secciones de este tiempo de ejecución, haremos más cambios para normalizar el proceso de compilación, la ruta de solicitud y la disponibilidad de los paquetes. Estos cambios en el entorno de ejecución permiten Google Cloud admitir el entorno de ejecución de Python 2.7 mucho después del 1 de enero del 2020, fecha en la que la comunidad de Python dejará de ofrecer asistencia oficial para Python 2.7.
Los cambios que hemos realizado en el entorno de ejecución de Python 2.7 y los que se hicieron en el anuncio del otoño del 2021 permiten volver a usar la mayoría de los servicios agrupados de App Engine en Python 3. Estos servicios te permiten migrar más fácilmente a Python 3 o sustituir los servicios agrupados por Google Cloud servicios equivalentes antes de que dejen de estar disponibles. Consulte las siguientes guías para realizar la migración:
Java 8
Lanzamos el tiempo de ejecución de Java 8 el 28 de junio del 2017. Este entorno de ejecución se modificó ligeramente para App Engine y ofrecía una amplia compatibilidad con la importación de paquetes de Java.
Vamos a hacer los siguientes cambios en este tiempo de ejecución:
Devuelve el tiempo de ejecución de Java al estado de código abierto.
Normaliza la ruta de la solicitud.
Actualiza a Jetty 9.4.
Estos cambios permitirán que Google Cloud sea compatible con el tiempo de ejecución de Java 8 en el futuro.
Los cambios que hemos hecho en el entorno de ejecución de Java 8 te permiten sustituir los servicios de App Engine incluidos por servicios de Google Cloud y migrar a Java 11/17 antes de la finalización del periodo de asistencia. Consulta información sobre cómo migrar de Java 8 a Java 11 o versiones posteriores.
Hemos podido migrar automáticamente las aplicaciones Java 6 y Java 7 al tiempo de ejecución de Java 8 sin necesidad de cambiar el código de la aplicación. Sin embargo, Java 11 rompe la compatibilidad con versiones anteriores de forma que nos resulta imposible migrar automáticamente las aplicaciones al entorno de ejecución de Java 11. Como es posible que tengas que hacer cambios significativos en tus aplicaciones Java 6, Java 7 y Java 8 al migrar a Java 11, puedes mantener esas aplicaciones en el entorno de ejecución de Java 8.
Go 1.11
Lanzamos el entorno de ejecución de Go 1.11 el 20 de marzo del 2019 y recomendamos que las aplicaciones de Go 1.6 a 1.9 migren al entorno de ejecución de Go 1.11. El entorno de ejecución de Go 1.11 es el estado a largo plazo de las aplicaciones creadas con Go 1.6 a Go 1.11.
Una vez que tus aplicaciones se ejecuten en Go 1.11, podrás empezar a sustituir los servicios y las APIs de App Engine incluidos por servicios de Google Cloud y actualizar a una versión compatible de Go antes de que finalice el periodo de asistencia. Para obtener más información sobre la migración, consulta el artículo sobre cómo migrar tu aplicación de App Engine a Go 1.12.
PHP 5.5
Lanzamos el entorno de ejecución de PHP 5.5 el 16 de mayo del 2013. Este tiempo de ejecución eliminó muchas funciones de la versión de código abierto y ejecutó aplicaciones en un espacio aislado personalizado.
Actualmente, estamos devolviendo este tiempo de ejecución a su estado de código abierto y modernizando el sandbox. Haremos más cambios para normalizar la ruta de la solicitud y optimizar el rendimiento. Estos cambios nos permiten admitir el tiempo de ejecución de PHP 5.5 en el futuro.
Los cambios que hemos realizado en el entorno de ejecución de PHP 5.5 te permiten sustituir los servicios de App Engine incluidos por servicios de Google Cloud y migrar a PHP 7 u 8 antes de la finalización del periodo de asistencia. Consulta información sobre cómo migrar aplicaciones de PHP 5.5 a PHP 7 u 8.
Habilitar las implementaciones de entornos de ejecución antiguos que alcanzan el final de la asistencia
Según la política de ciclo de vida de los entornos de ejecución de App Engine, ya no podrás desplegar aplicaciones con entornos de ejecución que hayan alcanzado el fin del periodo de asistencia. Para consultar las fechas clave que afectan a tu entorno de ejecución, consulta el calendario de asistencia.
Si tu organización quiere volver a habilitar los despliegues de los tiempos de ejecución antiguos que han llegado al final del periodo de asistencia, puedes definir una nueva política de organización con constraints/appengine.runtimeDeploymentExemption
.
Esta política de organización para volver a habilitar las implementaciones está disponible de forma general.
El uso continuado de los tiempos de ejecución antiguos después de la fecha de finalización del periodo de asistencia es experimental y está sujeto a los Términos de las Ofertas de Acceso Previo a la Disponibilidad General.
Para crear o cambiar políticas de la organización, tu cuenta debe tener el rol roles/orgpolicy.policyAdmin
.
Usar una política para volver a habilitar los despliegues
Para crear una política que habilite las implementaciones, usa la CLI de Google Cloud o la Google Cloud consola que hayan alcanzado el final del periodo de asistencia en una organización determinada para el entorno especificado.
Consola
Ve a la página Políticas de la organización de la Google Cloud consola.
Ve a Políticas de organización.En la página Políticas de organización se muestra una lista de las restricciones de políticas de organización disponibles.
Selecciona el proyecto, la carpeta o la organización a los que quieras añadir la nueva política.
Busca la política Runtime Deployment Exemption (App Engine) (Exención de implementación de tiempo de ejecución [App Engine]) en la lista. Puedes usar el campo Filtrar de la parte superior de la lista.
Haz clic en el nombre de la política. También puedes seleccionar Editar política en el menú contextual.
Haz clic en Gestionar política.
En Se aplica a, selecciona Personalizar.
Seleccione Reemplazar en Cumplimiento de las políticas.
En Reglas, haz clic en Añadir regla.
Seleccione Personalizado en Valores de la política.
Selecciona Permitir en Tipo de política.
En Valor personalizado, especifica el tiempo de ejecución que quieras aplicar en la organización. Entre los valores admitidos se incluyen los siguientes:
python27
para permitir aplicaciones que usen Python 2.7java8
para permitir aplicaciones que usen Java 8php55
para permitir aplicaciones que usen PHP 5.5- Para permitir explícitamente varios tiempos de ejecución, especifica
python27
,java8
yphp55
juntos. De forma predeterminada, no se permite ningún tiempo de ejecución si no se ha definido ninguna política.
Haz clic en Listo.
Haz clic en Guardar.
Una vez que se apliquen los cambios, esta política permitirá desplegar entornos de ejecución de App Engine que hayan llegado al final del periodo de asistencia en el entorno especificado.
gcloud
Ejecuta el siguiente comando:
gcloud resource-manager org-policies \ allow appengine.runtimeDeploymentExemption \ --organization=ORGANIZATION_NUMBER RUNTIME_ID
Sustituye:
ORGANIZATION_NUMBER
con el número de la organización a la que quieras aplicar la política.RUNTIME_ID
con el tiempo de ejecución permitido para la implementación.RUNTIME_ID
con uno de los siguientes IDs de tiempo de ejecución:python27
para permitir aplicaciones que usen Python 2.7java8
para permitir aplicaciones que usen Java 8php55
para permitir aplicaciones que usen PHP 5.5- Para permitir explícitamente varios entornos de ejecución de lenguajes, especifica
python27
,java8
yphp55
juntos. De forma predeterminada, no se permiten tiempos de ejecución de idiomas cuando no se ha definido ninguna política.