Cloud Functions: Creación y Conexión de Servicios Serverless
Clase 14 de 48 • Entrenamiento de Google Cloud Platform
Resumen
¿Qué son las Cloud Functions o funciones serverless?
Las Cloud Functions, también conocidas como funciones serverless, son un entorno para construir y conectar servicios en la nube. Orientadas a eventos, permiten conectar diferentes servicios en tu nube, como un bus de mensajería (Cloud PubSub) para la comunicación entre aplicaciones o servicios, y Cloud Storage para almacenar archivos. Las Cloud Functions se activan a través de peticiones HTTP y ofrecen diversos triggers. Al ser un ambiente totalmente administrado, favorecen el pago por uso y escalado automático.
¿Por qué las funciones serverless son el "pegamento de la nube"?
- Orientadas a eventos: Permiten la conexión de servicios como buses de mensajería, llamadas HTTP y cambios en bases de datos.
- Soporte a múltiples servicios: Pueden conectar más de veinte servicios diferentes, incluyendo APIs de machine learning, BigQuery y bases de datos.
- Implementación microservicios: Facilitan la división y escalado de aplicaciones mediante la ejecución automática de código backend en respuesta a eventos.
¿Cuáles son los runtimes y precios de las Cloud Functions?
Las Cloud Functions soportan varios runtimes como Node.js, Python y Go. El precio se redondea a 100 milisegundos y se basa en la memoria reservada. Puedes elegir la cantidad de memoria según las necesidades de tu función, influenciando así el costo.
¿Cómo se pueden utilizar las Cloud Functions en un proyecto?
Imaginemos que tienes una librería de imágenes de animales y cuando alguien sube una imagen a un bucket, deseas identificar el tipo de animal. Al guardar esa imagen, automáticamente puede activarse una función que use una API de machine learning para categorizar el contenido de la foto. Posteriormente, otra función podría guardar esa imagen en diferentes tamaños para optimización.
¿Qué es Cloud PubSub y cómo interactúa con Cloud Functions?
Cloud PubSub es un servicio de mensajería en tiempo real y confiable, siguiendo un patrón de publicación-suscripción. Puedes usarlo para encadenar funciones, lo que facilita el intercambio de mensajes entre diferentes aplicaciones o servicios. Por ejemplo, una Cloud Function que se activa al crear un nuevo usuario en una base de datos puede enviar un mensaje a Cloud PubSub, distribuyendo información a múltiples aplicaciones simultáneamente.
¿Cómo manejar el escalamiento de una función?
El escalamiento en Cloud Functions crea nuevas instancias de una función automáticamente, pero es esencial controlar su número para evitar sobrecargar servicios, como bases de datos. Puedes establecer un límite al número de instancias que pueden coexistir mediante la configuración de parámetros específicos en Cloud Functions, por diferentes métodos como API o comandos.
¿Cómo crear y desplegar una Cloud Function?
El proceso de crear una Cloud Function es sencillo mediante la consola de Google Cloud. Debes:
- Darle un nombre y seleccionar la cantidad de memoria.
- Determinar el trigger (por ejemplo, HTTP).
- Elegir un runtime y asegurarte de que la función sea pública si lo deseas.
- Escribir el código, aprovechando el editor en línea o vinculando a un repositorio.
- Configurar parámetros adicionales si es necesario.
- Desplegar y probar la función, verificando su correcta creación y ejecución.
Recomendaciones para su uso efectivo
- Controla el número máximo de instancias para prevenir problemas de rendimiento en bases de datos.
- Utiliza una librería de cliente que soporte pools de conexiones para optimizar el acceso a la base de datos.
- Configura el uso de una única conexión por función para asegurar la estabilidad y eficiencia en las operaciones.
Las Cloud Functions ofrecen un enfoque económico y flexible para desarrollar soluciones basadas en eventos, facilitando arquitecturas sofisticadas y optimizando recursos en la nube. ¡Nunca dejes de aprender y explora más sobre computación en la nube y funcionalidades avanzadas!