百积木文档
开发指南平台应用、模块与 Bundle 开发模块开发

模块开发

在 Bundle 内创建模块定义,创建不可变模块版本并由 Bundle 统一发布。

模块属性、参数、返回值和接口的公共类型规则统一见类型系统。

模块是 Bundle 中的运行时能力单元。源码项目可以独立创建,但模块定义必须在明确的 Bundle 下创建。模块版本由 Bundle 精确引用,不单独发布、审核、上架或安装。

开发对象

对象交付物发布方式
模块定义项目 Git 快照、module.json、methods/*.json在 Bundle 内创建不可变模块版本
模块事件与发布机制事件声明、Runtime 发布方法和受控回调能力由 Bundle 安装物化到目标 Runtime
ServiceReference 声明、绑定与运行时交付Interface 属性、模块属性绑定、引用授权和生命周期凭据更新支持独立模块后端调用同一 Runtime 的目标方法
InterfaceMap 与 ServiceReferenceMapInterfaceMap 属性、具名服务映射和递归展开通过稳定业务键绑定并选择多个同接口目标服务
模块调用上下文只读 system 身份字段与可写业务 context在方法定义中显式映射到后端请求
Runtime 用户委托请求级 Actor assertion、ServiceReference 双凭据与按跳轮换让外部模块后端代表当前已验证用户调用下游方法

模块需要保存数据时,可以使用 Runtime 提供的数据能力或调用独立后端;连接已有外部系统 时,也可以让用户填写租户编号和凭据。这些场景本身不要求开发 Bundle 管理器。 独立模块后端跨模块调用使用已公开的模块属性绑定、管理器在生命周期中收到的资源交付与本地运行配置和 Runtime 网关 HTTP 协议,完整方式见 模块服务间调用协议。

如果还没有确定模块是否需要外部服务,或者需要理解模块如何由 Bundle 自动安装,请先阅读 模块开发与 Bundle 自动安装。

组合交付

独立模块源码项目
  -> 在 Bundle 内创建模块定义
  -> 创建不可变模块版本
  -> Bundle Manifest
  -> 创建 Bundle Version
  -> 审核和发布 Bundle
  -> 安装到工作区 Runtime

通过 Hosted Service 托管的独立后端先完成部署,再由模块方法调用其 Endpoint;Bundle 物化模块资源不会部署独立后端程序。 具体顺序见后端接入 Application Runtime。

独立后端需要在安装或配置变更时领取服务引用凭据,或开通、迁移、回收外部业务资源时,使用 Bundle 管理器。管理器由来源 Bundle 的固定关系选择, 管理该安装中的全部本包资源及属性;Module 不拥有独立的管理器的生命周期。

继续阅读:

  1. 模块定义开发
  2. 模块事件与发布机制
  3. ServiceReference 声明、绑定与运行时交付
  4. InterfaceMap 与 ServiceReferenceMap
  5. Runtime 用户委托
  6. 模块调用上下文
  7. 模块版本创建与 Bundle 交付

本页内容