百积木文档
开发指南Bundle 开发高级开发

高级 Bundle 开发

在普通 Bundle 之上扩展外部资源生命周期、跨资源初始化和故障补偿。

大多数 Bundle 不需要高级能力。先完成模块、平台应用和其他平台资源的组合、冻结、安装 与升级;只有平台默认安装器无法完成产品交付时,才增加 Bundle 生命周期插件。

三个开发层级

层级示例处理方式
普通 Bundle安装模块、平台应用、工作流和定时任务Bundle Service 直接编排
可配置 Bundle用户填写 API Key、区域或已有第三方租户编号安装参数和资源属性
带插件的高级 Bundle自动开通外部租户、数据库、许可证,或者执行升级迁移Bundle 生命周期插件

已有租户编号可以手工填写

用户已经拥有外部系统账号时,可以把租户编号和凭据作为安装配置填写。插件管理服务不是 保存配置或让模块自动安装的前置条件。

什么时候需要生命周期插件

同时满足下面两个条件时才使用插件:

  1. 动作属于整个 Bundle 的安装、升级、配置变更、停止或卸载生命周期。
  2. 动作需要修改平台资源账本之外的外部状态。

典型场景包括:

  • 为每次 Bundle 安装创建独立外部租户或业务空间。
  • 为多个模块和平台应用分配一个共享数据库或许可证。
  • 升级 Bundle 时迁移外部配置或业务数据。
  • 卸载时停用外部 worker,并根据产品策略保留或回收数据。
  • 外部操作需要长时间运行、状态查询、重试、回滚或补偿。

以下情况不需要插件:

  • 只安装或升级 Bundle 内的平台资源。
  • 模块把数据保存在 Runtime 提供的数据能力中。
  • 模块调用无状态 HTTP API。
  • 用户手工填写已有第三方租户、Endpoint 或凭据。
  • 普通配置更新不需要同步外部安装态资源。

责任边界

Bundle Service 是生命周期状态机和资源台账的唯一负责人。生命周期插件管理器只负责解析 注册记录、鉴权、调用、重试和记录插件执行结果;外部插件服务执行租户、许可证、数据库 等平台外部动作。

插件不能绕过 Bundle Service 直接安装模块、平台应用或工作流,也不能直接修改 Bundle 资源台账。需要回写模块属性或其他资源配置时,插件返回受约束的输出,由 Bundle Service 校验、应用并记录。

继续阅读 Bundle 生命周期插件

本页内容