跳到主要内容

SDK 初始化

1. 接口描述

接口功能:初始化管理端 sdk

接口声明:

两种初始化方式

  1. 静态方法(推荐) init(object)

init 得到的实例是单例的,多次调用 CloudBase.init 只会初始化一次

  1. 构造方法 new CloudBase(object)

每次初始化都会得到一个全新的 CloudBase 实例,如果需要管理多个腾讯云账号下的云开发服务,可通过此种方式创建多个 CloudBase 实例。

注意事项:

同一腾讯云 云开发 账户对应一个类实例

⚠️ 需要提前开通云开发服务并创建环境,否则无法使用。

⚠️ 服务端环境下(非云函数环境),需要用户传入 SecretId, SecretKey(腾讯云控制台获取)

若当前账户为子账户,请先通过主账户授权开通 QcloudTCBFullAccess(云开发全读写访问), QcloudAccessForTCBRole(云开发对云资源的访问权限) 子账户权限设置指引

2. 输入参数

字段类型必填说明
secretIdstring腾讯云凭证 SecretId,secretIdsecretKey 必须同时传递,在云函数内执行可不填。前往获取
secretKeystring腾讯云凭证 SecretKey,secretIdsecretKey 必须同时传递 ,在云函数内执行可不填。前往获取
tokenstring腾讯云临时凭证 token,传递此字段时意味着使用的是临时凭证,如果显式传递临时凭证,则此参数必传
envIdstringTCB 环境 ID,不填使用默认环境 ,可在腾讯云云开发控制台获取;因为后续的很多接口依赖于环境,在未传递的情况下,需要通过 addEnvironment() 添加环境方可进行后续接口调用
proxystring调用接口时使用的 http 代理 url
regionstring指定地域,目前支持的地域列表参考,云函数环境下默认取当前云函数环境地域

3. 返回结果

字段类型必填说明
-CloudBase初始化后得到一个 CloudBase 实例

CloudBase 实例方法描述

  1. 环境相关:

    CloudBase 通过 EnvironmentManager 可管理多个 Environment 实例,存在一个当前环境的 Environment

    • getEnvironmentManager(): EnvironmentManager 获取环境管理器实例,可对多个 Environment 进行管理,存在一个当前的 Environment 对应于当前环境
    • addEnvironment(string envId): void 增加环境的实例,如果不存在当前环境,新增加的环境实例自动成为当前环境。注意,该方法不会在腾讯云 云开发 服务中创建环境,所以 envId 对应的环境需要预先存在
    • currentEnvironment(): Environment 获取当前环境 Environment 的实例
  2. 能力相关:

    能力是与环境 Environment 相关联的,所以以下函数都是获取当前 Environment 环境下的资源管理对象。

    在没有切换当前环境的情况下,对应于初始化 CloudbaseManager 时的 envId 所对应的环境。

    const app = new CloudBase({
    secretId: "Your SecretId",
    secretKey: "Your SecretKey",
    envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取
    });
    • app.functions - 获取当前环境下的 FunctionService 对象实例,通过该对象实例可以管理云函数
    • app.database - 获取当前环境下的 DatabaseService 对象实例,通过该对象实例可以管理数据库
    • app.storage - 获取当前环境下的 StorageService 对象实例,通过该对象实例可以管理文件存储
    • app.env - 获取当前环境下的 EnvService 对象实例,通过该对象实例可以管理环境

地域

指定 region 时,必须与当前环境所属地域信息一致,示例如下:

当前有上海地域的环境 env-shanghai,广州地域的环境 env-guangzhou,则正确的用法为

// 假设在上海地域 云函数下,则默认 region 为上海,信息一致
const app = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "env-shanghai"
});
// 假设在上海地域 云函数下,指定上海 region
const app = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "env-shanghai",
region: "ap-shanghai"
});
// 假设在上海地域 云函数下,同时指定广州 region 及 广州 env
const app = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "env-guangzhou",
region: "ap-guangzhou"
});
提示

当前使用的环境所属地域,必须与当前指定的地域信息一致!

4. 示例代码

通过腾讯云 API 密钥初始化,示例代码如下:

import CloudBase from "@cloudbase/manager-node";
const app = CloudBase.init({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
token: "Your SecretToken", // 使用临时凭证需要此字段
envId: "Your envId", // 云开发环境ID,可在腾讯云云开发控制台获取
proxy: "" // 支持代理设置
});

在云函数环境下,支持免密钥初始化,示例代码如下:

const app = new CloudBase({
envId: "Your envId"
});

初始化完成之后,即可使用相关功能。

// 1. 初始化 CloudBase
const app = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取
});

async function test() {
// 2. 调用云函数管理下的getFunction
let result = await app.functions.getFunctionDetail("test");
// 3. 打印结果
console.log(result);
}

test();