2.0.0 • Published 6 years ago

aliyun-sdk-promise v2.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

aliyun-sdk-promise

阿里云API轻量级的Promise SDK, 目前支持所有POP形式接口阿里云API。

示例见test目录

声明

阿里官方已经有了SDK,本人并不喜欢重复造轮子,但是出于以下几个目的,写了这个简单的库(称之为模块,是因为它并不满足传统意义上SDK一些基本要求),用来替代官方的SDK:

  1. 阿里云官方的SDK并不支持Promise模式,而且用现有的Promise框架,如Bluebird的内置函数promisify对官方的SDK进行Promise化也无法成功。
  2. 阿里云官方的SDK对阿里云的每个Action都做了方法映射以及参数校验。但是阿里云的产品API变动太大了,这样的设定反而限制了用户的使用,API的变动并不能立即从SDK上反应出来。

此库只是简单做了签名算法,请求完全参考阿里云API的Action定义。没有方法映射,对阿里云的API变动可以灵活处理。也没有方法参数校验,因为阿里云API本身会做一次校验,没必要做重复的工作,使用的过程中只需要对返回的错误做可读性翻译就行了。

目前支持以下产品或功能

  • 云服务器ECS
  • 云存储RDS
  • 负载均衡SLB
  • 云监控CMS
  • 权限控制(RAM和STS)
  • 弹性伸缩ESS
  • 云市场镜像查询

用法

使用的过程中,请注意RAM和STS只支持HTTPS方法,参数Protocal请设置成https

简单用法

var AliSdk, cms, ecs, ess, options, ram, rds, slb, sts, market;

AliSdk = require('../index');

options = {
  AccessKeyId: '<你的阿里云Access Key>',
  AccessKeySecret: '<你的阿里云Access Key Secret>'
};

ecs = new AliSdk.Client('ECS', options);

rds = new AliSdk.Client('RDS', options);

slb = new AliSdk.Client('SLB', options);

ess = new AliSdk.Client('ESS', options);

cms = new AliSdk.Client('CMS', options);

ram = new AliSdk.Client('RAM', options);

sts = new AliSdk.Client('STS', options);

market = new AliSdk.Client('MARKET', options);

ecs.get('DescribeInstances', {
  RegionId: 'cn-hangzhou'
}).then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

rds.get('DescribeDBInstances', {
  RegionId: 'cn-hangzhou'
}).then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

ram.get('ListUsers').then(function(body) {
  return console.log(body.Users.User);
}).catch(function(err) {
  return console.log(err);
});

slb.get('DescribeLoadBalancers', {
  RegionId: 'cn-hangzhou'
}).then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

ess.get('DescribeScalingGroups', {
  RegionId: 'cn-hangzhou'
}).then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

market.get('queryMarketCategories')
.then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

market.get('queryMarketImages', {
  Param: {
    Region: 'cn-hangzhou',
    ImagePurchaseType: 'Package',
    CategoryCode: 'market_category',
    CategoryId: 10001
  }
}).then(function(body) {
  return console.log(body);
}).catch(function(err) {
  return console.log(err);
});

阿里云资源编排

请使用 aliyun-ros

其他用法

Coming soon...

2.0.0

6 years ago

1.1.14

8 years ago

1.1.13

8 years ago

1.1.12

8 years ago

1.1.11

8 years ago

1.0.11

8 years ago

1.0.10

8 years ago

1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago