本文是 serverless 入门与实践 的第20篇
学习<华为 Serverless 核心技术与实践>, 计划: 1篇前言 + 10篇/章 + 1篇总结
Service Bridge架构
函数调用BaaS服务的具体流程:
(1)函数通过Service Bridge的SDK调用Service Bridge的接口,将对应请求发送给Service Bridge。
(2)Service Bridge的接口层接收到调用请求,根据服务相关配置调用业务层的管理能力,如申请代理、负载均衡、调用认证鉴权等,将BaaS服务需要的配置组装好。
(3)Service Bridge将BaaS服务请求转发给BaaS服务插件框架,映射到相应的BaaS服务插件。
(4)BaaS服务插件根据要调用的BaaS服务提供商来判断是否是本地云:如果是本地云,则转换数据结构并转发给本地云地址;如果是第三方云,则转换数据结构并将服务请求转发给第三方云服务的公网地址。
(5)BaaS服务接收到函数的请求并处理完成后,将结果返回给Service Bridge。
(6)Service Bridge收到BaaS服务的处理结果,根据配置判断是否要进行二次处理,处理完成后将结果返回给调用的函数。
Service Bridge开发流程
管理面的具体流程:
(1)开发者购买和配置云的BaaS服务,获取BaaS服务的访问端点、账号、认证秘钥或密码等。
(2)开发者配置Service中的BaaS Resource(BaaS服务访问的资源配置)配置,包括BaaS服务的访问端点、账号、认证鉴权秘钥或密码等。
(3)开发者配置函数的Databinding(绑定数据传输的BaaS服务)配置。
(4)Service Bridge订阅到开发者配置的BaaS resource、Data binding等配置,初始化相关模块,如连接池初始化等。
数据面的具体流程:
(1)事件触发函数或函数被调用。
(2)Data binding 模块调用Service Bridge的API,发送BaaS服务访问请求。
(3)Service Bridge收到BaaS服务访问请求,并解析请求,代理调用BaaS服务的SDK API访问BaaS服务。
(4)Service Bridge代理接收BaaS服务返回的数据。
(5)Service Bridge回复Data binding模块,返回相关数据。
(6)Data binding接收Service Bridge的数据后,将其转发给函数。
开发者调用Service Bridge主要包含以下步骤:
(1)开发者通过配置函数的Data binding配置信息,将BaaS服务的认证鉴权、服务地址配置到ETCD中。
(2)函数通过Service Bridge的SDK调用API,传入BaaS服务信息。
(3)Service Bridge的API获取请求参数,如果缺少BaaS服务认证鉴权信息,则从ETCD中获取,并将认证鉴权信息传给认证鉴权模块。
(4)认证鉴权模块获取认证鉴权信息,调用目标BaaS服务提供商的IAM鉴权服务,获取服务的鉴权信息,并将其返回给Service Bridge。
(5)Service Bridge将请求发给服务代理中的功能服务模块,如数据库服务,服务代理向服务资源池申请代理资源。
(6)服务代理资源申请对应BaaS服务的服务代理,将服务请求转换为目标BaaS服务的数据结构,并将其转发给BaaS服务进行处理,完成服务调用。