Para poder ejecutar tu aplicación en el tiempo de ejecución de Python 3 del entorno estándar de App Engine, es posible que tengas que cambiar algunos de los archivos de configuración que usa App Engine:
app.yaml
. Este archivo contiene información sobre el código de tu aplicación, como el tiempo de ejecución y los controladores de la aplicación.appengine_config.py
. El tiempo de ejecución de Python 2 usa este archivo para acceder a bibliotecas de terceros y proporcionar valores para constantes y funciones de gancho. El entorno de ejecución de Python 3 no usa este archivo.
Actualizando app.yaml
Se ha modificado el comportamiento de algunos campos del app.yaml
archivo de configuración. Elimine los campos que ya no se admitan y actualice los demás como se describe en la siguiente tabla.
Campo | Tipo de cambio | Descripción |
---|---|---|
app_engine_apis | Solo se aplica a Python 3 | Debe tener el valor true si quieres acceder a los servicios agrupados antiguos de Python 3. |
api_version application_readable builtins |
Ya no se admite | No aplicable en el entorno de ejecución de Python 3. |
Threadsafe | Ya no se admite | Se presupone que todas las aplicaciones son seguras para subprocesos. Si tu aplicación no es segura para subprocesos, especifica un entrypoint configurando 1 subproceso por trabajador.Por ejemplo, al usar la clase de instancia F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Consulta las prácticas recomendadas para los puntos de entrada para ver el número de trabajadores recomendado para cada clase de instancia. |
bibliotecas | Ya no se admite |
Usa el archivo requirements.txt para declarar dependencias e instalar bibliotecas de cliente.
|
controladores: inicio de sesión | Se admite si app_engine_apis es true . |
Si no utilizas los servicios agrupados antiguos para Python 3, usa Gestión de Identidades y Accesos (IAM) para gestionar a los usuarios. |
controladores: secuencia de comandos | Última modificación | En el tiempo de ejecución de Python 2, se usa el campo
script
para dirigir las solicitudes entrantes a la secuencia de comandos de tu aplicación.
En el tiempo de ejecución de Python 3, debes usar un framework web con enrutamiento en la aplicación (como Flask o Django) en lugar de usar el campo Para migrar tu archivo
El tratamiento de archivos estáticos no cambia. |
Si usas alguno de los campos obsoletos, App Engine devolverá un error cuando despliegues tu aplicación.
Puedes usar los siguientes ejemplos para comparar las diferencias entre los archivos app.yaml
:
Python 2
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Python 3
runtime: python313
app_engine_apis: true
handlers:
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: auto
login: admin
Eliminando appengine_config.py
El tiempo de ejecución de Python 2 en el entorno estándar de App Engine usa el archivo appengine_config.py
.
Este archivo se ignora en el entorno de ejecución de Python 3. En su lugar, el tiempo de ejecución de Python 3 usa el archivo requirements.txt
estándar para instalar dependencias, incluidas las que usan código nativo.