可使用 pip 安装:
$ pip install qingcloud-sdk
如果不是在 virtualenv 上安装,则需要 sudo
$ sudo pip install qingcloud-sdk
如果你已安装 qingcloud-sdk 并需要更新到最新版本,则可以:
$ pip install --upgrade qingcloud-sdk
通过源码安装:
$ git clone https://github.com/yunify/qingcloud-sdk-python.git
$ cd qingcloud-sdk-python
$ python setup.py install
使用 qingcloud-sdk 前请先在 青云控制台 申请 access key,申请后便可以自由使用了。
下面举几个例子来帮助大家快速上手,全部功能请见后面的 函数列表 。
建立连接
发起请求前要先建立连接:
>>> import qingcloud.iaas
>>> conn = qingcloud.iaas.connect_to_zone(
'pek1', # 你的资源所在的节点ID,可在控制台切换节点的地方查看,如 'pek1', 'pek2', 'gd1' 等
'access key id',
'secret access key'
)
上面代码中得到的 conn 是 APIConnection 的实例,在接下来的教程中会继续用到它。
注:如果要在私有云环境使用 SDK ,请直接实例化一个 APIConnection 对象,并传递私有云环境的 api host 及端口号。 如:
>>> from qingcloud.iaas.connection import APIConnection
>>> conn = APIConnection(
'access key id',
'secret access key'
'zone id',
host='私有云 api server 地址',
port='私有云 api server 端口号',
protocol='私有云 api server 协议',
)
APIConnection 中各操作函数的返回值是根据 API 返回的 JSON 数据转换而成的 dict 。 具体返回内容可参见 基础设施 API 文档 中对应指令。
创建主机
创建一台主机至少要提供映像ID,Instance Types 或 cpu/memory:
>>> ret = conn.run_instances(
image_id='img-xxxxxx',
cpu=1,
memory=1024,
vxnets=['vxnet-0'],
login_mode='passwd',
login_passwd='Passw0rd@()'
)
如果创建时没有指定防火墙 security_group ,则自动使用缺省防火墙。
关闭主机
当你的主机暂时不需要运行时,可将其关闭以减少费用(可同时关闭多台):
>>> ret = conn.stop_instances(
instances=['instance-id-1','instance-id-2', ...]
)
有时默认关机会失败,特别是 windows 系统,部分运行中的应用会阻止系统关机。 这时需要强制关机:
>>> ret = conn.stop_instances(
instances=['instance-id-1','instance-id-2', ...],
force=True
)
销毁主机
当你的主机确已不再需要时,可将其销毁,主机系统磁盘内的数据也会随之一起销毁:
>>> ret = conn.terminate_instances(
instances=['instance-id-1','instance-id-2', ...]
)
主机所加载的硬盘不会因主机的销毁而删除,硬盘内的数据也不会因此丢失。
获取主机
可根据主机ID,状态,主机名称,映像ID 作过滤条件,来获取主机列表。 如果不指定任何过滤条件,默认返回你所拥有的所有主机:
>>> ret = conn.describe_instances(limit=50)
>>> all_instances = ret['instance_set']
>>> ret = conn.describe_instances(status=['running'])
>>> running_instances = ret['instance_set']
>>> ret = conn.describe_instances(search_word='test')
>>> test_instances = ret['instance_set']
创建并加载硬盘
在同一个 zone 下的硬盘可加载到任何一个正在运行或处于关闭状态的主机上。
先创建一个硬盘:
>>> ret = conn.create_volumes(
size=10,
volume_name='demo vol'
)
>>> volume_id = ret['volumes'][0]
检查这个硬盘的状态:
>>> ret = conn.describe_volumes(volumes=[volume_id])
>>> volume = ret['volume_set'][0]
>>> volume.status
u'available'
创建成功后将其加载到主机:
>>> ret = conn.attach_volumes(volumes=[volume_id], instance='instance-id')
硬盘加载成功后,需要到加载的主机上进一步手动操作,具体可参考 FAQ 。
APIConnection 中包括各项资源的操作函数,简单罗列如下:
Image 映像
Instance 主机
Volume 硬盘
Nic 网卡
Snapshot 备份
KeyPair 密钥
Security Group 防火墙
Vxnet 私有网络
Router 路由器
Eip 公网IP
LB 负载均衡器
Monitor 监控
DNS Alias 内网域名别名
Spark 集群服务
Hadoop 集群服务