aws cli 是AWS 服务的统一管理工具,其基于python开发,是在boto基础上的增强和封装 。其提供了我们一种类似于操作linux命令一样的方式操作aws 的全系统产品资源。本篇就结合aws cli 的安装、示例、及官方手册相关的东西做一个整个和打包。

一、aws cli 的安装

安装方式分为 pip 自动安装 或 源码包安装,pip 安装相对简单:

1# sudo pip install awscli

源码包安装方式是将aws cli 包下载并解压后,进入其目录通过install 完成安装,其在github的托管页面为:https://github.com/aws/aws-cli ,下载好源码包后,可以通过下面的方式进行安装:

1# cd 
2# python setup.py install

有新版本需要做升级操作时,也可以通过下面的方式进行升级:

1# pip install --upgrade awscli

二、aws cli 主机环境变量

可以在任一台能连接外网的主机上安装完aws cli 包,并且在该上配置好环境变量,就可以操作线上账号下的所有机器资源了。环境变量的配置也很简单 ,主要有三项,如下:

1# vim ~/.aws/config
2[default]
3aws_access_key_id=<default access key>
4aws_secret_access_key=<default secret key>
5region=ap-southeast-1

注:
1、在windows下的配置文件路径为%UserProfile%.awsconfig 。
2、在环境变量中还可以配置其他参数,或多个区域实例,具体可以参看github上的帮助文档。

三、使用

默认情况下aws命令接受的输入和输出格式数据格式都是json格式,不过也可以通过参数,指定输出的为table表格式或text文件格式,具体可以使用aws help查看帮助手册。默认aws cli 的包文件存放路径为 /usr/local/lib/python2.7/dist-packages/awscli ,也可以进该目录下的examples 查看帮助。

以ec2下的两个用法为例

简单用法:

 1# aws ec2 describe-regions
 2{
 3    "Regions": [
 4        {
 5            "Endpoint": "ec2.eu-west-1.amazonaws.com",
 6            "RegionName": "eu-west-1"
 7        },
 8        {
 9            "Endpoint": "ec2.sa-east-1.amazonaws.com",
10            "RegionName": "sa-east-1"
11        },
12        {
13            "Endpoint": "ec2.us-east-1.amazonaws.com",
14            "RegionName": "us-east-1"
15        },
16        {
17            "Endpoint": "ec2.ap-northeast-1.amazonaws.com",
18            "RegionName": "ap-northeast-1"
19        },
20        {
21            "Endpoint": "ec2.us-west-2.amazonaws.com",
22            "RegionName": "us-west-2"
23        },
24        {
25            "Endpoint": "ec2.us-west-1.amazonaws.com",
26            "RegionName": "us-west-1"
27        },
28        {
29            "Endpoint": "ec2.ap-southeast-1.amazonaws.com",
30            "RegionName": "ap-southeast-1"
31        },
32        {
33            "Endpoint": "ec2.ap-southeast-2.amazonaws.com",
34            "RegionName": "ap-southeast-2"
35        }
36    ]
37}

复杂用法:

 1# aws ec2 describe-tags  --filters "Name=key,Values=Name"  --output=table
 2-----------------------------------------------------------------------------
 3|                               DescribeTags                                |
 4+---------------------------------------------------------------------------+
 5||                                  Tags                                   ||
 6|+------+--------------+-----------------+---------------------------------+|
 7||  Key | ResourceId   |  ResourceType   |              Value              ||
 8|+------+--------------+-----------------+---------------------------------+|
 9||  Name|  i-a092e7f6  |  instance       |  AMZ-SIN-SpringBoard-255-13     ||
10||  Name|  i-680bbe40  |  instance       |  AMZ-SIN-Eve-2-20               ||
11||  Name|  i-983360cf  |  instance       |  VPN                            ||
12||  Name|  i-d3360084  |  instance       |  BS                             ||
13||  Name|  i-5e613208  |  instance       |  UA                             ||
14||  Name|  i-a3d6088b  |  instance       |  AMZ-SIN-FacebookWallE-0-10     ||
15||  Name|  i-02391d54  |  instance       |  AMZ-SIN-VPCGateway-255-254     ||
16||  Name|  i-908a3cb8  |  instance       |  AMZ-SIN-Deploy-255-40          ||
17||  Name|  i-317ad719  |  instance       |  AMZ-SIN-LBSMaster-254-201      ||
18||  Name|  i-c454ecec  |  instance       |  AMZ-SIN-MobileContent-1-21     ||
19||  Name|  i-efe329c7  |  instance       |  AMZ-SIN-Test-255-203           ||
20||  Name|  i-312aa619  |  instance       |  AMZ-SIN-IPS-5-10               ||
21||  Name|  i-1725ab41  |  instance       |  BS1                            ||
22||  Name|  i-6cb5ef3a  |  instance       |  BS3                            ||
23|+------+--------------+-----------------+---------------------------------+|

其他命令也较多,如 aws iam list-users 查看用户信息。由于命令比较多,这里就不再一一列举。官方的pdf手册我已上传到百度云盘

中文用户指面

英文命令手册