本文是 serverless 入门与实践 的第18篇
学习<华为 Serverless 核心技术与实践>, 计划: 1篇前言 + 10篇/章 + 1篇总结
高效对接BaaS服务: Event Bridge
开发者使用函数开发时需要与BaaS服务对接,即各种服务如何方便地触发函数,以及在函数中如何方便地调用各种服务。为此我们设计了Event Bridge和Service Bridge,Event Bridge可以为服务接入函数系统提供方便,Service Bridge则为开发者在函数中调用各种服务提供分类的统一接口及各种加速的增值服务。
Event Bridge:BaaS服务连接函数的桥梁
云服务作为事件源通过trigger触发函数的实现方式对接函数,需要克服如下几个问题:
- 每个服务作为事件源,事件源侧面临重复基础能力开发,如轮询事件产生、消息投递(基本投递能力、失效处理、质量保证)、协议处理等。
- 各服务发送给函数的事件格式不同,函数需要做各种事件的解析或适配。
- 事件机制trigger与事件源侧紧耦合,可扩展性差,例如,对于推送的事件,云服务需要维护事件到函数的映射关系。
Serverless驱动架构的典型事件模型
Event Bridge支持的主要特性如下:
- 特性一:事件接入。支持事件源的统一接入、CloudEvents事件协议标准、自定义事件协议schema及pull和push类型事件接入endpoint。
- 特性二:多租隔离与安全。支持多租实例隔离、安全策略(policy)功能。
- 特性三:支持事件的复杂处理。
- 支持事件协议转换。
- 支持事件条件过滤、分流、路由等功能。
- 支持多事件的聚合处理,聚合规则支持通用表达式和扩展,其中包括算数、逻辑、字符匹配、timer、counter、reserver、duration、statemachine等。
- 支持事件分发,支持fan-out等分发模型,支持at-least-once分发质量保证。
- 支持死信事件等异常处理。
- 支持事件Trace、统计等。
Event Bridge基本概念
Event Bridge的主要概念如下。
- Event source:事件源,即产生事件的各种服务。
- Event:事件,主要指事件的内容。
- Event schema:描述事件协议的schema,包括事件消息序列化方式,事件消息的字段结构、属性、类型等。
- target:可寻址的事件处理者,如函数。
Event Bridge外部视图
Event Bridge逻辑功能图
Event Bridge组件
CloudEvents
CloudEvents是一种以通用方式描述事件数据的规范。CloudEvents旨在简化跨服务、平台及其他方面的事件声明和发送。CloudEvents最初由CNCF的Severless工作组提出,主要解决如下问题:
- 一致性
- 无障碍环境
- 可移植性
Event Bridge的应用
Event Bridge的基本使用流程:
- 注册事件源信息
- 创建和配置 Event Bridge 实例
- 配置规则: 分发+过滤
- 事件源将事件发送到Event Bridge