简介
欢迎使用阿里云开发者工具套件(SDK)。阿里云 Node.js SDK 让您不用复杂编程即可访问云服务器、云监控等多个阿里云服务。这里向您介绍如何获取阿里云 Node.js SDK 并开始调用。
环境准备
- 阿里云 Node.js SDK 适用于 Node.js 最近两个 LTS Node.js 版本(当前 Node.js 4.x 和 Node.js 6.x)。要知道您当前环境中的 Node.js 版本,在命令行中运行命令 node -v 即可。
- 要使用阿里云 Node.js SDK,您需要一个云账号以及一对 Access Key ID 和 Access Key Secret。请在阿里云控制台中的 AccessKey管理页面 上创建和查看您的 Access Key,或者联系您的系统管理员。
- 要使用阿里云 SDK 访问某个产品的 API,您需要事先在 阿里云控制台 中开通这个产品。
SDK 获取和安装
进入
阿里云 Node.js SDK 。
请注意,部分阿里云产品的 SDK 未收录到这个列表中,例如对象存储(OSS)、表格存储(Table Store),请前往这些产品的详情页面获取相应的 SDK。
阿里云 Node.js SDK 提供两种方式来实现对云产品 API 的调用,一种是基于 SDK 核心库,一种是基于具体云产品的 SDK(
推荐)。
SDK 核心库 实现了调用云产品 API 过程中的签名细节,具体的云产品 SDK 则是在前者的基础上完善而成。
安装 SDK
Node.js 中推荐使用 npm 来完成依赖模块的安装,所有阿里云官方的 Node.js SDK 都位于 @alicloud scope 下。
当基于 SDK 核心库 进行开发时,请安装模块 @alicloud/pop-core,命令如下:
- $ npm install @alicloud/pop-core --save
上面命令中的 --save 会将模块写入应用的 package.json 文件中,作为强依赖模块。
当基于具体云产品的 SDK 进行开发时,请安装具体的模块,比如以 MNS 产品为例:
- $ npm install @alicloud/mns --save
您可以在
阿里云 Node.js SDK 列表中找到所有已经发布的 Node.js SDK,并通过 npm 命令安装。
开始使用
当基于 核心 SDK 进行开发时,需要注意云产品具有两种不同的调用风格,一种是 RPC,一种是 ROA。
RPC 风格
当某个云产品的 API 是 RPC 风格时,请使用如下示例实现调用:
- 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);
ROA 风格
当某个云产品的 API 是 ROA 风格时,请使用如下的示例实现调用:
- 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 时,请使用如下的示例进行调用:
- // 引入 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});
API 参考
要知道您想访问的产品提供的 API 以及它们的参数,请参考
开放了 API 的产品列表。