阿里云API教程:使用CLI便捷管理您的阿里云资源
除了官网控制台,阿里云各产品也提供API的方式操作资源。在一个开发人员看来,API的方式更能细粒度的控制云服务的各种行为,更不用说API的功能集合是各种可视化工具的超集,例如:ECS的安全组(SecurityGroup)管理,控制台并没有提供这一组功能的,用户如果想控制安全组,则需要手动调用API。
但很不幸的是Aliyun API的开放时间比较晚,且没有“顺手”的CLI工具。这里向大家介绍一个命令行工具SmartCLI,可以供您方便的调用Aliyun API。Plus,该命令行工具还能记忆您的运行结果,为您进一步操作提供辅助提示。
开始之前请确保您的手边有ECS API参考手册(help.aliyun.com/view/11108189_13555701.html),并提前阅读该手册以便对Aliyun API的格式有一定的了解。
功能亮点
1,解压即可用
跟AWS的Python版的CLI不同,SmartCLI是用C/C++写成的,各操作系统原生支持。不需要预装JRE、.NET Framework、Python等运行时,直接下载/解压便可运行。
2,便捷输入
根据当前的输入场景自动补齐命令行,除了空格“ ”和等号“=”作为分隔命令行的特殊字符需要手动输入外,其余关键字均可提示输入。空格“ ”的作用是分隔Key=Value参数对,等号“=”的作用是分隔Key和Value。
“Tab”键会根据当前输入的前缀自动补齐剩余部分,例如:输入“Ec”,命令行会自动补齐为“Ecs”。
“↑↓”和“Tab”键配合使用会在所有的选项中来回切换,当输入“Tab”键出现的提示不是想要的结果时,再输入“↑“或者”↓“在所有符合条件的结果中切换。其他情况下,使用“↑“会返回上一条历史命令,使用”↓“时会返回下一条历史命令。
3,跨平台支持
虽然SmartCLI是用C/C++写成,但是为了保持跨平台的特性,所有的代码均尽力保持标准C/C++的特点。目前Windows版本的SmartCLI已经测试多时,Linux版本的SmartCLI后续会放出。
4,智能提示
好的API应该是自描述的,Aliyun API提供很多Describe类的接口,这些接口为进一步动作提供了输入参数。SmartCLI会智能的记忆所有命令的输出结果,根据配置的”兴趣“项记忆输出结果。当用户下次需要使用前面出现的参数时,只需使用“↑↓”键便可选择前面已经出现过的参数。例如:
查询实例状态接口(DescribeInstanceStatus)需要输入的RegionId,CreateInstance接口需要输入的InstanceType等字段可以通过预先DescribeRegions、DescribeInstanceType等接口查询。
而CreateInstance返回的InstanceId又可以作为StartInstance的输入参数,只需要输入”=“后按”Tab“键,命令行会自动补齐上一个出现的InstanceId。
如何使用SmartCLI
1,UTF-8的显示问题
默认情况下,Windows下的CMD中显示中文是乱码的,但是Aliyun API的”DescribeRegions“接口是会返回中文的。解决方法是双击ZIP文件夹中的”winconsole.reg“,该文件会自动更改CMD的编码方式是65001,显示字体为"Lucida Console"。
2,ZIP中的各文件
config.xml:存储公共参数,运行前需要用户手动填入自己账户的Key和Secret,关于如何取得Key和Secret请咨询阿里云客服。
params.xml:各产品API描述文件,可以手动修改添加其他阿里云产品的支持,例如:SLB和RDS等。
run.bat :Windows版程序入口,自动修改命令行编码和命令行长度。
3,命令格式
双击“run.bat”,进入命令行输入状态,可以直接键入“Tab”,也可以手动输入相应的API接口名,命令行的格式如下:
[阿里云产品名] [动作名] [动作参数]
注意:
产品名、动作名、参数名和值均遵循Aliyun的接入规范。
参数名和参数值以“=”连接,中间没有空格“ ”。
3,内建命令
“exit”退出命令行,“clear”清除SmartCLI自动记忆的参数值,“reload”重新加载API描述文件“params.xml”。
已知问题
1,不支持中文输入,暂不支持“Home”、“End”等特殊字符,支持“Backspace”、方向键。
2,除了ErrorResponse,正常调用的返回值没有格式化,直接打印。
3,params.xml保存产品API描述,可以手动扩展,但未测试ECS之外的其他产品。
4,在Windows 7 64位和Windows 7 32位系统下测试通过,Linux和Mac版本后续放出。
5,个人能力有限,很多场景未进行测试,期待各位指出问题,后续改进。
SmartCLI的做成纯属个人兴趣,该工具完全遵守Aliyun的接入规范。选择C/C++的原因是Java、Python无法达到某些特性的需求,SmartCLI没有任何恶意代码,用户可以通过防火墙监控SmartCLI的运行过程
SmartCLI for Windows下载地址:SmartCLI for Windows
SmartCLI for Windows下载地址:SmartCLI for Windows