跳转到内容

Eventarc

Eventarc 是 Google Cloud 提供的事件总线服务,旨在轻松构建 事件驱动架构 (Event-Driven Architecture, EDA)。它能够统一接收、过滤并路由来自各方的系统事件。

  • GCP 第一方服务:原生支持绝大多数云产品(如 Cloud Storage 文件上传、BigQuery 任务完成、Firestore 数据变更)。
  • 外部或第三方系统:通过 Cloud Audit Logs (审计日志) 或直连 Pub/Sub 主题接收自定义事件。

Eventarc 在接收到各类异构事件后,会将其统一封装为开源中立的 CloudEvents 标准格式。

  • 架构优势:极大降低了开发者的心智负担,不论事件来源何处,目标服务只需解析一套固定结构的数据契约。

Eventarc 的高可靠性得益于其底层自动挂载了 Cloud Pub/Sub 消息队列。

  • 当事件发生时,Eventarc 确保其发布至 Pub/Sub 主题。
  • Eventarc 触发器 (Trigger) 本质上是管理着该主题的订阅 (Subscription),负责稳定地将事件推送至目标。

2. 触发器 (Triggers) 与目标服务 (Destinations)

Section titled “2. 触发器 (Triggers) 与目标服务 (Destinations)”

Eventarc 的核心操作单元是 触发器 (Trigger),用于定义路由规则:监听源 -> 过滤条件 -> 目标执行者

支持精细的事件拦截。例如:仅监听特定存储桶 (bucket = my-data-bucket) 中特定类型(google.cloud.storage.object.v1.finalized)的事件。

Eventarc 主要将事件以 HTTP POST 请求的方式主动推送(Push)给计算资源:

  1. Cloud Run:最主流的目标。将事件负载推送至容器化 Web 服务的 URL。
  2. Cloud Functions (第 2 代):Eventarc 是触发 Gen 2 函数的标准官方机制。
  3. GKE (Google Kubernetes Engine):可直接路由至 K8s 集群内部的服务。
  4. Workflows:将事件作为输入参数,启动无服务器工作流编排以应对复杂的串行/并行控制。

  • 完全无服务器 (Serverless):无需部署消息代理或中间件,按调用计费,极致伸缩。
  • 零丢失保证:借力 Pub/Sub,实现“至少一次”交付与失败自动重试机制。