基于事件的架构与 Event Grid

面向 Azure Storage 的开发

Shahzad Mian

Content Developer, DataCamp

事件驱动架构简介

 

Screenshot 2025-10-26 at 10.35.27 pm.png

  • 现代系统持续产生事件。
  • Azure Event Grid 将这些事件即时连接到合适的服务。
  • 它是 Azure 事件驱动架构的骨干。
面向 Azure Storage 的开发

事件驱动架构

  • 说明 Azure Event Grid 是什么以及其工作方式。
    • 识别事件源和处理程序。
    • 描述 Event Grid 如何支持实时的事件驱动工作流。
    • 将这些概念应用于 Cipher Coffee 的业务。

 

 

事件网格

1 https://azure.microsoft.com/en-us/blog/introducing-azure-event-grid-an-event-service-for-modern-applications/
面向 Azure Storage 的开发

挑战:触发器过多

Screenshot 2025-10-27 at 6.41.44 pm.png

  • Cipher Coffee 的系统持续产生事件:

    • 新的 blob 已上传。
    • 订单已下达。
    • 库存数据已变更。
  • 轮询指应用持续检查更新。

面向 Azure Storage 的开发

Event Grid

事件网格图片

 

 

 

  • Event Grid 通过实时发送通知来解决此问题。
面向 Azure Storage 的开发

什么是 Event Grid?

事件网格示意图

  • Azure Event Grid 是一项全托管的事件路由服务。
  • 它自动将事件从发布者传递给订阅者。

  • 采用发布-订阅模型:

    • 发布者发出事件(如:Blob 已创建)。
    • 订阅者实时响应这些事件。
  • 常见订阅者包括 Azure Functions 和 Logic Apps。

面向 Azure Storage 的开发

事件工作流

  • 发布者生成事件,例如创建了新的 blob。
  • Event Grid 捕获事件并将其路由到订阅者。
  • 订阅者(如 Azure Function 或 Logic App)自动运行。
  • 每个连接称为一个事件订阅(Event Subscription)。

事件工作流

面向 Azure Storage 的开发

Cipher Coffee 示例

  • Cipher Coffee 的市场团队将新产品照片上传到 Blob 存储。
  • 该上传触发 Event Grid。
  • Event Grid 将通知转发给 Azure Function。
  • 该 Function 自动调整图像大小并更新网站图库。
  • 无需人工、无需等待——即时自动化。

Cipher Coffee 示例

面向 Azure Storage 的开发

事件源与处理程序

Screenshot 2025-10-27 at 7.16.33 pm.png

  • 事件源:事件的产生位置。
    • 存储帐户、资源组、Event Hubs、IoT Hubs。
  • 事件处理程序:事件的投递目标。
    • Azure Functions、Logic Apps、Webhooks、Service Bus 主题。
  • Event Grid 动态连接二者——无需轮询。
面向 Azure Storage 的开发

事件架构(schema)

  • 标准 JSON

Screenshot 2025-12-03 at 3.22.25 pm.png

面向 Azure Storage 的开发

系统事件 vs 自定义事件

Screenshot 2025-10-27 at 7.38.52 pm.png

  • 系统事件:由 Azure 服务自动生成。
    • 例如:blob 已创建、VM 已删除、资源已更新。
  • 自定义事件:由自有应用发布。
    • 例如:Cipher Coffee 的订单服务发布"NewOrderCreated"。
  • 二者遵循相同的事件路由模式。
面向 Azure Storage 的开发

Event Grid 的优势

  • 无服务器、可扩展——全托管,无需运维基础设施。

云计算

  • 可靠投递——支持重试与死信处理。

握手

  • 实时响应——数秒内送达事件。

时钟

  • 广泛集成——可与 Functions、Logic Apps 及第三方 API 协同。

集成

面向 Azure Storage 的开发

事件过滤与路由

  • Event Grid 可在投递前过滤事件。
  • 可按以下方式筛选:
    • 事件类型(如仅 Blob Created)。
    • 主题模式(如路径 "images/" 下的文件)。
  • 确保订阅者只接收相关事件。

Screenshot 2025-10-27 at 7.49.11 pm.png

面向 Azure Storage 的开发

Passons à la pratique !

面向 Azure Storage 的开发

Preparing Video For Download...