天天看點

使用Python擷取ECS相關資訊

阿裡雲為很多産品提供了相關的SDK,我們可以通過調用相關的SDK來擷取相關的産品資訊.這裡展示一下如何使用Pyhton來擷取相關的ECS資訊

1.環境準備

使用SDK前我們要先準備一個RAM賬号以及一對AccessKey ID和AccessKey Secret.當然主賬号也是可以開通AccessKey ID和AccessKey Secret的,但是并不推薦這樣做.因為主賬号對賬戶擁有完全操作權限,在代碼的編寫過程中很容産生誤操作,是以建議建立一個RAM賬戶,隻給予需要的權限即可.此處不再詳細寫出如何建立RAM賬号和賦予權限,需要的朋友可以檢視阿裡雲相關文檔.

接下來就要安裝阿裡雲提供的SDK了.本人使用的是Python3.7,直接使用pip安裝即可

安裝python SDK 核心庫

pip install aliyun-python-sdk-core-v3           

安裝ECS的SDK

pip install aliyun-python-sdk-ecs           

引入相關子產品

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkecs.request.v20140526 import DescribeInstancesRequest
from aliyunsdkecs.request.v20140526 import StopInstanceRequest           

準備工作已經完成

2.使用阿裡雲SDK

使用阿裡雲的SDK主要有以下三個步驟

1.建立Client執行個體

2.建立API請求并設定請求參數

3.發送請求并處理應答或異常

為什麼要建立Client執行個體和如何建立Client執行個體呢?

當我們使用阿裡雲SDK通路相關資訊時需要擷取到相關API的服務位址,而Client執行個體就是為了擷取這個服務位址

在Python中這樣建立Client執行個體

client = AcsClient(
    "<your-access-key-id>",
    "<your-access-key-secret>",
    "<your-region-id>" 
);           

其中我們需要提供三個參數,分别是 AccessKey ID 和 AccessKey Secret 以及 Region ID,而且必須按照這樣的順序來寫,這樣才能成功擷取到對應的服務位址

其中第一個和第二個參數就是我們之前為子賬号開通的東西,第三個則是地域ID,相關的地域ID可以在阿裡雲官方文檔中找到.這樣我們就可以成功的擷取到相應的服務位址了

接下來就是建立API請求并設定請求參數代碼如下:

request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_PageSize(10)           

第一句建立了一個request對象,并且調用了類DescribeInstancesRequest中的DescribeInstancesRequest方法

在阿裡雲裡面,類的命名規則是api中對應的方法名加上一個Request.是以說我們從api文檔中找到DecribeInstances這個方法得知:

這個方法可以查詢一台或多台執行個體的資訊,并且傳回json或者xml格式的資訊

第二句設定頁的大小為10個每頁

最後我們發起請求并且列印出相關的資訊即可

response = client.do_action_with_exception(request)
print(response)
           

在python3.7中可能會傳回一些以 \x 開頭的 utf-8 編碼資料,我們可以使用decode()方法将其轉換成更加容易讀寫的方式

之後我們就可以将傳回的資訊進行處理并且輸出的表格或者進一步的開發了

以上純屬本人了解,有什麼錯誤的地方還望各位大神指正