Información general de Eventarc Standard

Eventarc te permite crear arquitecturas basadas en eventos sin tener que implementar, personalizar ni mantener la infraestructura subyacente.

Eventarc se ofrece en dos ediciones: Eventarc Advanced y Eventarc Standard. Ambas ediciones ofrecen una solución de eventos escalable, sin servidor y totalmente gestionada que te permite enrutar eventos de forma asíncrona desde orígenes a destinos. Para obtener más información, consulta Elegir Eventarc avanzado o Eventarc estándar.

Eventarc Standard ofrece una solución estandarizada para gestionar el flujo de cambios de estado, llamados eventos, entre microservicios desacoplados. Cuando se activan, Eventarc Standard dirige estos eventos a varios destinos (en este documento, consulta Destinos de eventos) mientras gestiona la entrega, la seguridad, la autorización, la observabilidad y la gestión de errores.

Puedes gestionar Eventarc desde la Google Cloud consola, desde la línea de comandos con la CLI de gcloud o mediante la API de Eventarc.

Eventarc dirige los eventos de los proveedores de eventos a los destinos de eventos.
Eventarc Standard te permite enrutar eventos de proveedores de eventos a destinos de eventos (haz clic en el diagrama para ampliarlo).

1 Eventos de proveedores de Google: se envían directamente desde la fuente (Cloud Storage, por ejemplo) o a través de entradas de registros de auditoría de Cloud, y usan Pub/Sub como capa de transporte. Los eventos de fuentes de Pub/Sub pueden usar un tema de Pub/Sub que ya exista o Eventarc creará automáticamente un tema y lo gestionará por ti.

Los eventos de 2 para destinos de Google Kubernetes Engine (GKE), incluidos los servicios de Knative Serving que se ejecutan en un clúster de GKE, usan el reenviador de eventos de Eventarc para extraer eventos nuevos de Pub/Sub y reenviarlos al destino. Este componente actúa como intermediario entre la capa de transporte de Pub/Sub y el servicio de destino. Funciona en los servicios actuales y también admite servicios de señalización (incluidos los que no se exponen fuera del clúster totalmente gestionado), al tiempo que simplifica la configuración y el mantenimiento. Ten en cuenta que Eventarc gestiona el ciclo de vida del reenviador de eventos y que, si eliminas el reenviador de eventos por error, Eventarc restaurará este componente.

3 Los eventos de una ejecución de flujo de trabajo se transforman y se transfieren al flujo de trabajo como argumentos del entorno de ejecución. Los flujos de trabajo pueden combinar y orquestar servicios de Google Cloud y de APIs basadas en HTTP en el orden que definas.

4 Todas las funciones basadas en eventos de Cloud Run usan activadores de Eventarc para enviar eventos. Puedes configurar activadores de Eventarc al desplegar una función de Cloud Run mediante la interfaz de funciones de Cloud Run.

Casos prácticos clave

Eventarc admite muchos casos prácticos para aplicaciones de destino. Algunos ejemplos:

Configurar y monitorizar
  • Configuración del sistema: instala una herramienta de gestión de configuración en una nueva VM cuando se inicie.
  • Corrección automatizada: detecta si un servicio no responde correctamente y lo reinicia automáticamente.
  • Alertas y notificaciones: monitoriza el saldo de una dirección de cartera de criptomonedas y activa notificaciones.
Harmonize
  • Registros de directorios: activa una tarjeta de acceso de empleado cuando un nuevo empleado se incorpora a una empresa.
  • Sincronización de datos: activa un flujo de trabajo de contabilidad cuando se convierta un cliente potencial en un sistema CRM.
  • Etiquetado de recursos: etiqueta e identifica al creador de una VM cuando se crea.
Analizar
  • Análisis de sentimiento: usa la API Natural Language de Cloud para entrenar e implementar un modelo de aprendizaje automático que asigne una puntuación de satisfacción a una incidencia de atención al cliente cuando se complete.
  • Retoque y análisis de imágenes: elimina el fondo y categoriza automáticamente una imagen cuando un comerciante la añade a un almacén de objetos.

