API 呼び出しを容易にするために、プロジェクトに Alibaba Cloud SDK を統合することをお勧めします。 SDK は開発プロセスを簡素化し、機能を迅速に統合し、O&M コストを大幅に削減します。このトピックでは、プロジェクトに Python 用 Alibaba Cloud SDK V1.0 を統合し、SDK を使用して開発する方法について説明します。
前提条件
Python 3.7 以降がインストールされている。
SDK のインストール
Python 用 Alibaba Cloud SDK V1.0 をインストールすると、コアライブラリが自動的にインストールされます。そのため、SDK のみインストールする必要があります。
クラウドサービス SDK
クラウドサービスの SDK には、API 操作の呼び出しに必要なリクエストオブジェクトとレスポンスオブジェクトが含まれています。次の例は、Elastic Compute Service (ECS) の SDK をインストールする方法を示しています。ターミナルまたはコマンドラインインターフェイス (CLI) で、次のインストールコマンドを実行します。
pip install aliyun-python-sdk-ecsAlibaba Cloud サービスの Python 用 SDK V1.0 は、aliyun-python-sdk-${Service code} 形式で命名されています。特定の Alibaba Cloud サービスの Python 用 SDK V1.0 に関する情報は、SDK センター でも確認できます。
SDK のコアライブラリ
SDK のコアライブラリには、クライアントオブジェクト、署名ロジック、およびエラー処理ロジックが含まれており、これらは API 操作の呼び出しに必要な情報です。汎用呼び出しを行う、または特定のバージョンのコアライブラリをインストールするには、次のコマンドを実行します。
pip install aliyun-python-sdk-coreコアライブラリのバージョンの詳細については、「aliyun-python-sdk-core · PyPI」をご参照ください。
SDK の使用
次の例は、Alibaba Cloud SDK V1.0 を使用して ECS の DescribeInstances API 操作を呼び出す方法を示しています。
1. リクエストクライアントの初期化
すべての API 操作は、コアライブラリによって提供される Client オブジェクトを使用して呼び出されます。API 操作を呼び出す前に、リクエストクライアントを初期化する必要があります。この例では、リクエストクライアントは AccessKey ペアを使用して初期化されます。詳細については、「アクセス認証情報の管理」をご参照ください。
この例では、AccessKey ペアは ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数から取得されます。これらの環境変数は、コードを実行する前に構成する必要があります。詳細については、「Linux、macOS、および Windows での環境変数の構成」をご参照ください。
import os
from aliyunsdkcore.client import AcsClient
# SDK クライアントを初期化します。
client = AcsClient(
os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'), # Resource Access Management (RAM) ユーザーの AccessKey ID を環境変数から取得します。
os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), # RAM ユーザーの AccessKey シークレットを環境変数から取得します。
'<region_id>' # リージョン ID。
)
2. リクエストオブジェクトの作成
SDK によって提供されるリクエストオブジェクトを使用して、リクエストパラメータをカプセル化できます。
API 操作のリクエストオブジェクトには、<API 操作名>Request の形式で名前を付けます。
from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest
# DescribeInstancesRequest オブジェクトを作成します。
request = DescribeInstancesRequest()
request.set_InstanceIds("[\"i-bp1dXXXXXXXXXXXX\"]")
request.set_PageSize(100)
request.set_PageNumber(1)
3. API リクエストの開始
手順 1 でビルドしたリクエストクライアントを使用して、do_action_with_exceptio 操作を呼び出します。操作のリクエストパラメータは、手順 2 で作成したリクエストオブジェクトにカプセル化されています。呼び出しが成功すると、レスポンスオブジェクトが返されます。
response = client.do_action_with_exception(request)
print(response)
4. エラーの処理
API 操作の呼び出し時にエラーがトリガーされた場合は、ServerException および ClientException をキャプチャしてエラーメッセージを取得できます。ほとんどの場合、ClientException エラーは、無効な AccessKey パラメータなど、クライアントの初期化中の無効なパラメータが原因で発生します。 ServerException エラーは、いくつかの要因によって発生する可能性があります。トラブルシューティングについてはカスタマーサービスにリクエストし、リクエスト ID を提供できます。
関連情報
プロキシ設定やタイムアウト設定などの SDK の詳細設定については、「詳細設定」をご参照ください。
AccessKey ペアの作成方法については、「AccessKey ペアの作成」をご参照ください。