GAE
A continuación se describen algunas configuraciones para el despliegue de Callisto sobre Google App Engine (GAE).
Importante
Esta guía asume que estás realizando un despliegue sobre Google App Engine standard environment.
Instalar el SDK de Google Cloud
En la documentación oficial, se encuentran instrucciones para elegir y administrar una instalación de Google Cloud CLI. Google Cloud CLI incluye las herramientas de línea de comandos de gcloud, gsutil y bq.
Para obtener información sobre la instalación de componentes adicionales, recomendamos la documentación oficial.
una vez, estas herramientas se encuentren instaladas...
Configuración inicial
Una aplicación de Python en Google App Engine, se configura mediante un archivo de nombre app.yaml ubicado en la carpeta raíz del proyecto, que contiene recursos de CPU, memoria, red y disco, escalamiento y otros ajustes generales, incluidas variables del entorno.
Para más información consulta el entorno de ejecución de Python.
define un archivo de nombre app.yaml
en la raiz del proyecto.
Importante
- El campo entrypoint, hace referencia a que se ha configurado un punto de entrada del servidor web Gunicorn, por lo que también debe añadir gunicorn a su archivo requirements.txt.
- Consulta la lista de variables de entorno de ejecución que no se pueden sobrescribir. Por ejemplo, todas las variables de entorno que tienen el prefijo GAE, están reservadas para uso del sistema.
Librerias de terceros
Para tener en cuenta
Poetry no es soportado en GAE, al menos no, hasta el momento de escribir estas líneas, para más información consulta la documentación oficial.
Es necesario tener un archivo requirements.txt que contendrá todas las librerias que el proyecto necesita y no están presentes por defecto en Google App Engine, necesarias para el correcto funcionamiento de la aplicación.
Recomendaciones
- Estar muy atento al ciclo de fechas clave para los tiempos de ejecución del lenguaje de programación utilizado para Google App Engine.
- Tener presente las cuotas y limites establecidos por Google App Engine.
- Algunas funcionalidades presentes y utilizadas en Callisto pueden no funcionar correctamente ó generar inconvenientes en GAE, como son procesos en segundo plano (uso de hilos ó paralelismo), uso de asyncio, procesamiento de archivos muy grandes, caché, conexión a MongoDB, entre otras.
- Prefiera realizar despliegues en Google Cloud Run, siempre que le sea posible.
- Utiliza el comando
poetry exec export-req
para generar un archivo requirements.txt, consulta el apartado de Comandos y herramientaspara más información.
Nota
Te recomendamos leer el apartado de Cloud Run para más información.
Despliegue
Importante
Antes de realizar el despliegue, asegurate de que generaste el archivo requirements.txt con todas las librerías necesarias, te recomendamos leer el apartado de Comandos y herramientas.
Más información
Para más información consulta:
- https://cloud.google.com/appengine/
- https://cloud.google.com/appengine/docs/standard
- https://cloud.google.com/appengine/docs/standard/lifecycle/support-schedule
- https://cloud.google.com/sdk/docs/install
- https://cloud.google.com/sdk/docs/components
- https://cloud.google.com/appengine/docs/standard/reference/app-yaml
- https://cloud.google.com/appengine/docs/standard/python3/runtime
- https://cloud.google.com/sdk/gcloud/reference/app/deploy
- https://cloud.google.com/appengine/docs/the-appengine-environments
- https://cloud.google.com/appengine/docs/standard/quotas