このトピックでは、Windows 上の統合開発環境 (IDE) で Alibaba Cloud SDK for Python を使用する方法について説明します。この例では、PyCharm を使用します。
前提条件
Python がインストールされていること。詳細については、「Python のインストール」をご参照ください。
PyCharm がインストールされていること。詳細については、「Windows での Python 開発環境の構築」をご参照ください。
SDK の使用
OpenAPI Explorer で提供されるサンプルプロジェクトを使用する
特定の API 操作のサンプルプロジェクトをダウンロードできない場合があります。この場合は、既存のプロジェクトで SDK を使用します。
OpenAPI Explorer にアクセスします。使用する API 操作を検索します。この例では、Elastic Compute Service (ECS) の DescribeInstanceTypeFamilies 操作を使用します。検索ボックスに DescribeInstanceTypeFamilies と入力し、検索結果で DescribeInstanceTypeFamilies をクリックして API デバッグページに移動します。
中央の列にある [パラメーター] タブで、ビジネス要件に基づいてパラメーターを指定します。パラメーターを指定する際は、右端の列にある [ドキュメント] タブの情報をお読みください。操作の使用方法に関する注意事項と各パラメーターの説明を理解していることを確認してください。課金関連の情報に注意してください。この例では、DescribeInstanceTypeFamilies 操作は 2 つの要求パラメーターをサポートしています。RegionId パラメーターには cn-hangzhou などの値を指定する必要があります。Generation パラメーターはオプションです。このパラメーターを ecs-5 に設定できます。これは V シリーズインスタンスファミリーを示します。パラメーターの有効な値は、[ドキュメント] タブで確認できます。
右端の列にある [SDK サンプルコード] タブで、プログラミング言語を選択し、[プロジェクトのダウンロード] をクリックして、完全な SDK プロジェクトをコンピューターにダウンロードします。次に、パッケージを解凍します。
PyCharm を開き、[ファイル] > [開く] を選択し、解凍したプロジェクトファイルを選択します。[仮想環境の作成] ダイアログボックスで、[OK] をクリックし、Python 仮想環境が作成され、依存リソースがダウンロードされるまで待ちます。
説明必要な依存リソースがダウンロードされていない場合は、ターミナルで
python3 setup.py install
コマンドを実行します。この操作を呼び出す前に、アクセス資格情報として AccessKey ペアを取得する必要があります。Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することをお勧めします。詳細については、「AccessKey ペアの作成」トピックの RAM ユーザーの AccessKey ペアの作成 セクションをご参照ください。
重要RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows での環境変数の設定」をご参照ください。
SDK デモコードを実行します。
コンソールの 下部にある [ターミナル] アイコンをクリックするか、
Alt+F12
を押してターミナルを開きます。ターミナルで、次のコマンドを実行します。python ./alibabacloud_sample/sample.py
結果を表示します。コンソールの下部にある [実行] ウィンドウの任意の場所をクリックし、
Ctrl+F
を押してstatusCode
を検索します。"statusCode":200
が表示されている場合、呼び出しは成功しています。
既存のプロジェクトで SDK を使用する
SDK を取得します。
SDK Center にアクセスし、SDK を使用したいクラウドサービスを選択します。この例では、Elastic Compute Service (ECS) を使用します。SDK バージョンとして [V2.0] を、プログラミング言語として [python] を選択します。
SDK をインストールします。
PyCharm で、
ALT+F12
を押してターミナルを開き、インストールコマンドをターミナルにコピーして、Enter キーを押します。.py ファイルを作成します。
プロジェクト名を右クリックし、[新規] > [Python ファイル] を選択します。表示されるダイアログボックスで、ファイル名を入力し、[Python ファイル] を選択して、Enter キーを押してファイルを作成します。この例では、sdk_demo.py という名前のファイルが作成されます。
クライアントを初期化します。
ECS API を呼び出すには、最初に ECS クライアントを初期化する必要があります。
重要クライアントを初期化するときは、AccessKey ペアを使用して ID 検証を完了する必要があります。この場合、事前に AccessKey ペアを取得する必要があります。AccessKey ペアの取得方法については、「AccessKey の作成」をご参照ください。
RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows での環境変数の設定」をご参照ください。
エンドポイントの設定方法については、「エンドポイント」をご参照ください。
import os from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models def init_ecs_client(): """ ECS クライアントを初期化します。 この関数は引数を取りません。 戻り値: ecs_client. Client: ECS でのさらなる操作に使用できる、初期化された ECS クライアントオブジェクト。 """ # ECS 設定オブジェクトを作成し、環境変数から AccessKey ペアを読み取ります。 ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # エンドポイントを指定します。 ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # 設定を使用して ECS クライアントを初期化し、返します。 return ecs_client.Client(ecs_config) if __name__ == '__main__': client = init_ecs_client()
API 操作を呼び出します。API 操作を呼び出す前に、対応する API ドキュメント を読む必要があります。この例では、ECS の DescribeRegions 操作を使用します。
説明各 API 操作には、${API名}${Request} 形式で名前が付けられたリクエストオブジェクトがあります。例: DescribeRegionsRequest。
import os from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models def init_ecs_client(): """ ECS クライアントを初期化します。 この関数は引数を取りません。 戻り値: ecs_client. Client: ECS でのさらなる操作に使用できる、初期化された ECS クライアントオブジェクト。 """ # ECS 設定オブジェクトを作成し、環境変数から AccessKey ペアを読み取ります。 ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # エンドポイントを指定します。 ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # 設定を使用して ECS クライアントを初期化し、返します。 return ecs_client.Client(ecs_config) if __name__ == '__main__': # ECS クライアントを初期化します。 client = init_ecs_client() # DescribeRegionsRequest リクエストオブジェクトを作成します。 describeRegions_request = ecs_20140526_models.DescribeRegionsRequest() # describeRegions リクエストを送信して、使用可能なリージョンをクエリします。 response = client.describe_regions(describeRegions_request) print(response.body)
例外を処理します。
Python 用 V2.0 SDK では、例外は Tea.exceptions によって処理されます。例外は次の 2 つのタイプに分けられます。
UnretryableException: このタイプの例外は、ネットワークの問題によって発生します。再試行回数が上限に達すると、このような例外がスローされます。
TeaException: このタイプの例外は、ビジネスエラーによって発生します。
import os from Tea.exceptions import UnretryableException, TeaException from alibabacloud_ecs20140526 import client as ecs_client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models def init_ecs_client(): """ ECS クライアントを初期化します。 この関数は引数を取りません。 戻り値: ecs_client. Client: ECS でのさらなる操作に使用できる、初期化された ECS クライアントオブジェクト。 """ # ECS 設定オブジェクトを作成し、環境変数から AccessKey ペアを読み取ります。 ecs_config = open_api_models.Config() ecs_config.access_key_id = os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ecs_config.access_key_secret = os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] # エンドポイントを指定します。 ecs_config.endpoint = 'ecs-cn-hangzhou.aliyuncs.com' # 設定を使用して ECS クライアントを初期化し、返します。 return ecs_client.Client(ecs_config) if __name__ == '__main__': try: # ECS クライアントを初期化します。 client = init_ecs_client() # DescribeRegionsRequest リクエストオブジェクトを作成します。 describeRegions_request = ecs_20140526_models.DescribeRegionsRequest() # describeRegions リクエストを送信して、使用可能なリージョンをクエリします。 response = client.describe_regions(describeRegions_request) # レスポンスを表示します。 print(response.body) except UnretryableException as e: # ネットワーク例外を処理します。 print(e) except TeaException as e: # ビジネス例外を処理します。 print(e) except Exception as e: # その他の例外を処理します。 print(e)
オプション。OpenAPI Explorer で提供されるサンプルコードをファイルにコピーして、サンプルコードを実行することもできます。サンプルコードの取得方法については、「SDK 例の自動生成」をご参照ください。