云开发环境介绍
云开发环境(Environment) 是云开发的资源隔离单位与计费单位。一个环境内包含一整套独立的数据库、云存储、云函数、云托管、身份认证、AI 能力与配额,环境之间数据完全隔离。
核心概念
| 概念 | 说明 |
|---|---|
| 环境 ID | 全局唯一标识,SDK 初始化、API 调用都需要传入 |
| 环境运行模式 | 创建环境时选择 PostgreSQL 数据库,环境即以 PG 模式 运行;未选择则为 传统模式,创建后不可切换 |
环境包含哪些资源
- 数据库:文档型数据库(默认初始化)+ PostgreSQL 数据库(创建环境时选择,环境自动以 PG 模式运行)
- 云存储:对象存储 + CDN 加速
- 计算:云函数(FaaS)、云托管(容器)、云服务器
- 静态网站托管:前端构建产物一键部署
- HTTP 访问服务:将云函数 / 云托管暴露为公网 HTTP 接口
- 身份认证:用户管理、登录方式、JWT 颁发
- AI:大模型、知识库、Agent
环境运行模式:PG 模式 vs 传统模式
云开发环境的运行模式由创建环境时是否选择 PostgreSQL 数据库决定:选择 PostgreSQL 数据库,环境即以 PG 模式 运行;未选择时则为 传统模式。两类运行模式的差异如下:
- PG 模式:身份认证、云存储、权限模型由 PostgreSQL 统一承载,用 SQL(GRANT + RLS)表达;文档型数据库仍会默认初始化并可与 PostgreSQL 并存,业务数据可继续使用文档型数据库,也可使用同一个 PostgreSQL 实例存储关系型数据
- 传统模式:身份认证、云存储、权限模型作为独立子系统运行;数据库默认提供文档型数据库
延伸阅读
如果你正在评估或准备使用 PostgreSQL 数据库能力,建议继续阅读 PG 模式概述,了解身份认证、云存储、权限模型如何由 PostgreSQL 统一承载,以及文档型数据库与 PostgreSQL 如何并存。
关于文档型数据库
文档型数据库在两类运行模式下都会默认初始化。PG 模式下,云开发提供文档型数据库、PostgreSQL 数据库两种数据库能力。
运行模式限制
- PG 模式仅新建环境支持,存量环境不支持升级
- 环境运行模式由创建时选择的数据库类型确定,一旦确定不可切换
- 微信云开发暂不支持创建 PG 环境——若需在微信小程序中使用 PostgreSQL,请在 腾讯云云开发控制台 创建环境时选择 PostgreSQL 数据库,并使用云开发 SDK 接入
如何判断环境的运行模式
调用 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 三类访问角色 |
数据库类型选型建议
按照下面的问题选择创建环境时的数据库类型:
- 是否需要复杂关联查询、事务一致性?
- 否,业务以 Schema-less 文档为主 → 使用默认的 文档型数据库 即可
- 是 → 进入下一题
- 是否需要行级权限控制(如多租户、SaaS)?
- 是 → 创建环境时选择 PostgreSQL 数据库即可
- 否 → 进入下一题
- 是否会用到 SQL 生态?
- 向量检索(
pgvector/vectorscale)、中文分词(zhparser/pg_jieba)、时序(TimescaleDB)、图(Apache AGE)、腾讯云 AI(tencentdb_ai)→ 创建环境时选择 PostgreSQL 数据库 - 否,仅需文档型数据存储与基础云开发能力 → 使用默认的 文档型数据库 即可
- 向量检索(
- 是否希望 AI 编码助手(Cursor / CodeBuddy / Claude Code 等)全链路闭环开发?
- 是 → 推荐创建环境时选择 PostgreSQL 数据库。权限即 SQL、RLS 同源于业务查询,AI 无需切换上下文
- 否 → 按上面的诉求决定
一个账号下的多环境
推荐按环境职责进行拆分:
- 开发环境(dev):本地联调、试验性功能
- 测试环境(staging):QA 回归、灰度验证
- 生产环境(prod):线上正式流量
不同环境之间通过环境 ID 切换,建议在客户端通过配置文件或构建变量注入,避免硬编码。
下一步
- PG 模式概述 — PG 模式深度介绍
- PostgresSQL 数据库概述
- 文档型数据库概述 — 文档型数据库入门
- 创建云开发环境