すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud SDK:Python 用 Alibaba Cloud SDK V1.0 との統合

最終更新日:May 21, 2025

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-ecs

Alibaba 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 を提供できます。

完全なサンプルコード

import os

from aliyunsdkcore.acs_exception.exceptions import ClientException, ServerException
from aliyunsdkcore.client import AcsClient
from aliyunsdkecs.request.v20140526.DescribeInstancesRequest import DescribeInstancesRequest

try:
    # 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 シークレットを環境変数から取得します。
        'cn-hangzhou' # リージョン ID。この例では cn-hangzhou が使用されています。
    )

    # DescribeInstancesRequest オブジェクトを作成します。
    request = DescribeInstancesRequest()
    request.set_InstanceIds("[\"i-bp1dXXXXXXXXXXXX\"]")
    request.set_PageSize(100)
    request.set_PageNumber(1)

    # リクエストを送信します。
    response = client.do_action_with_exception(request)
    print(response)
except ClientException as e:
    # 実際のビジネスシナリオでは、エラーを慎重に処理し、プロジェクトでエラーを無視しないでください。この例では、エラーメッセージのみが表示されます。
    print(e)
except ServerException as e:
    # 実際のビジネスシナリオでは、エラーを慎重に処理し、プロジェクトでエラーを無視しないでください。この例では、エラーメッセージのみが表示されます。
    print(e)

関連情報

  • プロキシ設定やタイムアウト設定などの SDK の詳細設定については、「詳細設定」をご参照ください。

  • AccessKey ペアの作成方法については、「AccessKey ペアの作成」をご参照ください。