欢迎使用阿里云开发者工具套件(SDK)。阿里云Node.js SDK让您不用复杂编程即可访问云服务器、云数据库RDS、云监控等多个阿里云服务。本操作介绍如何获取阿里云Node.js SDK并开始调用。如果您在使用SDK的过程中遇上任何问题,欢迎加入阿里云官方SDK客户钉钉群 (群号:11771185) 咨询。

环境准备

  • 使用阿里云Node.js SDK,您需要一个RAM账号以及一对AccessKey ID和AccessKey Secret。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey,或联系您的系统管理员。
  • 使用阿里云SDK调用某个产品的API前,确保您已经在阿里云控制台开通了该产品。
  • 阿里云Node.js SDK适用于Node.js最近两个LTS版本(Node.js 4.x 和 Node.js 6.x)。您可以通过执行命令node -v查看Node.js的版本。

安装阿里云 Node.js SDK

完成以下操作安装Node.js SDK:
  1. GitHub下载所需产品的SDK。
  2. 安装Node.js SDK。

    建议您使用npm来完成Node.js依赖模块的安装,所有阿里云官方的Node.js SDK 都位于 @alicloud 下。

    假设Node.js SDK下载后的路径为 /path/to/aliyun-openapi-Node.js-sdk
    • 当基于SDK核心库进行开发时,请执行以下命令安装@alicloud/pop-core模块。

      命令中的--save会将模块写入应用的package.json文件中,作为依赖模块。

      $ npm install @alicloud/pop-core --save
    • 当基于具体云产品的SDK进行开发时,需安装该云产品的模块本操作以安装MNS产品的模块为例。

      $ npm install @alicloud/mns --save

调用示例

  • RPC API调用
    var RPCClient = require('@alicloud/pop-core').RPCClient;
    
    var client = new RPCClient({
      accessKeyId: '<accessKeyId>',
      secretAccessKey: '<secretAccessKey>',
      endpoint: '<endpoint>',
      apiVersion: '<apiVersion>'
    });
    
    // => returns Promise
    client.request(action, params, options);
  • REST API调用
    var ROAClient = require('@alicloud/pop-core').ROAClient;
    
    var client = new ROAClient({
      accessKeyId: '<accessKeyId>',
      accessKeySecret: '<secretAccessKey>',
      endpoint: '<endpoint>',
      apiVersion: '<apiVersion>'
    });
    
    // => returns Promise
    // request(HTTPMethod, uriPath, queries, body, headers, options);
    // options => {timeout}
    client.request('GET', '/regions');
  • 当使用具体的云产品SDK时,请参考以下示例进行调用:

    // 引入SDK
    const Client = require('@alicloud/oam');
    
    // 创建实例
    const client = new Client({
      accessKeyId: '<ACCESS_KEY_ID>',
      secretAccessKey: '<ACCESS_KEY_SECRET>',
      securityToken: '', // 支持STS
      endpoint: 'ENDPOINT'
    });
    
    // 发起调用
    // 具体API,返回Promise
    client.addRoleCellToRole({
      RoleName: "role1",
      Resource: "*:*:*:*",
      ActionList: ["Read", "Write"],
      GrantOption: 0
    }, {timeout: 10000});