基础能力与 Resource Binding
了解当前工作区可申请或绑定的数据库、对象存储、浏览器与 Workflow 能力,以及申请、绑定、鉴权和生命周期边界。
基础能力是由平台统一提供、可以被项目、智能体或自动化复用的工作区资源。Resource Binding(资源绑定) 用于让一个消费者选择已经创建的资源;它保存稳定引用,不复制资源本身,也不把密码、Token 或连接串写进 应用配置。
当前公开、可由工作区申请、创建或绑定的基础能力有四类:数据库服务 workspace-db-service、对象存储服务
object-storage-service、浏览器会话服务 browser-session 和 Workflow Provider workflow。具体工作区是否
可用、当前方法名、参数、规格、价格与配额,必须从工作区当前安装版本或 Runtime 的服务与
methodDefinition 实时读取。
当前能力
| 能力 | Provider 或 Runtime 服务 | 申请或创建的资源 | 绑定时使用的身份 |
|---|---|---|---|
| 数据库 | workspace-db-service | 共享测试数据库,或付费独享 Database Instance 中的 Database Profile(Logical Database) | profileRef |
| 对象存储 | object-storage-service | 工作区隔离的 Object Storage Profile | profileRef |
| 浏览器 | browser-session | Browser Profile,以及基于 Profile 按需创建的 Browser Session | Browser Profile ID;精确字段以消费者方法定义为准 |
| Workflow | Hosted Service Provider workflow | 目标 Application Runtime 中已经安装的 Workflow 能力 | application-runtime:<applicationRuntimeId> 与工作区 API Token |
数据库服务
数据库服务提供两条路径:
- 开发和测试可以申请共享测试数据库。
createSharedTestDatabase会创建可绑定的数据库 Profile,并返回profileRef;首次返回的 Profile Token 必须放入安全的 Secret 存储。 - 需要独享实例时,先通过
listDatabaseInstancePlans读取实时规格与积分价格,再使用返回的offerId调用createDatabaseInstanceOrder。实例可用后,通过createLogicalDatabase创建 Database Profile。
应用绑定的是 Database Profile 的 profileRef,不是云厂商实例地址,也不是订单或 Database Instance ID。
创建绑定不会再次购买实例;解除绑定也不会自动删除逻辑数据库或实例。Hosted Service 的详细资源和计费
关系见 Project、Environment、Slot、Endpoint 与数据库。
对象存储服务
对象存储服务建立在目标环境已经登记的 object-storage Resource 之上。工作区申请的是逻辑 Object Storage
Profile,不是云厂商 Bucket、AccessKey 或基础设施账号。每个 Profile 拥有独立前缀、生命周期、每对象大小
上限和可轮换的绑定 Token;底层对象存储凭据只由平台服务持有。
在工作区资源入口选择“对象存储”并创建 Profile,保存返回的 profileRef。入口未出现时,说明当前环境尚未
安装或启用 object-storage Package;应由环境管理员启用对应 Profile Package,不能把私有部署清单里的
对象存储 Resource 直接当成工作区 Profile。
Hosted Service 使用现有动态 Provider 与 Binding 命令,不需要升级 Hosted Service Component:
baijimu hosted-service config-provider --help
baijimu hosted-service config-binding --help
baijimu hosted-service config-binding create --workspace-id <WORKSPACE_ID> \
--environment-id <ENVIRONMENT_ID> \
--name assets \
--provider-key object-storage \
--profile-ref object-storage-profile:<UUID>部署解析成功后,业务进程会得到平台对象 API 地址、profileRef、访问 Token 与每对象大小上限;不会得到
底层 AccessKey。轮换 Profile Token 会让旧绑定凭据失效。释放 Profile 会先吊销凭据,再清理该 Profile 的
对象前缀;清理失败会保留可重试的失败状态,而不是返回伪成功。
浏览器会话服务
浏览器能力由 Browser Profile 和 Browser Session 两层组成:
- 使用
createBrowserProfile创建或按业务规则复用 Profile。Profile 保存需要延续的浏览器上下文。 - 使用
createBrowserSession从目标 Profile 创建一次运行会话;会话按需启动和关闭。
Browser Session 不是 Redis 一类长期基础设施实例,也没有独立购买流程。消费者应保存 Profile 的稳定身份, 在需要操作浏览器时再创建 Session;不要把 viewer URL、临时会话 ID 或登录态当成长期资源绑定。
需要用浏览器录制网页操作时,继续阅读 浏览器录制生成个性化 Bundle。
Workflow 能力
Workflow Resource Binding 让 Hosted Service 使用同一工作区中一个正在运行的 Application Runtime 所提供的
Workflow API。绑定不会复制 Workflow Definition,也不会创建第二套 Runtime;稳定资源身份是
application-runtime:<applicationRuntimeId>。applicationRuntimeId 必须从当前工作区的 Runtime 服务目录
读取,不能从历史日志、其他工作区或部署地址推导。
先发现当前 Application Runtime,再创建绑定:
baijimu runtime services list --workspace-id <WORKSPACE_ID> --json
baijimu hosted-service config-binding create \
--workspace-id <WORKSPACE_ID> \
--environment-id <ENVIRONMENT_ID> \
--name workflow \
--provider-key workflow \
--profile-ref application-runtime:<APPLICATION_RUNTIME_ID> \
--token <WORKSPACE_API_TOKEN> \
--json创建绑定时,Workflow resolver 会校验工作区归属、Application Runtime 身份和运行状态。部署会把解析结果与
绑定 Token 冻结进该 Environment 的 Secret revision;默认投影包括 WORKFLOW_BASE_URL、
WORKFLOW_WORKSPACE_ID、WORKFLOW_APPLICATION_RUNTIME_ID 和 WORKFLOW_TOKEN。工作区 API Token 是业务
调用凭据;Provider resolver 使用的是平台内部独立服务凭据,两者不能复用或互相暴露。
轮换工作区 API Token 后应更新绑定并重新部署,使新 Secret revision 生效。删除绑定只会撤销 Hosted Service 对该能力的引用,不会删除 Application Runtime、卸载 Bundle 或删除 Workflow Definition。
申请与绑定流程
1. 确认账号和工作区
baijimu auth status --verify
baijimu workspace current申请和绑定都作用于当前工作区。不要从页面 URL、历史日志或另一个工作区复制资源 ID。
2. 从当前 Runtime 发现服务
baijimu runtime services list --workspace-id <WORKSPACE_ID> \
--keyword workspace-db-service \
--json
baijimu runtime services list --workspace-id <WORKSPACE_ID> \
--keyword browser-session \
--json数据库和浏览器能力保存返回的准确 businessId;Workflow 保存响应顶层的 applicationRuntimeId。对象存储
从工作区资源入口读取当前 Profile。服务或入口不可见时,先确认当前工作区、默认 Runtime 和已安装 Profile
Package,不要绕过公开入口调用内部地址,也不要把其他工作区的 businessId、applicationRuntimeId 或
profileRef 写成默认值。
3. 读取目标方法定义
baijimu runtime service get --workspace-id <WORKSPACE_ID> <BUSINESS_ID> \
--method <METHOD_NAME> \
--json数据库按目标读取 createSharedTestDatabase,或
listDatabaseInstancePlans、createDatabaseInstanceOrder、createLogicalDatabase;浏览器按目标读取
createBrowserProfile 和 createBrowserSession。请求体只使用返回的 methodDefinition 中存在的字段。
4. 创建资源
把按方法定义准备的参数保存到文件,再调用服务:
baijimu runtime service call --workspace-id <WORKSPACE_ID> <BUSINESS_ID> <METHOD_NAME> \
--params @request.json \
--json数据库付费路径必须先读取实时目录,并把目录返回的 offerId 用于下单;不得在脚本中固定 SKU、价格、地域
或云厂商规格。对象存储通过工作区资源入口创建逻辑 Profile,不直接申请 Bucket 或 AccessKey;浏览器路径
先取得 Profile,再用该 Profile 创建 Session。
5. 保存稳定引用并完成绑定
- 数据库只把
profileRef交给支持数据库 Provider 的消费者;密码和 Profile Token 进入 Secret。 - 对象存储只把
profileRef交给object-storageProvider;底层 AccessKey 不离开平台服务,解析得到的绑定 Token 只进入目标 Environment。 - 浏览器只把 Browser Profile ID 交给明确支持浏览器能力的消费者;Session 由运行任务按需创建。
- Workflow 只绑定当前工作区服务目录返回的 Application Runtime,并把工作区 API Token 保存在绑定 Secret; Workflow Definition 继续由 Runtime 和 Bundle 生命周期管理。
- 绑定前校验资源与消费者属于同一工作区,并确认资源仍处于可用状态。
- 绑定后执行一次真实功能验证:数据库建立连接并完成无副作用查询;浏览器创建 Session、打开测试页面, 然后正常关闭会话;Workflow 使用投影后的地址和 Token 读取定义或执行一个可验证的测试 Workflow。
消费者支持的绑定类型以它自己的当前方法定义为准。看到基础能力不代表任意 Project、应用、智能体或工作流 都能自动绑定该能力。
Resource Binding 不是什么
- 不是资源申请。 先由能力 Provider 创建资源,再由消费者保存引用;绑定本身不创建数据库实例、 Object Storage Profile 或 Browser Profile。
- 不是凭据容器。 绑定保存引用,Secret 保存敏感值。连接串、密码、Profile Token、Cookie 和临时 URL 不得进入项目 Git、Bundle Manifest、Artifact 或普通日志。
- 不是方法授权。 平台应用的
methodDefinitions描述允许调用哪些 Runtime 方法,和选择哪一个资源是 两个不同边界。 - 不是资源所有权转移。 解除绑定、停止 Environment 或结束 Session 不会自动删除 Provider 拥有的 长期资源;删除必须走该资源自己的生命周期。
当前不提供 Redis 资源
平台当前没有面向工作区公开的 Redis 申请、购买或 Resource Binding 产品。平台内部服务可能使用 Redis, 私有部署环境也可能要求环境所有者准备 Redis,但这些都属于平台或部署环境基础设施,不是用户可以在 工作区申请的基础能力。
同样,MySQL、Kubernetes、网络、负载均衡以及私有部署环境登记的底层 object-storage Resource 不能因为
出现在环境清单中,就直接写成工作区可申请产品。工作区对象存储能力指 object-storage-service 创建的
逻辑 Profile。Hosted Service Slot 是后端应用的托管计算产品,也不属于这里的通用基础能力目录。
以当前 Runtime 为准
本文说明稳定的产品边界和标准流程。能力是否可见、方法参数、规格、价格、配额和消费者支持范围都可能随
工作区安装版本变化;执行前始终读取当前 Runtime 服务及目标方法的 methodDefinition。