Pythonを使用してECS関連情報を取得

2448 ワード

アリクラウドは多くの製品に関連するSDKを提供しており、関連するSDKを呼び出すことで関連する製品情報を取得することができる.ここではPyhtonを用いて関連するECS情報を取得する方法を示します
1.環境準備
SDKを使用する前に、RAMアカウントとアクセスキーIDとアクセスキーのペアを用意します.もちろんメインアカウントもアクセスキーIDとアクセスキーSecretを開設することができるが、これは推奨されない.メインアカウントはアカウントに対して完全な操作権限を持っているため、コードの作成過程で誤操作が発生する可能性が高いため、RAMアカウントを作成し、必要な権限だけを与えることを提案する.ここではRAMアカウントの作成方法や権限付与方法について詳しく書かれていません.必要な友达はアリクラウド関連のドキュメントを表示することができます.
次はアリクラウドが提供するSDKをインストールします.私が使っているのはPython 3です.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には主に以下の3つのステップがあります.
1.Clientインスタンスの作成
2.API要求の作成と要求パラメータの設定
3.要求を送信し、応答または異常を処理する
Clientインスタンスの作成とClientインスタンスの作成方法
アリクラウドSDKを使用して関連情報にアクセスする場合、関連APIのサービスアドレスを取得する必要があります.Clientインスタンスは、このサービスアドレスを取得するためです.
PythonでClientインスタンスを作成する
client = AcsClient(
    "",
    "",
    "" 
);

ここでは、アクセスキーIDとアクセスキーSecret、Region IDの3つのパラメータを提供し、対応するサービスアドレスを正常に取得するには、このような順序で書かなければなりません.
その中の1つ目と2つ目のパラメータは私たちが前にサブアカウントのために開通したもので、3つ目は地域IDで、関連する地域IDはアリ雲の公式ドキュメントで見つけることができます.これにより、対応するサービスアドレスを取得することができます.
次に、API要求を作成し、要求パラメータコードを次のように設定します.
request = DescribeInstancesRequest.DescribeInstancesRequest()
request.set_PageSize(10)

最初の文はrequestオブジェクトを作成し、クラスDescribeInstancesRequestのDescribeInstancesRequestメソッドを呼び出します.
アリ雲の中で、クラスの命名規則はapiの中で対応する方法名にRequestを加える.そこでapiドキュメントからDecribeInstancesという方法を見つけました
この方法は、1つまたは複数のインスタンスの情報をクエリーし、jsonまたはxmlフォーマットの情報を返すことができる.
2番目の文はページのサイズを10個に設定します.
最後にリクエストを開始し、関連情報を印刷すればいいです.
response = client.do_action_with_exception(request)
print(response)

python 3.7では、xで始まるutf-8符号化データが返される場合があります.decode()メソッドを使用して、より読み書きしやすい方法に変換できます.
その後,返された情報を処理して出力するテーブルやさらなる開発が可能になる.
以上は本人の理解によるもので、何か間違いがあったらまた皆さんのご指摘をお願いいたします.