/dealiyun

Aliyun SDK, forked from https://github.com/willin/waliyun.git

Primary LanguageJavaScriptMIT LicenseMIT

WAliyun

forked from https://github.com/willin/waliyun

比官方SDK更好用的阿里云SDK。

Minimum, Flexible, Scalable.

支持Lazy Require。

Table of Contents generated with DocToc

安装和使用

国际惯例:

npm install waliyun --save

公共参数:

var options = {
  AccessKeyId: 'xxxx-xxxx-xxxx-xxxx',
  AccessKeySecret: 'xxxx-xxxx-xxxx-xxxx',
  // 选填,不同接口类型注意版本日期,2.0.0之后版本会带上默认版本,但可能会落后于最新,需要注意
  Version: '2014-05-26',
  // 选填
  SignatureMethod: 'HMAC-SHA1',
  Format: 'json',
  SignatureVersion: '1.0',
  // 不填,每次请求都会自动重新生成
  SignatureNonce: Math.random(),
  Timestamp: new Date().toISOString()
};

ES5:

var WALIYUN = require('waliyun');
var ecs = WALIYUN.ECS(options);
ecs.describeInstances({
  RegionId: 'cn-hangzhou'
}).then(function(instances){
  // xxxx
});

ES7:

import {ECS} from 'waliyun';
const ecs = ECS(options);
// Within Async Func
(async() => {
  const instances = await ecs.describeInstances({
    RegionId: 'cn-hangzhou'
  });
  // xxxx
});

查看接口对应版本

ES7:

import {ECS} from 'waliyun';
const ecs = ECS(options);
console.log(ecs.version());

已支持的接口

CDN

API文档参考: https://help.aliyun.com/document_detail/27155.html

移动推送 CLOUDPUSH

API文档参考: https://help.aliyun.com/document_detail/30074.html

邮件推送 DM

API文档参考: https://help.aliyun.com/document_detail/29435.html

发送示例:

const { DM } = require('waliyun');

const dm = DM({
  AccessKeyId: 'xxxx',
  AccessKeySecret: 'xxxxx'
});

dm.singleSendMail({
  AccountName: 'no-reply@xxx.com',
  ReplyToAddress: false,
  AddressType: 1,
  ToAddress: 'xxx@qq.com',
  FromAlias: '用户名',
  Subject: '注册邮件',
  HtmlBody: '<p>您的注册验证码为:1234</p>'
}).then(data => {
  console.log(data);
}).catch(err => {
  console.log(err);
});

短信服务 SMS

阿里云已停止开通原短信服务(整合在消息服务内)。新开通阿里云短信服务的用户,请参考下方的新短信服务调用示例

发送示例:

const { SMS } = require('waliyun');

const sms = SMS({
  AccessKeyId: 'xxxx',
  AccessKeySecret: 'xxxx'
});

sms.singleSendSMS({
  ParamString: '{"customer":"1234"}',
  RecNum: '13812341234',
  SignName: '您的签名',
  TemplateCode: 'SMS_77778888'
}).then(data => {
  console.log(data);
});

新短信服务 DYSMS

API文档参考: https://help.aliyun.com/document_detail/56189.html

发送示例:

const { DYSMS } = require('waliyun');

const sms = DYSMS({
  AccessKeyId: 'xxxx',
  AccessKeySecret: 'xxxx'
});

sms.sendSms({
  TemplateParam: JSON.stringify({customer: '1234'}),
  PhoneNumbers: mobileNo,
  SignName: '您的签名',
  TemplateCode: 'SMS_77778888'
})

分布式关系型数据库 DRDS

API文档参考: https://help.aliyun.com/document_detail/35276.html

云服务器 ECS

API文档参考: https://help.aliyun.com/document_detail/25485.html

ES7 示例:

import {ECS} from 'waliyun';

(async() => {
  const ces = ECS({
    AccessKeyId: 'xxxx',
    AccessKeySecret: 'xxxx',
    Version: '2014-05-26'
  });
  const data = await ces.describeInstances({
    RegionId: 'cn-hangzhou'
  });
  console.log(data.Instances.Instance);
})();

