云开发环境介绍
云开发环境(Environment) 是云开发的资源隔离单位与计费单位。一个环境内包含一整套独立的数据库、云存储、云函数、云托管、身份认证、AI 能力与配额,环境之间数据完全隔离。
核心概念
| 概念 | 说明 |
|---|---|
| 环境 ID | 全局唯一标识,SDK 初始化、API 调用都需要传入 |
环境包含哪些资源
- 数据库:PostgreSQL 数据库(创建环境时选择,环境自动以 PG 模式运行);如需文档型数据库能力,可在 PostgreSQL 数据库中启用 Document 插件
- 云存储:对象存储 + CDN 加速
- 计算:云函数(FaaS)、云托管(容器)
- 静态网站托管:前端构建产物一键部署
- HTTP 网关:将云函数 / 云托管暴露为公网 HTTP 接口
- 身份认证:用户管理、登录方式、JWT 颁发
- AI:大模型、知识库、Agent
环境运行模式:PG 模式 vs 传统模式
云开发环境的运行模式分两种: PostgreSQL 数据库,环境即以 PG 模式 运行;以及 传统模式。两类运行模式的差异如下:
- PG 模式:身份认证、云存储、权限模型由 PostgreSQL 统一承载,用 SQL(GRANT + RLS)表达;业务数据可继续使用文档型数据库,也可使用同一个 PostgreSQL 实例存储关系型数据
- 传统模式:身份认证、云存储、权限模型作为独立子系统运行;数据库默认提供文档型数据库
延伸阅读
如果你正在评估或准备使用 PostgreSQL 数据库能力,建议继续阅读 PG 模式概述,了解身份认证、云存储、权限模型如何由 PostgreSQL 统一承载,以及文档型数据库与 PostgreSQL 如何并存。
运行模式限制
PG 模式仅新建环境支持,存量环境不支持升级,不可切换
如何判断环境的运行模式
调用 DescribeEnvs 接口,检查返回的 EnvInfo 中是否包含 PostgreSQL 字段:
PostgreSQL数组非空(包含实例信息)→ 该环境以 PG 模式 运行PostgreSQL字段为空或不存在 → 该环境为 传统模式
// PG 环境示例(PostgreSQL 字段非空)
{
"EnvInfo": {
"EnvId": "your-env-id",
"PostgreSQL": [
{
"InstanceName": "postgres-xxxxxxx",
"Name": "postgres",
"Region": "ap-shanghai",
"Status": 1,
"Version": "17.6"
}
]
}
}
两类运行模式对比
| 维度 | 传统模式 | PG 模式 |
|---|---|---|
| 账号体系 | 身份认证作为独立模块运行,与数据库权限模型解耦 | 账号数据存储在 auth schema 下,账号信息与 PostgreSQL 权限模型联动,JWT claims 可在 SQL 中直读 |
| 云存储权限 | 使用独立的安全规则控制存储访问 | 由 PostgreSQL RLS 策略统一控制,与数据库权限模型保持一致 |
| 数据权限模型 | 文档型数据库使用安全规则控制访问 | PostgreSQL 使用 GRANT(表级)+ RLS(行级)控制访问 |
| 访问角色 | 按云开发身份与安全规则判断访问权限 | 支持 anon / authenticated / service_role 三类访问角色 |
下一步
- PG 模式概述 — PG 模式深度介绍
- PostgreSQL 数据库概述
- 文档型数据库概述 — 文档型数据库入门
- 创建云开发环境