开发指南Bundle 开发高级开发
高级 Bundle 开发
在普通 Bundle 之上扩展外部资源生命周期、跨资源初始化和故障补偿。
大多数 Bundle 不需要高级能力。先完成模块、平台应用和其他平台资源的组合、冻结、安装 与升级;只有平台默认安装器无法完成产品交付时,才增加 Bundle 生命周期插件。
三个开发层级
| 层级 | 示例 | 处理方式 |
|---|---|---|
| 普通 Bundle | 安装模块、平台应用、工作流和定时任务 | Bundle Service 直接编排 |
| 可配置 Bundle | 用户填写 API Key、区域或已有第三方租户编号 | 安装参数和资源属性 |
| 带插件的高级 Bundle | 自动开通外部租户、数据库、许可证,或者执行升级迁移 | Bundle 生命周期插件 |
已有租户编号可以手工填写
用户已经拥有外部系统账号时,可以把租户编号和凭据作为安装配置填写。插件管理服务不是 保存配置或让模块自动安装的前置条件。
什么时候需要生命周期插件
同时满足下面两个条件时才使用插件:
- 动作属于整个 Bundle 的安装、升级、配置变更、停止或卸载生命周期。
- 动作需要修改平台资源账本之外的外部状态。
典型场景包括:
- 为每次 Bundle 安装创建独立外部租户或业务空间。
- 为多个模块和平台应用分配一个共享数据库或许可证。
- 升级 Bundle 时迁移外部配置或业务数据。
- 卸载时停用外部 worker,并根据产品策略保留或回收数据。
- 外部操作需要长时间运行、状态查询、重试、回滚或补偿。
以下情况不需要插件:
- 只安装或升级 Bundle 内的平台资源。
- 模块把数据保存在 Runtime 提供的数据能力中。
- 模块调用无状态 HTTP API。
- 用户手工填写已有第三方租户、Endpoint 或凭据。
- 普通配置更新不需要同步外部安装态资源。
责任边界
Bundle Service 是生命周期状态机和资源台账的唯一负责人。生命周期插件管理器只负责解析 注册记录、鉴权、调用、重试和记录插件执行结果;外部插件服务执行租户、许可证、数据库 等平台外部动作。
插件不能绕过 Bundle Service 直接安装模块、平台应用或工作流,也不能直接修改 Bundle 资源台账。需要回写模块属性或其他资源配置时,插件返回受约束的输出,由 Bundle Service 校验、应用并记录。
继续阅读 Bundle 生命周期插件。