文档首页/ 数据仓库服务 DWS/ SDK参考/ Node.js SDK调用示例
更新时间:2026-10-30 GMT+08:00

Node.js SDK调用示例

本文以调用DWS的查询规格信息(ListNodeTypes)接口为例,介绍华为云Node.js SDK的使用方法。

前提条件

  • 已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK),具体操作请参见新增访问密钥。
  • 运行SDK的环境已安装Node.js 10.16.1及以上版本。

安装SDK

在命令终端执行以下命令安装华为云Node.js SDK。以3.1.217版本的Node.js SDK为例,最新的SDK版本信息可通过SDK中心查看获取。

  • 安装单个云服务SDK包
    npm i @huaweicloud/huaweicloud-sdk-core@3.1.217 
    npm i @huaweicloud/huaweicloud-sdk-dws@3.1.217 
  • 安装云服务集合SDK包
    npm i @huaweicloud/huaweicloud-sdk-all@3.1.217

使用SDK

以下是一个完整的Node.js示例,演示如何使用华为云Node.js SDK调用查询规格信息(ListNodeTypes)接口。

  • 如果需要获取其他接口的SDK示例,请参见获取SDK示例代码。
  • 本示例中仅提供了基本的接口参数配置说明,更多的进阶配置请参见SDK的用户手册。
  • 如果把认证用的AK/SK直接写到代码中会有较大的安全风险,建议在配置文件或环境变量中以密文存放AK/SK,使用时解密,确保安全。本示例中把AK和SK保存为环境变量CLOUD_SDK_AK和CLOUD_SDK_SK,具体操作请参见环境变量。
const core = require('@huaweicloud/huaweicloud-sdk-core');
const dws = require("@huaweicloud/huaweicloud-sdk-dws/v2/public-api");


// ==================== 初始化客户端 ==================== 
// 从环境变量获取AK/SK,运行前需要提前把AK/SK设置为环境变量
const ak = process.env.CLOUD_SDK_AK;
const sk = process.env.CLOUD_SDK_SK;
const endpoint = "https://dws.af-north-1.myhuaweicloud.com";
const project_id = "8d6c92e4e2d14ae685a697adfe259256";

// 配置认证凭证 
const credentials = new core.BasicCredentials()
                     .withAk(ak)
                     .withSk(sk)
                     .withProjectId(project_id)

// 初始化客户端
const client = dws.DwsClient.newBuilder()
                            .withCredential(credentials)
                            .withEndpoint(endpoint)
                            .build();

// ==================== 构造请求对象 ==================== 
// 使用SDK中提供的Request对象封装请求参数
const request = new dws.ListNodeTypesRequest();

// ==================== 发起请求并处理响应 ==================== 
// 通过客户端调用对应API发起请求,返回Promise对象,调用成功通过then获取结果,调用失败通过catch捕获异常
const result = client.listNodeTypes(request);
result.then(result => {
    console.log("JSON.stringify(result)::" + JSON.stringify(result));
}).catch(ex => {
    console.log("exception:" + JSON.stringify(ex));
});