阿里云的RDS自带的监控系统获取数据不怎么直观,想要经过API获取数据经过zabbix显示,由于网上资料缺少和其余一些缘由,获取API签名很困难,但使用阿里云的SDK能够完美避开获取签名的步骤。html
阿里云SDK是什么?python
SDK是阿里云为用户提供的开发工具,支持JAVA、PHP、C#等几种不一样的语言,这里是用Python写的。在Python SDK里提供了一些模块,咱们经过调用这些模块、传入一些必要的参数能够简单的实现数据的获取。git
阿里云的sdk就是不少的库文件,这里咱们只须要两个库文件,一个核心库sdk-core和rds库sdk-rds。github
下载地址:https://github.com/aliyun/aliyun-openapi-python-sdkapi
进入sdk-rds所在的目录运行安装命令:python setup.py installbash
若出现这个,是setuptools工具没安装,下载安装就能够工具
import setuptools开发工具
ImportError: No module named setuptoolsui
# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz # tar -xvf setuptools-0.6c11.tar.gz # cd setuptools-0.6c11 # python setup.py build # python setup.py install # ls -l /usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg
再次进入aliyun-python-sdk-rds目录,执行python setup.py install,一样进入aliyun-python-sdk-core,执行python setup.py install安装。阿里云
这时咱们已经装好了阿里云sdk库环境
在aliyun-python-sdk-rds/aliyunsdkrds/request/v20140815路径下有大量的sdk-rds api库文件,咱们调用这里的库文件来查找其须要的参数的设置方法和发送请求。
调用阿里云的sdk分为三个步骤:
举个例子:
我想查看rds实例的资源使用状况。查看阿里云文档得知,其请求参数有两个:Action :DescribeResourceUsage和DBInstanceId:实例名。
咱们进入aliyun-python-sdk-rds/aliyunsdkrds/request/v20140815下的DescribeResourceUsageRequest.py库查看DBInstanceId的设置方法为set_DBInstanceId。
因而咱们建立请求并设置参数set_DBInstanceId:
request = DescribeResourceUsageRequest.DescribeResourceUsageRequest() request.set_DBInstanceId('rm-bpXXXXXXXX')
而后建立rds实例的AcsClient对象。
client = AcsClient( AcesskeyID, AcesskeySecret, regionid)
最后在经过do_action_with_exception发送请求
client.do_action_with_exception(request)
完整代码以下:
#!/usr/bin/python #encoding=utf-8 from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkrds.request.v20140815 import DescribeResourceUsageRequest AcesskeyID = 'XXXXXXXXXXXXX' AcesskeySecret = 'XXXXXXXXXXXXXXXXXX' regionid = ‘XXXXXXXXXXX’ client = AcsClient( AcesskeySecret, regionid) request = DescribeResourceUsageRequest.DescribeResourceUsageRequest() request.set_DBInstanceId('rm-bp1XXXXXXXXXXXXX') response = client.do_action_with_exception(request) print response ~
感谢咱们的老司机城管哥的指导!!!
OVER
Mark,以防须要的时候忘记!