Cloud Functions: Computación Orientada a Eventos (FaaS) con Python
Autor: Eduardo Martínez Agrelo
Hemos visto contenedores pesados en GKE y contenedores ligeros en Cloud Run. Pero existe un nivel de abstracción aún mayor: Cloud Functions. Aquí ni siquiera entregas un contenedor; solo entregas un archivo de texto con tu código (Python, Node.js, Go, etc.). Es el concepto de Function as a Service (FaaS). En el examen Associate Cloud Engineer, las funciones son el "pegamento" que une todos los servicios de Google Cloud.
¿Qué es la Computación Orientada a Eventos?
A diferencia de un servidor web tradicional que está encendido esperando peticiones, una Cloud Function es reactiva. Se "despierta" solo cuando ocurre un Evento. Un evento puede ser:
- Una petición HTTP directa (una URL).
- Un archivo que se acaba de subir a un bucket de Cloud Storage.
- Un mensaje que llega a una cola de Pub/Sub.
- Un cambio en un documento de Firestore.
Cloud Functions Gen 2: Potenciadas por Cloud Run
Este es un punto vital para el examen. Google lanzó recientemente la **2ª Generación (Gen 2)** de funciones, que supone un cambio arquitectónico importante:
- Base tecnológica: Las funciones Gen 2 corren internamente sobre Cloud Run. Esto significa que heredan sus ventajas: mayor tiempo de ejecución (hasta 60 min) y mayor tamaño de instancia (hasta 32GB RAM).
- Eventarc: Utilizan Eventarc para gestionar los triggers, lo que permite reaccionar a más de 90 tipos de eventos distintos de Google Cloud.
- Concurrencia: A diferencia de Gen 1 (donde una instancia solo manejaba 1 petición a la vez), Gen 2 puede manejar múltiples peticiones simultáneas, mejorando el rendimiento y bajando costes.
Casos de Uso Típicos de Examen
Si la pregunta del examen menciona tareas de procesamiento rápidas y ligeras, la respuesta suele ser Cloud Functions:
- Procesamiento de imágenes: Crear una miniatura (thumbnail) en cuanto un usuario sube una foto.
- Webhooks: Recibir notificaciones de sistemas externos (como Stripe o GitHub) y guardarlas en una base de datos.
- Limpieza de datos: Validar o transformar un archivo CSV en cuanto llega al almacenamiento para luego cargarlo en BigQuery.
La Práctica con gcloud
En este ejercicio, utilizaremos el **Functions Framework**, una librería de Google que permite ejecutar y probar tus funciones localmente antes de subirlas a la nube. Usaremos el comando:
gcloud functions deploy
Aprenderás a configurar el trigger-http y a permitir el acceso no autenticado para pruebas rápidas. Recuerda que, al igual que en Cloud Run, las funciones deben ser Stateless.
Conclusión: El Pegamento de la Nube
Al finalizar este ejercicio, habrás desplegado una pieza de código que solo consume recursos cuando es necesaria. Has aprendido que no siempre necesitas un servidor o un contenedor; a veces, una simple función es la herramienta más eficiente y económica para resolver un problema de negocio.