Eventos

Un evento es un registro de datos que expresa una ocurrencia y su contexto. Un evento es una unidad de comunicación discreta, independiente de otros eventos. Por ejemplo, un evento puede indicar un cambio en los datos de una base de datos, un archivo añadido a un sistema de almacenamiento o una tarea programada.

Consulta los tipos de eventos de Google compatibles con Eventarc.

Proveedores de eventos

Los eventos se enrutan desde un proveedor de eventos (el origen) hasta los consumidores de eventos interesados. El enrutamiento se realiza en función de la información que contiene el evento, pero un evento no identifica un destino de enrutamiento específico. Eventarc admite eventos de más de 130 proveedores de Google. Estos proveedores envían eventos (por ejemplo, una actualización de un objeto en un segmento de Cloud Storage o un mensaje publicado en un tema de Pub/Sub) directamente desde la fuente o a través de entradas de registros de auditoría de Cloud.

Destinos de eventos

Los eventos se dirigen a un destino específico (el objetivo), conocido como receptor de eventos (o consumidor), a través de suscripciones push de Pub/Sub.

Cloud Run

Consulta cómo crear un servicio de receptor de eventos que se pueda desplegar en Cloud Run.

Para determinar la mejor forma de enrutar eventos a un servicio de Cloud Run, consulta Rutas de eventos.

Cloud Run Functions

Todas las funciones basadas en eventos de Cloud Run Functions usan activadores de Eventarc para enviar eventos. Un activador de Eventarc permite que una función se active con cualquier tipo de evento compatible con Eventarc. Puedes configurar activadores de Eventarc al desplegar una función de Cloud Run mediante la interfaz de funciones de Cloud Run.

GKE

Eventarc permite crear activadores que se dirijan a servicios de Google Kubernetes Engine (GKE). Esto incluye los endpoints públicos de los servicios privados y públicos que se ejecutan en un clúster de GKE.

  • Para que Eventarc pueda orientarse a los servicios de un clúster y gestionarlos, debes conceder a la cuenta de servicio de Eventarc los permisos necesarios.

  • Debes habilitar Workload Identity Federation for GKE en el clúster de GKE en el que se ejecuta el servicio de destino. Workload Identity Federation for GKE es necesario para configurar correctamente el reenviador de eventos y es la forma recomendada de acceder a los servicios desde las aplicaciones que se ejecutan en GKE, ya que es fácil de gestionar y cuenta con propiedades de seguridad mejoradas. Google Cloud Para obtener más información, consulta Habilitar Workload Identity.

Puntos finales HTTP internos en una red de VPC

Puedes configurar el enrutamiento de eventos a un endpoint HTTP interno en una red de nube privada virtual (VPC). Para configurar el activador, también debes proporcionar un ID de adjunto de red. Para obtener más información, consulta Dirigir eventos a un endpoint HTTP interno en una red de VPC.

Flujos de trabajo

Puedes activar la ejecución de un flujo de trabajo. Workflows requiere una dirección de correo de cuenta de servicio de IAM que tu activador de Eventarc usará para invocar las ejecuciones del flujo de trabajo. Te recomendamos que utilices una cuenta de servicio con los privilegios mínimos necesarios para acceder a los recursos requeridos. Para obtener más información, consulta el artículo Crear y gestionar cuentas de servicio.

Formato de eventos y bibliotecas

Eventarc envía eventos, independientemente del proveedor, al destino en formato CloudEvents mediante una solicitud HTTP en modo de contenido binario. CloudEvents es una especificación para describir metadatos de eventos de forma común.

En función del proveedor de eventos, puede especificar la codificación de los datos de la carga útil del evento como application/json o application/protobuf. Protocol Buffers (o Protobuf) es un mecanismo extensible, neutral en cuanto a idiomas y plataformas, para serializar datos estructurados. Ten en cuenta lo siguiente:

  • Esta opción de formato no se admite en fuentes personalizadas, proveedores externos ni eventos directos de Pub/Sub.
  • Una carga útil de evento con formato JSON es más grande que una con formato Protobuf, y esto puede afectar a la fiabilidad en función del destino del evento y sus límites de tamaño. Para obtener más información, consulta Problemas conocidos.

