Saltar a contenido

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.

runtime: python311
# instance_class: F1

handlers:
  - url: /.*
    script: auto

env_variables:
  # Storage ENV
  DEFAULT_BUCKET: "awesome-project.appspot.com"
  PUBLIC_URI: "https://storage.googleapis.com"


# Configures your application to use a Serverless VPC Access connector,
# https://cloud.google.com/appengine/docs/standard/python3/config/appref

vpc_access_connector:
  name: projects/awesome-project/locations/awesome-region/connectors/awesome-vpc-conn

# Set entrypoint to locate FastAPI app, which is 'application' in module app/main.py
# Configure gunicorn worker count via --workers arg based on the App Engine instance class
#   e.g. Set workers = 1 for F1 instance class, workers = 2 for F2, and workers = 4 for F4
# See https://cloud.google.com/appengine/docs/standard/python3/runtime#application_startup

entrypoint: gunicorn --worker-class uvicorn.workers.UvicornWorker --bind :$PORT main:fastapp

Importante

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 herramientas ⚒ para 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. ⚒

gcloud app deploy --project GCP_PROJECT_ID --version VERSION_NAME --no-promote

Más información

Para más información consulta: