Windows 上の PyCharm で Alibaba Cloud Python SDK を使用する方法について説明します。
前提条件
-
Python がインストールされていること。「Python のインストール」をご参照ください。
-
PyCharm がインストールされていること。「Windows での Python 開発環境の設定」をご参照ください。
SDK の使用
OpenAPI Portal からサンプルプロジェクトを使用する
OpenAPI Portal からサンプルプロジェクトをダウンロードできない場合は、「既存のプロジェクトで SDK を使用する」をご参照ください。
-
OpenAPI Explorer にアクセスします。使用する API オペレーションを検索します。この例では、Elastic Compute Service (ECS) の DescribeInstanceTypeFamilies オペレーションを使用します。検索ボックスに DescribeInstanceTypeFamilies と入力し、検索結果で DescribeInstanceTypeFamilies をクリックして API デバッグページに移動します。

-
中央の列にある [パラメーター] タブで、ビジネス要件に基づいてパラメーターを指定します。パラメーターを指定する際は、右端の列にある [ドキュメント] タブの情報をお読みください。オペレーションの使用方法と各パラメーターの説明を理解していることを確認してください。課金関連の情報に注意してください。この例では、DescribeInstanceTypeFamilies オペレーションは 2 つのリクエストパラメーターをサポートしています。RegionId パラメーターには cn-hangzhou などの値を指定する必要があります。Generation パラメーターはオプションです。このパラメーターを ecs-5 に設定できます。これは V シリーズインスタンスファミリーを示します。パラメーターの有効な値は、[ドキュメント] タブで確認できます。

-
右端の列にある [SDK サンプルコード] タブで、プログラミング言語を選択し、[プロジェクトのダウンロード] をクリックして、完全な SDK プロジェクトをコンピューターにダウンロードします。次に、パッケージを解凍します。

-
PyCharm を開きます。[File] > [Open] をクリックし、解凍したプロジェクトフォルダを選択して、[Creating Virtual Environment] ダイアログの [OK] をクリックします。PyCharm が仮想環境を作成し、依存関係をダウンロードするまで待ちます。
説明依存関係のダウンロードに失敗した場合は、ターミナルで
python3 setup.py installを実行してください。 -
このオペレーションを呼び出す前に、アクセス資格情報として AccessKey ペアを取得する必要があります。Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することをお勧めします。詳細については、「AccessKey ペアの作成」トピックの「RAM ユーザーの AccessKey ペアを作成する」セクションをご参照ください。
重要RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows で環境変数を設定する」をご参照ください。
-
サンプルコードを実行します。
PyCharm の下部にある [Terminal] タブをクリックするか、
Alt + F12を押します。次のコマンドを実行します。python ./alibabacloud_sample/sample.py
-
結果を表示します。コンソールの 下部にある [実行] ウィンドウ内の任意の場所をクリックし、
Ctrl+Fを押してstatusCodeを検索します。"statusCode":200が表示されている場合、呼び出しは成功しています。
既存のプロジェクトで SDK を使用する
-
SDK を取得します。
SDK センターに移動して Elastic Compute Service などの製品を選択し、[SDK バージョン] を [V2.0] に、[言語] を [Python] に設定します。

-
SDK をインストールします。
PyCharm で
Alt+F12を押してターミナルを開きます。インストールコマンドを貼り付けて Enter キーを押します。
-
Python ファイルを作成します。
プロジェクト名を右クリックし、[New] > [Python File] を選択します。ファイル名として
sdk_demoを入力し、[Python File] を選択して Enter キーを押します。 -
クライアントを初期化します。
API を呼び出す前に、ECS クライアントを初期化する必要があります。
重要クライアントを初期化する際には、AccessKey ペアを使用して本人確認を完了する必要があります。この場合、事前に 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 の
DescribeRegionsAPI を呼び出します。説明各 API には、
${APIName}${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:SDK リクエスト中にサービスエラーが発生した場合にスローされます。
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 Portal からサンプルコードをファイルにコピーして実行します。「SDK サンプルコードの自動生成」をご参照ください。