Windows の PyCharm で Alibaba Cloud Python SDK を使用する方法を説明します。
前提条件
-
Python がインストールされていること。Python のインストール。
-
PyCharm がインストールされていること。Windows での Python 開発環境のセットアップ。
SDK の使用
OpenAPI ポータルからのサンプルプロジェクトの使用
OpenAPI ポータルからサンプルプロジェクトをダウンロードできない場合は、「既存のプロジェクトでの SDK の使用」の手順に従ってください。
-
OpenAPI Explorer ページに移動し、プロダクトと API を選択します。 たとえば、Elastic Compute Service (ECS) の
DescribeInstanceTypeFamiliesAPI を呼び出すには、検索ボックスにDescribeInstanceTypeFamiliesと入力し、結果をクリックして OpenAPI Explorer ページに移動します。 -
中央の列にある [パラメーター] タブで、ビジネス要件に基づいてパラメーターを指定します。 パラメーターを指定する際は、右端の列にある [ドキュメント] タブの情報を読み、オペレーションの注意事項と各パラメーターの説明を理解してください。 課金関連の情報にご注意ください。 この例では、DescribeInstanceTypeFamilies オペレーションは 2 つのリクエストパラメーターをサポートしています。 RegionId パラメーターには cn-hangzhou などの値を指定する必要があります。 Generation パラメーターはオプションです。 このパラメーターを ecs-5 に設定すると、V シリーズインスタンスファミリーを示します。 パラメーターの有効な値は [ドキュメント] タブで確認できます。
-
右端の列にある [SDK サンプルコード] タブで、プログラミング言語を選択し、[プロジェクトのダウンロード] をクリックして、完全な SDK プロジェクトをコンピューターにダウンロードします。 その後、パッケージを解凍します。
[SDK Version] を [V2.0 Recommended] に、[Language] を [Python] に設定し、[Download Complete Project] をクリックします。
-
PyCharm を開きます。[ファイル > 開く] をクリックし、解凍したプロジェクトフォルダーを選択して、[仮想環境の作成] ダイアログで [OK] をクリックします。PyCharm が仮想環境を作成し、依存関係をダウンロードするまで待ちます。
説明依存関係のダウンロードに失敗した場合は、ターミナルで
python3 setup.py installを実行してください。 -
このオペレーションを呼び出す前に、アクセス認証情報として AccessKey ペアを取得する必要があります。 Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することを推奨します。 詳細については、「AccessKey ペアの作成」トピックの「RAM ユーザーの AccessKey ペアの作成」セクションをご参照ください。
重要RAM ユーザーの AccessKey ペアを取得した後、環境変数に AccessKey ペアを設定する必要があります。 詳細については、「Linux、macOS、Windows で環境変数を設定する」をご参照ください。
-
サンプルコードを実行します。
PyCharm の下部にある「ターミナル」タブをクリックするか、
Alt + F12を押します。 次のコマンドを実行します。python ./alibabacloud_sample/sample.pysample.pyの内容:# -*- coding: utf-8 -*- # このファイルは自動生成されたものです。編集しないでください。ありがとうございます。 import os import sys from typing import List from alibabacloud_ecs20140526.client import Client as Ecs20140526Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_console.client import Client as ConsoleClient from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client() -> Ecs20140526Client: """ AccessKey ペアを使用してクライアントを初期化します。ターミナルの出力:
python ./alibabacloud_sample/sample.py [LOG] {"headers":{"date":"Mon, 20 May 2024 02:41:40 GMT","content-type":"application/json;charset=utf-8","content-length":"139","connection":"keep-alive","keep-alive":"timeout=25","access-control-allow-origin":"*","access-control-expose-headers":"*","x-acs-request-id":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","x-acs-trace-id":"b31e569bd03bd37030ba2d9e5b0afbd","etag":"1Kp258uXZ5v+Tj9LKzSIaQ09"},"statusCode":200,"body":{"Instances":{"Instance":[]},"NextToken":"","PageNumber":1,"PageSize":10,"RequestId":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","TotalCount":0}} -
結果を表示します。 コンソールの下部にある実行ウィンドウ内の任意の場所をクリックし、
Ctrl+Fを押してstatusCodeを検索します。"statusCode":200が表示された場合、呼び出しは成功です。# -*- coding: utf-8 -*- # このファイルは自動生成されたものです。編集しないでください。ありがとうございます。 import os import sys from typing import List from alibabacloud_ecs20140526.client import Client as Ecs20140526Client from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_ecs20140526 import models as ecs_20140526_models from alibabacloud_tea_util import models as util_models from alibabacloud_tea_console.client import Client as ConsoleClient from alibabacloud_tea_util.client import Client as UtilClient class Sample: def __init__(self): pass @staticmethod def create_client() -> Ecs20140526Client: """ AccessKey ペアを使用してクライアントを初期化します。python ./alibabacloud_sample/sample.py [LOG] {"headers":{"date":"Mon, 20 May 2024 02:41:40 GMT","content-type":"application/json;charset=utf-8","content-length":"139","connection":"keep-alive","keep-alive":"timeout=25","access-control-allow-origin":"*","access-control-expose-headers":"*","x-acs-request-id":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","x-acs-trace-id":"b31e569bd03bd37030ba2d9e5b0afbd","etag":"1Kp258uXZ5v+Tj9LKzSIaQ09..."},"statusCode":200,"body":{"Instances":{"Instance":[]},"NextToken":"","PageNumber":1,"PageSize":10,"RequestId":"076CAAAD-D942-583B-BEFA-C4DF8CCD60DC","TotalCount":0}}
既存のプロジェクトでの SDK の使用
-
SDK を取得します。
SDK センターに移動し、Elastic Compute Service などの製品を選択します。[SDK Version] を [V2.0] に、[Language] を [Python] に設定します。
[Quick Start] タブを選択し、[Installation] セクションからインストールコマンド
pip install alibabacloud_ecs20140526==4.1.5をコピーし、ローカルのターミナルで実行します。 -
SDK をインストールします。
PyCharm で
Alt+F12を押してターミナルを開きます。インストールコマンドを貼り付けて Enter キーを押します。(.venv) PS D:\ide\PythonProjects\pythonProject> pip install alibabacloud_ecs20140526==4.1.5 Collecting alibabacloud_ecs20140526==4.1.5 Obtaining dependency information for alibabacloud_ecs20140526==4.1.5 from https://files.pythonhosted.org/packages/6e/20/b10ac267a8625257dd846df4574c9c171126fbf6h149385af5dee128d756/alibabacloud_ecs20140526-4.1.5-py3-none-any.whl.metadata Using cached alibabacloud_ecs20140526-4.1.5-py3-none-any.whl.metadata (2.3 kB) Collecting alibabacloud-tea-util<1.0.0,>=0.3.12 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_tea_util-0.3.12-py3-none-any.whl Collecting alibabacloud-tea-openapi<1.0.0,>=0.3.9 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_tea_openapi-0.3.9-py3-none-any.whl Collecting alibabacloud-openapi-util<1.0.0,>=0.2.1 (from alibabacloud_ecs20140526==4.1.5) Using cached alibabacloud_openapi_util-0.2.2-py3-none-any.whl Collecting alibabacloud-endpoint-util<1.0.0,>=0.0.3 (from alibabacloud_ecs20140526==4.1.5) -
Python ファイルを作成します。
プロジェクト名を右クリックし、[新規] > [Python ファイル] を選択します。ファイル名として
sdk_demoを入力し、[Python ファイル] を選択して 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 ポータルからサンプルコードをファイルにコピーして実行します。SDK サンプルコードの自動生成。