初始化
@Cloudbase/node-sdk 让您可以在服务端(如腾讯云云函数或 云主机 等)使用 Node.js 服务访问 TCB 的服务,如云函数调用,文件上传下载,数据库集合文档操作等,方便快速搭建应用。
注意:从 v3 版本开始,如在初始化
init({})未指定env参数,则默认使用当前云函数环境 ID,不再使用云开发默认环境。如需要使用云开发默认环境,可以指定init({env: tcb.SYMBOL_DEFAULT_ENV})。
安装 SDK
# npm
npm install @cloudbase/node-sdk -S
# yarn
yarn add @cloudbase/node-sdk
初始化
import tcb from '@cloudbase/node-sdk'
// 云函数环境使用commonjs引入方式
// const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({
  env: 'your-env-id'
})
接口描述
接口功能:SDK 实例初始化
接口声明:init: (config?: ICloudBaseConfig): CloudBase
输入参数
| 字段 | 类型 | 必填 | 说明 | 
|---|---|---|---|
secretId | string | 否 | 腾讯云 API 固定密钥对 secretId,在云函数内执行可不填。前往控制台获取 | 
secretKey | string | 否 | 腾讯云 API 固定密钥对 secretKey,在云函数内执行可不填。前往控制台获取 | 
sessionToken | string | 否 | 腾讯云 API 临时密钥对 Token,临时凭证需通过 sts.AssumeRole 接口获取临时访问凭证 查看文档 | 
env | string | 否 | TCB 环境 ID。如果 SDK 运行在 TCB云函数 环境下,默认使用函数所在环境的环境ID,运行在其他环境缺省该参数则会使用默认境 | 
timeout | number | 否 | 调用接口的超时时间(ms),默认为 15000ms,即 15s | 
proxy | string | 否 | 调用接口时使用的 http 代理 url | 
credentials | object | 否 | Cloudbase 私钥,包含 private_key 和 private_key_id 两个字符串,可以登录云开发控制台获取 | 
version | string | 否 | 版本号,依赖项目的版本号 | 
函数型云托管中可通过以下参数初始化 SDK 实现免签名调用:
| 字段 | 类型 | 必填 | 说明 | 
|---|---|---|---|
context | Context | 否 | 函数型云托管 入口函数 context 参数 | 
如果传入了 context 参数,但是是没有 env 参数,则会使用 context 中的 envID 参数作为 环境ID。
示例代码
import tcb from '@cloudbase/node-sdk'
// 初始化,云函数下可省略 secretId 和 secretKey,env 如果不指定则使用当前函数所在环境的环境ID
const app = tcb.init()
const app = tcb.init({env: 'xxx'})
const app = tcb.init({
  secretId: 'xxxxx',
  secretKey: 'xxxx',
  sessionToken: 'xxxx',
  env: 'xxx'
})
// 设置请求超时时间
const app = tcb.init({
  timeout: 5000
})
// 初始化环境'xx'和'zz'
const app1 = tcb.init({env: 'xx'})
const app2 = tcb.init({env: 'zz'})
函数型云托管中初始化SDK并调用
import tcb from '@cloudbase/node-sdk'
exports.main = async (event, context) => {
  const { httpContext } = context
  const { url, httpMethod } = httpContext
  console.log(`[${httpMethod}][${url}]`)
  const tcbapp = tcb.init({ context })
  const result = await tcbapp.callFunction({
    name: 'helloworld',
    // 函数型云托管 参数
    type: 'cloudrun',
    method: 'POST',
    path: '/abc',
    data: {
      key1: 'test value 1',
      key2: 'test value 2'
    },
    {
      timeout: 5000
    }
  })
  console.log(result)
  // 其他业务逻辑,例如:
  //   调用容器
  //   调用数据库
  //   调用云存储
}