环境与资源管理
本文介绍如何通过腾讯云 API 管理云开发环境及其内部资源,包括环境创建与计费、云函数部署、域名配置、数据库管理以及监控与日志。
所有云开发管理 API 均可通过 云开发 API 概览 查阅,支持 Python、Java、Go、Node.js、PHP、.NET、C++、Ruby 等多语言 SDK 接入。
创建环境与计费
为新租户创建环境,并管理其计费与配额。
操作步骤
第一步:确认前置条件
创建前需通过以下接口确认账号状态与可用资源:
- 检查是否已开通云开发服务:CheckTcbService
- 查询环境个数上限:DescribeEnvLimit
- 获取可用地域列表:DescribeTcbRegions
- 获取可用套餐列表:DescribeBaasPackageList
第二步:调用 CreateEnv 创建环境
调用 CreateEnv 接口,接口会自动下单并扣款。关键参数:
| 参数 | 说明 |
|---|---|
PackageId | 套餐 ID,如 baas_personal;可通过 DescribeBaasPackageList 获取 |
Alias | 环境别名 |
Resources | 本次一并开通的资源类型,见下表 |
Period | 购买时长(月,默认 1) |
Tags | 环境标签,用于权限隔离与资源分组;建议按租户 ID、业务线打标 |
Resources 可选值:
| 取值 | 说明 |
|---|---|
flexdb | 文档型数据库(NoSQL),兼容 MongoDB 风格 API |
storage | 对象存储(云存储) |
function | 云函数(含 HTTP 云函数) |
按业务需要从上述类型中选择;其余资源(如 MySQL)可在环境创建后按需开通。
第三步:等待发货并确认状态
环境发货为异步行为,调用 DescribeEnvs 轮询,直至环境状态变为可用。确认后可进一步查询用量与计费:
- 查询环境计费信息:DescribeEnvBilling
- 查询环境配额使用量:DescribeEnvLimit
配额注意事项:COS 资源和云函数(非上海地域)均存在账号级或地域级配额上限;计划批量创建大量环境时,建议提前与云开发团队进行配额评估。
环境生命周期 API 参考
- 创建环境:CreateEnv
- 获取环境列表:DescribeEnvs
- 销毁环境:DestroyEnv
- 续费环境:RenewEnv
- 变更套餐:ModifyEnvPlan
如果你的平台需要为大量用户快速创建云开发环境(如 SaaS 多租户、C 端平台等场景),对环境创建的吞吐量和响应速度有较高要求,我们提供了环境池 API,支持预先批量创建环境并按需分配,可支撑海量云开发环境的快速创建和使用。
该能力需要联系云开发团队开白使用,请通过 云开发控制台帮助中心 或联系你的客户经理申请。
为租户部署后端服务
请求经 HTTP 访问服务 统一入口,按路由转发至对应云函数。支持 REST API、WebSocket 长连接,以及容器镜像部署。
从获取环境信息到对外可访问的完整调用流程:
操作步骤
第一步:创建日志配置
- 调用 CreateLogset 创建日志集,获取返回的
LogsetId - 调用 CreateTopic 创建日志主题,传入上一步的
LogsetId,获取返回的TopicId - 创建日志角色(用于日志投递):在 CAM 角色控制台 创建角色,选择腾讯云产品服务,角色载体选择
scf和cls,关联自定义策略(仅授予日志写入权限,防止跨环境日志越权),记录角色名称(如SCF_CLSWriteOnly),后续在配置或函数创建时使用
后续创建函数时,将 LogsetId / TopicId 作为 ClsLogsetId / ClsTopicId 传入,并将角色名称作为 Role 传入。
第二步:打包并上传代码
将函数目录打包为 ZIP 并 Base64 编码,上限 50 MB。超过时需先上传至 COS,再通过 CosBucketName / CosObjectName / CosBucketRegion 引用(桶名不含 -appid 后缀,路径以 / 开头)。
第三步:创建或更新函数
调用 CreateFunction 或 UpdateFunctionCode。必填参数:Type: 'HTTP'、Namespace(云开发环境 ID)、Handler。同时传入第一步获取的日志 配置:ClsLogsetId、ClsTopicId,以及日志角色名称 Role。WebSocket 函数额外需要 ProtocolType: 'WS',详见 WebSocket 函数。
第四步:等待函数就绪
轮询 ListFunctions 直至 Status = Active。
第五步:配置 HTTP 访问服务路由
调用 CreateHTTPServiceRoute。该接口要求传入 EnvId 与 Domain 对象;Domain 中包含域名配置与 Routes 路由规则。示例结构:
{
"EnvId": "<env-id>",
"Domain": {
"Domain": "api.example.com",
"AccessType": "DIRECT",
"Protocol": "HTTP_AND_HTTPS",
"CertId": "<cert-id>",
"Enable": true,
"Routes": [
{
"Path": "/api/v1",
"UpstreamResourceType": "<upstream-resource-type>",
"UpstreamResourceName": "<resource-name>",
"EnableSafeDomain": false,
"EnablePathTransmission": false,
"Enable": true
}
]
}
}
注意:旧 GWAPI 里的 Type 数字类 型(例如历史示例中的 6)在新接口中已经改为 UpstreamResourceType 枚举字段,不再直接写魔数;请按当前上游资源类型填写对应枚举值。官方当前示例里的云托管服务使用 "CBR"。
如仅需先创建域名信息,可只传 Domain 而不传 Routes。
第六步:确认路由已生效
调用 DescribeHTTPServiceRoute,传入 EnvId,并可结合 Filters 按 Domain、Path 精确查询。检查返回的 Domains[].Status 与 Domains[].DNSStatus:
Status = SUCCESS:配置已生效DNSStatus = SUCCESS:DNS 已生效Status = PROCESSING:仍需继续轮询
接口返回成功后,路由下发仍可能有短暂延迟,建议再通过 HTTP / HTTPS 实际探测一次。
(可选)增量维护路由
- 修改已有域名或路由:调用 ModifyHTTPServiceRoute
- 删除指定 Path 或整个域名配置:调用 DeleteHTTPServiceRoute
以上云 API 可通过 管理面 SDK commonService 统一发起;也可直接使用 腾讯云 SDK 3.0 调用云函数 API,支持 Python、Java、PHP、Go、Node.js、.NET、C++、Ruby 等多语言。