跳到主要内容

初始化

NPM Version node (scoped)

@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

输入参数

字段类型必填说明
secretIdstring腾讯云 API 固定密钥对 secretId,在云函数内执行可不填。前往控制台获取
secretKeystring腾讯云 API 固定密钥对 secretKey,在云函数内执行可不填。前往控制台获取
sessionTokenstring腾讯云 API 临时密钥对 Token,临时凭证需通过 sts.AssumeRole 接口获取临时访问凭证 查看文档
envstringTCB 环境 ID。如果 SDK 运行在 TCB云函数 环境下,默认使用函数所在环境的环境ID,运行在其他环境缺省该参数则会使用默认境
timeoutnumber调用接口的超时时间(ms),默认为 15000ms,即 15s
proxystring调用接口时使用的 http 代理 url
credentialsobjectCloudbase 私钥,包含 private_keyprivate_key_id 两个字符串,可以登录云开发控制台获取
versionstring版本号,依赖项目的版本号

函数型云托管中可通过以下参数初始化 SDK 实现免签名调用:

字段类型必填说明
contextContext函数型云托管 入口函数 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)

// 其他业务逻辑,例如:
// 调用容器
// 调用数据库
// 调用云存储
}