跳到主要内容

云开发环境介绍

云开发环境(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 三类访问角色

数据库类型选型建议

按照下面的问题选择创建环境时的数据库类型:

  1. 是否需要复杂关联查询、事务一致性?
    • 否,业务以 Schema-less 文档为主 → 使用默认的 文档型数据库 即可
    • 是 → 进入下一题
  2. 是否需要行级权限控制(如多租户、SaaS)?
    • 是 → 创建环境时选择 PostgreSQL 数据库即可
    • 否 → 进入下一题
  3. 是否会用到 SQL 生态?
    • 向量检索(pgvector / vectorscale)、中文分词(zhparser / pg_jieba)、时序(TimescaleDB)、图(Apache AGE)、腾讯云 AI(tencentdb_ai)→ 创建环境时选择 PostgreSQL 数据库
    • 否,仅需文档型数据存储与基础云开发能力 → 使用默认的 文档型数据库 即可
  4. 是否希望 AI 编码助手(Cursor / CodeBuddy / Claude Code 等)全链路闭环开发?
    • 是 → 推荐创建环境时选择 PostgreSQL 数据库。权限即 SQL、RLS 同源于业务查询,AI 无需切换上下文
    • 否 → 按上面的诉求决定

一个账号下的多环境

推荐按环境职责进行拆分:

  • 开发环境(dev):本地联调、试验性功能
  • 测试环境(staging):QA 回归、灰度验证
  • 生产环境(prod):线上正式流量

不同环境之间通过环境 ID 切换,建议在客户端通过配置文件或构建变量注入,避免硬编码。

下一步