简介
欢迎使用腾讯云开发者工具套件(SDK),NODEJS SDK 4.0 是云 API 3.0 平台的配套工具。目前已经支持 cvm、vpc、cbs 等产品,后续所有的云服务产品都会接入进来。新版 SDK 实现了统一化,具有各个语言版本的 SDK 使用方法相同,接口调用方式相同,统一的错误码和返回包格式这些优点。
为方便 NODEJS 开发者调试和接入腾讯云产品 API,这里向您介绍适用于 NODEJS 的腾讯云开发工具包,并提供首次使用开发工具包的简单示例。让您快速获取腾讯云 NODEJS SDK 并开始调用。
依赖环境
- NODEJS 10.0.0 版本及以上
- 从腾讯云控制台 开通相应产品
- 获取 SecretID、SecretKey 以及调用地址(endpoint),endpoint 一般形式为*.tencentcloudapi.com,如 CVM 的调用地址为 cvm.tencentcloudapi.com,具体参考各产品说明。
获取安装
安装 NODEJS SDK 前,先获取安全凭证。在第一次使用云 API 之前,用户首先需要在腾讯云控制台上申请安全凭证,安全凭证包括 SecretID 和 SecretKey, SecretID 是用于标识 API 调用者的身份,SecretKey 是用于加密签名字符串和服务器端验证签名字符串的密钥。SecretKey 必须严格保管,避免泄露。
通过 Npm 安装
通过 npm 获取安装是使用 NODEJS SDK 的推荐方法,npm 是 NODEJS 的包管理工具。关于 npm 详细可参考 npm 官网 。
- 执行以下安装命令:
npm install tencentcloud-sdk-nodejs --save
- 在您的代码中引用对应模块代码,可参考示例。
- 如上引用方式会将腾讯云所有产品sdk下载到本地,可以将tencentcloud-sdk-nodejs换成tencentcloud-sdk-nodejs-cvm/cbs/vpc等,即可引用特定产品的sdk,代码中可将require("tencentcloud-sdk-nodejs")改为require("tencentcloud-sdk-nodejs-cvm/cbs/vpc"),其余不变,可参考示例,可大大节省存储空间。
通过源码包安装
- 前往 Github 仓库 或者 Gitee 仓库 下载源码压缩包。
- 解压源码包到您项目合适的位置,例如
sdk/tencentcloud-sdk-nodejs
。 - 执行
npm install ./sdk/tencentcloud-sdk-nodejs
。 - 使用
require("tencentcloud-sdk-nodejs")
的方式引入sdk,具体可参考示例。
示例
const tencentcloud = require("tencentcloud-sdk-nodejs")
const CvmClient = tencentcloud.cvm.v20170312.Client
const client = new CvmClient({
credential: {
secretId: process.env.TENCENTCLOUD_SECRET_ID,
secretKey: process.env.TENCENTCLOUD_SECRET_KEY,
},
region: "ap-shanghai",
profile: {
signMethod: "TC3-HMAC-SHA256",
httpProfile: {
reqMethod: "POST",
reqTimeout: 30,
headers: {
},
},
},
})
client.DescribeZones().then(
(data) => {
console.log(data)
},
(err) => {
console.error("error", err)
}
)
在支持 typescript 项目中,采用如下方式调用
import * as tencentcloud from "tencentcloud-sdk-nodejs"
const CvmClient = tencentcloud.cvm.v20170312.Client
实例化Client
的入参支持 clientConfig
数据结构和说明 详见 ClientConfig
Common Client
从 4.0.714 版本开始腾讯云 NODEJS SDK 支持使用泛用性的 API 调用方式(Common Client)进行请求。您只需要安装 tencentcloud-sdk-nodejs-common 包,即可向任何产品发起调用。
注意,您必须明确知道您调用的接口所需参数,否则可能会调用失败。
详细使用请参阅示例:使用 Common Client 进行调用
更多示例
更丰富的使用 demo 请在 examples 目录中寻找。
相关配置
代理
如果是有代理的环境下,需要配置代理,请在创建Client时传入 profile.httpProfile.proxy 参数,或设置系统环境变量 http_proxy
,否则可能无法正常调用,抛出连接超时的异常。
凭证管理
除显式传入凭证外,从 v4.0.506
起支持 腾讯云实例角色
在您为实例绑定角色后,您可以在实例中访问相关元数据接口获取临时凭证。用法可参考 js示例代码 或 ts示例代码
const CvmRoleCredential = require("tencentcloud-sdk-nodejs/tencentcloud/common/cvm_role_credential").default
new XxxClient({
credential: new CvmRoleCredential(),
})
旧版 SDK
我们推荐使用新版 NODEJS SDK,如果一定要用旧版 SDK,请前往github 仓库下载。
常见问题
-
webpack打包出错/浏览器报错
请务必不要将此sdk直接用于web前端(包括小程序等),暴露密钥在这些环境非常不安全。
正确的做法是在自己的服务端引用此sdk,并保存好密钥,做好请求鉴权;前端再调用服务端执行业务流程。
-
The "original" argument must be of type Function.
通常是因为nodejs版本低于 v10
,或处于非node环境,请再次确认执行环境。
-
请求不通
设置环境变量 NODE_DEBUG=http
来开启请求日志输出来定位问题,例如:
NODE_DEBUG=http node app.js
set NODE_DEBUG=http & node app.js
$env:NODE_DEBUG='http' ; node app.js
如需要配置代理,请查阅 代理,或设置环境变量 http_proxy
,例如:
http_proxy=http://代理地址:代理端口 node app.js
-
整数类型值超出 JavaScript 最大安全整数
使用新的数据类型 BigInt