阿里雲的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,以防須要的時候忘記!