阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 19240阅读
  • 16回复

漫游ECS API,玩转ECS API

发帖
1463
云币
1473
— 本帖被 夜之魅 从 云服务器ECS 移动到本区(2014-09-09) —
(本文转自阿里产品博客http://blog.aliyun.com/210?spm=0.0.0.0.7jdfno :\[F=  
X DX_c@U  
ECS API已经于4月3日进行了一次重大更新。除了原有的基础管理功能如实例管理、安全组管理之外,此次又开放了如下的功能: it,%T)2H  
  1. 创建按量付费的服务器实例
  2. 创建磁盘、快照和镜像等资源
  3. 接入了RAM资源授权服务,支持账号之间的资源授权
38#(ruv  
+G~b-}  
接下来,我们开始漫游体验ECS API的新功能,完成以下三个任务:
  1. 配置环境
  2. 创建一个实例
  3. 创建快照和自定义镜像
X[w9~t$\  
,rd+ dN  
一、配置环境 L*Y}pO  
我们使用一个简单的python脚本来体验ECS的功能,你不需要懂得如何编写python代码,只要完成四个简单的准备任务:
  1. 安装好python环境,需要python 2.7版本
  2. 下载ecs.py这个小脚本, 通过简单的命令行操作,来调用ECS的API
  3. 获取你的阿里云账号的accesskeyid/accesskeysecret密钥对
  4. 下载ECS API文档