Los destinos, como las funciones de Cloud Run, Cloud Run y GKE, consumen eventos en formato HTTP. En el caso de los destinos de Workflows, el servicio Workflows convierte el evento en un objeto JSON y lo transfiere a la ejecución del flujo de trabajo como argumento de tiempo de ejecución.

Si se usa una forma estándar de describir los metadatos de los eventos, se garantiza la coherencia, la accesibilidad y la portabilidad. Los consumidores de eventos pueden leer estos eventos directamente o puedes usar las bibliotecas de cliente de Cloud en varios lenguajes (como C++, C#, Go, Java, Node.js, PHP, Python y Ruby) para leer y analizar los eventos. También hay un conjunto de SDKs de CloudEvents específicos de cada lenguaje.

La estructura del cuerpo HTTP de todos los eventos está disponible en el repositorio de GitHub de Google CloudEvents.

Eventarc envía eventos en formato CloudEvents. Puedes leer los eventos directamente o usar los SDKs o las bibliotecas de Google CloudEvents para analizarlos.
Imagen 2. Eventarc envía eventos en formato CloudEvents a los destinos de eventos. Puedes leer estos eventos directamente o usar los SDKs de CloudEvents o las bibliotecas de Google para leer y analizar los eventos.

Retrocompatibilidad

Eventarc considera que la adición de los siguientes atributos y campos es compatible con versiones anteriores:

  • Atributos de filtrado opcionales o atributos de solo salida
  • Campos opcionales de la carga útil del evento

Activadores de Eventarc

Los eventos se producen independientemente de si el destino reacciona a ellos o no. Para responder a un evento, se crea un activador. Un activador es una declaración que indica que te interesa un evento o un conjunto de eventos concretos. Cuando creas un activador, especificas filtros para el activador que te permiten capturar y actuar en esos eventos específicos, incluido su enrutamiento desde una fuente de eventos a un destino. Para obtener más información, consulta la representación REST de un recurso de activador y los proveedores y destinos de eventos.

Ten en cuenta que las suscripciones de Pub/Sub creadas para Eventarc persisten independientemente de la actividad y no caducan. Para cambiar las propiedades de la suscripción, consulta Propiedades de la suscripción.

Eventarc admite activadores para estos tipos de eventos:

Eventos de registros de auditoría de Cloud (CAL)
DescripciónLos registros de auditoría de Cloud proporcionan registros de auditoría de actividad de administración y de acceso a los datos para cada proyecto, carpeta y organización de Cloud. Google Cloud escriben entradas en estos registros. Puede crear filtros para activadores de Eventarc usando los valores serviceName y methodName de los registros de auditoría. Para ver los valores exactos, consulta los Google Cloud servicios con registros de auditoría. Para obtener más información, consulta Determinar filtros de eventos para registros de auditoría de Cloud.
Tipo de filtro de eventosLos activadores de Eventarc con type=google.cloud.audit.log.v1.written envían solicitudes a tu servicio o flujo de trabajo cuando se crea un registro de auditoría que coincide con los criterios de filtro del activador.
Eventos directos
DescripciónEventarc se puede activar mediante varios eventos directos, como una actualización de un segmento de Cloud Storage, una actualización de una plantilla de Firebase Remote Config o cambios en los recursos de los servicios de Google Cloud .

Eventarc también se puede activar mediante mensajes publicados en temas de Pub/Sub. Pub/Sub es un bus de mensajes distribuido por todo el mundo que se escala automáticamente de acuerdo con tus necesidades. Como Eventarc se puede invocar mediante mensajes de un tema de Pub/Sub, puedes integrar Eventarc con cualquier otro servicio que admita Pub/Sub como destino.

Tipo de filtro de eventosLos activadores de Eventarc con tipos de filtro de eventos específicos envían solicitudes a tu servicio o flujo de trabajo cuando se produce un evento que coincide con los criterios de filtro del activador. Por ejemplo, type=google.cloud.storage.object.v1.finalized (cuando se crea un objeto en un bucket de Cloud Storage) o type=google.cloud.pubsub.topic.v1.messagePublished (cuando se publica un mensaje en el tema de Pub/Sub especificado).

Ubicación de activación

Google Cloud servicios como Cloud Storage se pueden configurar para que sean regionales o multirregionales. Algunos servicios, como Cloud Build, se pueden configurar de forma global.

Eventarc te permite crear activadores regionales o, en el caso de algunos eventos, puedes crear un activador global y recibir eventos de todas las regiones. Para obtener más información, consulta ¿Qué son las ubicaciones de Eventarc?.

Debe especificar la ubicación del activador de Eventarc para que coincida con la ubicación del servicio de Google Cloud que genera eventos y evitar problemas de rendimiento y residencia de datos causados por un activador global.

Puedes especificar las ubicaciones de activación mediante una marca --location con cada comando. En el caso de los destinos de Cloud Run, si no se especifica ninguna marca --destination-run-region, se da por hecho que el servicio está en la misma región que el activador. Para obtener más información, consulta la referencia de Google Cloud CLI.

Fiabilidad y entrega

Las expectativas de entrega son las siguientes:

  • Los eventos de Registros de auditoría de Cloud se entregan en menos de un minuto. Aunque se crea un activador de registros de auditoría de Cloud inmediatamente, puede tardar hasta dos minutos en propagarse y filtrar eventos.
  • Los eventos que usan Pub/Sub se entregan en segundos.

No se garantiza la entrega en orden ni la entrega según el orden de llegada. Ten en cuenta que, si se mantuviera un orden estricto, se verían afectadas las funciones de disponibilidad y escalabilidad de Eventarc, que coinciden con las de su capa de transporte, Cloud Pub/Sub. Para obtener más información, consulta Ordenar mensajes.

La latencia y el rendimiento se aplican en la medida de lo posible. Varían en función de varios factores, como si el activador de Eventarc es regional, multirregional o global, la configuración de un servicio concreto y la carga de red de los recursos de una Google Cloud región.

Ten en cuenta que hay cuotas y límites de uso que se aplican a Eventarc en general. También hay cuotas y límites de uso específicos de Workflows.

Política de reintentos de eventos

Las características de reintento de Eventarc coinciden con las de su capa de transporte, Cloud Pub/Sub. La duración predeterminada de la retención de mensajes definida por Eventarc es de 24 horas con un retraso de retroceso exponencial.

Puedes actualizar la política de reintentos a través de la suscripción de Pub/Sub asociada al activador de Eventarc. Para obtener más información, consulta Reintentar eventos.

Observabilidad

Google Cloud Observability ofrece herramientas de monitorización, registro y diagnóstico. Estas herramientas pueden ayudarte a monitorizar y analizar la actividad y el crecimiento de Eventarc, así como a comprender el comportamiento, el estado y el rendimiento de tus aplicaciones. Para obtener más información, consulta Observabilidad en Eventarc.

Los registros detallados de Eventarc, Cloud Run, Cloud Run Functions, GKE, Pub/Sub y Workflows están disponibles en Registros de auditoría de Cloud.

Recuperación tras fallos

Puedes aprovechar las zonas y las regiones para conseguir fiabilidad en caso de interrupciones. Para obtener más información sobre cómo asegurarse de que se cumplen los objetivos de tiempo de recuperación (RTO) y de punto de recuperación (RPO) para las copias de seguridad y los tiempos de recuperación al usar Eventarc, consulte el artículo Diseño de la recuperación tras fallos para interrupciones de la infraestructura en la nube.

Estándares de cumplimiento

Eventarc Standard cumple determinadas certificaciones y estándares. Para evitar usar recursos avanzados de Eventarc que no cumplan los requisitos, puedes crear una política de organización personalizada que inhabilite los recursos avanzados de Eventarc. Para obtener más información, consulta Inhabilitar recursos avanzados de Eventarc.

Siguientes pasos