Pub/Sub: Filtro de Mensajes | Curso Pub/Sub GCP

Pub/Sub: Filtro de Mensajes (Eficiencia y Ahorro)

Autor: Eduardo Martínez Agrelo

En arquitecturas de gran escala, procesar cada mensaje que fluye por el sistema puede resultar ineficiente y costoso. En este laboratorio, aprenderemos a utilizar el Filtrado de Mensajes de Pub/Sub para que nuestras suscripciones actúen como "porteros", dejando pasar únicamente los datos que cumplen con criterios específicos.

El poder de los Atributos

Un mensaje en Pub/Sub no es solo un cuerpo de datos (payload). También puede transportar Atributos, que son pares clave-valor de metadatos. Estos atributos permiten clasificar la información sin necesidad de abrir y analizar el contenido del mensaje:

  • Metadatos: Información como el tipo de evento, la severidad del log o la región de origen.
  • Desacoplamiento Lógico: La suscripción decide qué recibir basándose en estos metadatos, no en el contenido binario.

Filtrado en el Lado del Servidor

A diferencia del filtrado manual en nuestro código Python, el filtrado de Pub/Sub ocurre en la infraestructura de Google Cloud. Esto significa que si un mensaje no cumple el filtro, nunca llega a nuestro suscriptor, lo que se traduce en:

  • Ahorro de Costes: No pagamos por el tráfico de red ni por la computación de mensajes irrelevantes.
  • Simplicidad de Código: Nuestro suscriptor solo recibe datos "limpios" y listos para procesar.

Implementación con Terraform

Declarar filtros es extremadamente sencillo gracias a la sintaxis declarativa de Terraform. Utilizaremos el argumento filter para definir reglas basadas en atributos:

filter = "attributes.severity = \"ERROR\""

Esta instrucción asegura que la suscripción ignore todos los mensajes informativos o de advertencia, centrando los recursos del sistema exclusivamente en la gestión de incidentes críticos.

Conclusión: Arquitecturas más inteligentes

Has aprendido que enviar datos no es lo mismo que procesarlos. Al dominar el filtrado, has dado un paso hacia el rol de arquitecto, optimizando recursos y costes. Pero, ¿qué sucede cuando un mensaje que sí queremos procesar genera un error? En el próximo laboratorio descubriremos cómo gestionar fallos mediante las Dead Letter Queues.

Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!