初始化
@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)
// 其他业务逻辑,例如:
// 调用容器
// 调用数据库
// 调用云存储
}