h^s}8y  
/sai}r 1  
第一步,请安装python 2.7版本。Windows/Linux/MacOS等操作系统中如何安装本文不再描述。 |'.SOm9)*  
/~yqZD<O  
第二步,从这里的链接https://aliyunecs.oss.aliyuncs.com/tools/ecs.py 下载地址下载ecs.py脚本,在windows下打开终端命令行工具来执行命令,在linux和mac下使用终端来执行。接下来,我们以linux为例,在终端里执行 im' 0^  
$ chmod +x ./ecs.py 4-m%[D |W  
加上执行权限后使用更加方便。 $W09nz9?  
xQ[YQ!l  
第三步,访问http://i.aliyun.com/access_key,点击“创建AccessKey”创建一个accesskeyid/accesskeysecret密钥对。请保存这个密钥对,这是非常重要敏感的信息,绝不能泄漏。 WC4Il C  
接下来,在终端中直接执行ecs.py这个脚本,可以看到它的帮助信息,我们首先需要将刚刚获取到的密钥对配置好。使用以下命令来进行配置: |J\/U,nh  
$./ecs.py config --id=<access key id> --secret=<access key secret> hYV{N7$U|  
配置完成后,可以执行列出可用地域(Region)命令来验证是否配置成功: WO{N@f^  
$./ecs.py DescribeRegions [bp"U*!9P  
如果配置的密钥对没有问题,那么这个命令会输出一个json格式的结果,包含了杭州(cn-hangzhou)和青岛(cn-qingdao)两个地域的信息。 L.R  
=$'Zmb [D  
第四步,从http://help.aliyun.com/list/11113464.html下载ECS API文档,作为后续使用的参考。 *w _j;  
6/z}-;,W'  
二、创建实例 O[]+v  
前置条件:要创建按量付费的云服务器,您的账户余额必须至少有100元的现金。接下来我们完成以下任务:
  1. 创建一个安全组
  2. 创建一个云服务器实例
  3. 分配公网IP地址
  4. 增加一块磁盘
  5. 启动新创建的实例
1$|z%(  
(3-G<E  
1. 创建安全组 f 6q@  
ECS的每个实例至少要归属到一个安全组中,所谓的安全组,是由同一个地域内具有相同安全保护需求并相互信任的实例组成。加入到同一个安全组的实例彼此之间是互相信任的,安全组的防火墙规则对他们都生效。 \yy!?UlaI  
$ ./ecs.py CreateSecurityGroup description="Test-API" regionid=cn-qingdao n0m9|T&  
e\h:==f  
如果没有报错,输出结果类似以下,就是执行成功了。 :!/}*B  
{ 3.jwOFH$  
"RequestId": "7472C411-08E9-41C7-A20B-BA33E2AA5E7B", 56 )B/0=  
"SecurityGroupId": "G69d5027e-85e4-45cb-a6a5-c1a4de77fab8" VTHDGBU  
} [9L(4F20  
^_oLhNoez2  
2. 创建实例 vhg4E80Kr  
创建实例前,有几个选择要做:1)创建到哪个地域?2)选择什么配置 3)使用哪个镜像?4)加入到哪个安全组? 5)是否需要公网带宽?使用固定带宽还是按流量付费?6)设置Root密码 saZ ;ixV  
本次的API只能用于创建按量付费的云服务器实例,对一些限制可以在http://help.aliyun.com/view/11108189_13545434.html看到具体的信息。 0'~ ?u'  
;?cUF78#  
我们将在青岛地域创建一个ecs.s2.small(2CPU 2GB内存) 的云服务器实例,选择ubuntu12.04操作系统,加入到刚刚创建的安全组,选择按流量付费的方式,最大容许10Mbps的公网带宽。命令如下: \-B>']:R4  
$./ecs.py CreateInstance RegionId=cn-qingdao mZ5UaSG  
InstanceType=ecs.s2.small |amEuKJ  
ImageId=ubuntu1204_64_20G_security_v01.vhd jPd<h{js  
InternetChargeType=PayByTraffic LU]~d< i99  
InternetMaxBandwidthOut=10 Y~CS2%j  
SecurityGroupId=刚刚创建的安全组ID  2AluH8X/  
InstanceName=api-test VjnSi  
Password=your-password K{iYp4pU  
.UDZW*  
命令执行后,如果没有报错,会有类似如下的json结果输出,代表执行成功: s.~SV"  
{ 9GEcs(A*  
"InstanceId": "AY140404124925248f45", r B)WHx<  
"RequestId": "024E0224-8B12-4099-897E-F717CF43332C", 5x: XXj"  
} {> }U>V  
此时,实例已经创建成功,想查看它的属性,执行 u-W=~EO5#  
$./ecs.py DescribeInstanceAttribute InstanceId=刚创建成功的实例ID Ns $PS\  
DXiD>1(q  
可以看到它的Status是Stopped状态,我们还需要再进行一些配置才会启动实例。 aT0 y  
VMHY.Rf  
3.分配公网IP地址 :Y'nye3:  
我们刚创建好的实例是不包含IP地址的,想要增加公网IP地址,请执行命令: @!S$gTz  
$./ecs.py AllocatePublicIpAddress InstanceId=刚创建成功的实例ID '=2t(@aC  
V+8+ 17^  
输出如下则为成功 (y36NH+  
{ uqnZ  
"IpAddress": "42.96.194.117", `Ctj]t  
"RequestId": "46C20C19-93E8-4CCE-853C-5F26241A7EDA" KV6S-  
} 3l^pY18H'  
n5 i}J/Sa2  
4. 增加一块数据盘 1Y`MJ \9  
刚刚创建的云服务器是没有数据盘的,我们调用AddDisk这个命令增加一块100GB的数据盘: BE2{qO{  
$./ecs.py AddDisk InstanceId=刚创建成功的实例ID Size=100 {\e}43^9N  
{ Q4x71*vy  
"DiskId": "6002-20107932", cBA[D~s  
"RequestId": "5E859722-D05A-4FE2-B7B1-F1F20FA10C12" ieI-_]|[  
} fP|\1Y?CS  
=VU2#O  
5. 启动实例 pGFocw  
这个时候,我们可以启动实例,执行: 7jPmI  
$./ecs.py StartInstance InstanceId=刚刚创建成功的实例ID +R_U  
{ -FI1$  
"RequestId": "09F57060-739C-409F-9907-78FECEC33E46" c"xaN  
} :NL NxK  
没有消息就是好消息,这个时候,再调用DescribeInstanceAttribute就可以看到实例的Status是Starting,几分钟后,实例会启动好,可以SSH远程连接或者通过控制台的“连接管理终端”连接上去。 `et<Z  
W@tLT[}CG  
j;3o9!.s:  
三、创建快照和自定义镜像 D.!4i.)8}  
快照是一个磁盘上的数据在某一个时间点的拷贝。自定义镜像是实例可选择的运行环境模板,一般包括操作系统和预装的软件。只有系统盘的快照可以制作成自定义镜像。 9V&LJhDQ  
~I<y^]2{  
首先使用DescribeInstnaceDisks这个API查看系统盘的ID: IFY !3^;zO  
$./ecs.py DescribeInstanceDisks InstanceId=刚创建成功的实例ID lySaJ d  
&<V~s/n=6?  
如果你按照第二步中的步骤执行,那么输出结果中应当有两块磁盘,其中Type标识为System的就是系统盘。 U*@_T3N  
用以下命令创建系统盘的快照: $W]bw#NH  
$./ecs.py CreateSnapshot InstanceId=刚创建成功的实例ID DiskId=系统盘的ID SnapshotName=my-sys-snapshot [OcD#~drO  
55,-1tWs  
创建成功后会输出SnapshotID。快照的生成过程需要一些时间,你可以通过下面的命令查看快照的进度: #t O!3=0  
$./ecs.py DescribeSnapshotAttribute RegionId=cn-qingdao SnapshotId=刚刚创建的SnapshotId 4pqZ!@45|  
{ zvD5i,I  
"CreationTime": "2014-04-04T05:39Z", <Va>5R_d<  
"Progress": "73", To`?<]8  
"RequestId": "783D64E0-5193-433A-9615-26390783DE68", hd~rC*I  
"SnapshotId": "6002-20107931-4969987", c'2ra/?k  
"SnapshotName": "my-sys-snapshot" [7V]=] p  
} yKJ^hv"#  
其中的Progress即为进度的百分比。 q4{tH  
当Progress达到100时,就可以使用这个快照来创建自定义镜像了。使用以下的命令来创建自定义镜像: : +Kesa:E  
$./ecs.py CreateImage RegionId=cn-qingdao SnapshotId=创建成功的SnapshotId Description=my-image WQx;tX  
{ GN0'-z6Uy  
"ImageId": "md5079e28-3b58-48eb-af0a-3da8dcbe56be.vhd", 9YABr> ?  
"RequestId": "F7E07872-2859-4D50-A223-FEE748DBCFB4" mxGN[ %ve  
} e=jO_[  
此时,这个新的ImageId,就可以用于创建新的实例了。 BP$#a #  
]Ho`*$dD  
我们的漫游到此就结束了。你还可以更进一步,对照API文档,完成以下的任务:
  1. 查看所有可用的镜像:DescribeImages
  2. 列出安全组(DescribeSecurityGroups),并且为安全组加一个授权规则(AuthorizeSecurityGroups),只容许公网的22和80端口来访问实例
  3. 试试快照和磁盘的其他功能
Y>~JI;Cu`  
CCOg1X_  
如果你想自己去编写代码调用ECS API,那么这个链接里的内容,可以帮你简化签名加密的工作http://dev.aliyun.com/read/42.html?,可以找到Java/PHP/C#/Python的示例代码。 @{uc  
1tW:(~ =a;  
阿里云产品团队 ^%pwyY\t  
^q\zC%.  
&v,p_'k  
(ECS API技术文档资料下载请访问阿里云帮助中心:http://help.aliyun.com/list/11113464.html;ECS API 4月3日发布公告详情见帖子http://bbs.aliyun.com/read/155478.html?spm=5176.383338.23.1.pgaxUI A]$+ `uS\  
=L%3q<]p  
03@| dN  
[ 此帖被qilu在2014-06-20 15:58重新编辑 ]
本帖最近评分记录: 1 条评分 云币 +1
林林林林 云币 +1 欢迎进行技术分享,感谢你的支持! 2014-07-09
级别: 菜鸟
发帖
34
云币
3
只看该作者 沙发  发表于: 2014-04-11
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
好东西,必须要顶!
发帖
44
云币
44
只看该作者 板凳  发表于: 2014-04-11
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
绝对好东西,收藏之
级别: 小白
发帖
22
云币
22
只看该作者 地板  发表于: 2014-04-11
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
赞 一个 好东西 顶
级别: 小白
发帖
6
云币
7
只看该作者 4楼 发表于: 2014-04-11
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
好东西,收藏了,真是利国利民
级别: 科学怪人
发帖
9441
云币
14683
只看该作者 5楼 发表于: 2014-04-11
这个要学习下
级别: 程序猿
发帖
294
云币
40
只看该作者 6楼 发表于: 2014-04-12
了解一下
级别: 菜鸟
发帖
42
云币
42
只看该作者 7楼 发表于: 2014-06-05
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
技术贴 前排支持
级别: 科学怪人
发帖
9985
云币
21878

只看该作者 8楼 发表于: 2014-06-05
API没用过,保持关注!
发帖
1463
云币
1473
只看该作者 9楼 发表于: 2014-06-05
回 8楼(kideny) 的帖子
级别: 小白
发帖
9
云币
6
只看该作者 10楼 发表于: 2014-06-08
Re漫游ECSAPI,玩转ECSAPI(转自阿里云产品博客)
加入群【阿里云ECS API群】:59727016
发帖
44
云币
44
只看该作者 11楼 发表于: 2014-06-10
级别: 技术砖家
发帖
1925
云币
3578
只看该作者 12楼 发表于: 2014-07-09
欢迎进行技术分享,感谢你的支持!
级别: 码农
发帖
131
云币
154
只看该作者 13楼 发表于: 2014-07-14
Re漫游ECSAPI,玩转ECSAPI
好东西,有了这个东西,用户的选择就多了,自动化就成了可能。问题就是费用,和包月比,贵很多。
级别: 荣誉会员
发帖
173
云币
152
只看该作者 14楼 发表于: 2014-07-15
必须学习下,不然落后了
发表主题 回复主题
« 返回列表
«12»
共2页
上一主题下一主题

限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
验证问题: 10 + 2 = ?
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)