语音服务 DYVMS

API文档参考: https://help.aliyun.com/document_detail/56190.html

弹性伸缩 ESS

API文档参考: https://help.aliyun.com/document_detail/25925.html

ALIDNS

API文档参考: https://help.aliyun.com/document_detail/29739.html

HTTPDNS

API文档参考: https://help.aliyun.com/document_detail/30122.html

阿里云物联网套件 IOT

API文档参考: https://help.aliyun.com/document_detail/30557.html

ES7 示例:

import {IOT} from 'waliyun';

(async() => {
  const iot = IOT({
    Api:'https://iot.cn-shanghai.aliyuncs.com/',//可不填,默认为https://iot.aliyuncs.com/
    AccessKeyId: 'xxxx',
    AccessKeySecret: 'xxxxx',
    Version: '2016-05-30'
  });
  const data = await iot.sub({
    ProductKey: 'xxxx',
    SubCallback: 'http://xxxx:xxx/',
    'Topic.1': '/ProductKey/Topic'
  });
  console.log(data);
})();

云监控 METRICS

API文档参考: https://help.aliyun.com/document_detail/28616.html

ES7 示例:

import {METRICS} from 'waliyun';

(async() => {
  const metrics = METRICS({
    AccessKeyId: 'xxxxxx',
    AccessKeySecret: 'xxxxxx',
    Version: '2015-10-20',
    RegionId: 'cn-hangzhou'
  });
  const data = await metrics.queryMetric({
    Project: 'acs_rds',
    Metric: 'CpuUsage',
    Period: '300',
    StartTime: new Date() - 60 * 1000 * 1000,
    Dimensions: '{instanceId:\'xxxxxx\'}'
  });
  console.log(data.Datapoints);
})();

媒体转码 MTS

API文档参考: https://help.aliyun.com/document_detail/29212.html

访问控制 RAM

API文档参考: https://help.aliyun.com/document_detail/28672.html

云数据库 RDS

API文档参考: https://help.aliyun.com/document_detail/26226.html

负载均衡 SLB

API文档参考: https://help.aliyun.com/document_detail/27566.html

访问控制 STS

API文档参考: https://help.aliyun.com/document_detail/28756.html

ES5示例:

var WALIYUN = require('waliyun');
var sts = WALIYUN.STS({
  AccessKeyId: 'xxxx',
  AccessKeySecret: 'xxxx',
  Version: '2015-04-01'
});
sts.AssumeRole({
  RoleArn: 'acs:ram::xxxx:role/xxxx',
  RoleSessionName: 'xxxxx'
},'post').then(function(token){
  // xxxx
});

ES7 示例:

import {STS} from 'waliyun';

const sts = STS({
  AccessKeyId: 'xxxx',
  AccessKeySecret: 'xxxx',
  Version: '2015-04-01'
});

(async() => {
  const token = await sts.AssumeRole({
    RoleArn: 'acs:ram::xxxx:role/xxxx',
    RoleSessionName: 'xxxxx'
  },'post');
  // xxxx
})();

容器服务 CS

API文档参考: https://help.aliyun.com/document_detail/26043.html

注意,容器服务版本号停留在:2015-12-15。新版改动较为奇葩,暂不支持。

旧版本方法列表:

[
  'GetClusterList',
  'CreateCluster',
  'DeleteCluster',
  'GetClusterById',
  'GetClusterCerts',
  'UpdateClusterSizeById',
  'ListProjects',
  'CreateProject',
  'RetrieveProject',
  'StartProject',
  'StopProject',
  'UpdateProject',
  'DeleteProject'
]

CHANGELOG

v2.0.0

2016-09-06

  • 使用元编程方式进行重构,减少重复代码和Action限制;
  • 更新文档链接。

v1.0.0

2016-05-16 解决了签名偶发错误的问题。

License

MIT

通过支付宝捐赠:

qr