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

Alibaba Cloud SDK:SDK の統合

最終更新日:Jun 04, 2026

V1.0 Python SDK をプロジェクトに統合することで、OpenAPI の呼び出しを簡素化し、機能統合を迅速化し、メンテナンスコストを削減できます。

環境要件

Python >= 3.7

SDK のインストール

プロダクト SDK をインストールすると、コア SDK も自動的にインストールされます。プロダクト SDK のみをインストールする必要があります。

プロダクト SDK

プロダクト SDK は、OpenAPI 呼び出しのための Request オブジェクトと Response オブジェクトを提供します。例えば、Elastic Compute Service (ECS) SDK をインストールするには、次のようにします。

pip install aliyun-python-sdk-ecs

V1.0 SDK の命名規則は aliyun-python-sdk-${product_code} です。特定のプロダクト向けの V1.0 SDK は SDK センターでも見つけることができます。

コア SDK

コア SDK は、Client オブジェクト、リクエスト署名、例外処理を提供します。汎化呼び出しを行う場合や、特定のバージョンのコア SDK をインストールする場合は、次のコマンドを実行します。

pip install aliyun-python-sdk-core

利用可能なバージョンは aliyun-python-sdk-core · PyPI で確認できます。

SDK の使用

次の例では、V1.0 SDK を使用して ECS の DescribeInstances API を呼び出します。

1. リクエストクライアントの初期化

すべての OpenAPI 呼び出しは、コア SDK の Client オブジェクトを介して行われます。API を呼び出す前にクライアントを初期化してください。この例では AccessKey ペアを使用します。他の認証情報タイプについては、「アクセス認証情報の管理」をご参照ください。

説明

コードを実行する前に、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定してください。Linux、macOS、Windows で環境変数を設定する方法をご参照ください。

import os

from aliyunsdkcore.client import AcsClient

# クライアントの初期化
client = AcsClient(
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # 環境変数から RAM ユーザーの AccessKey ID を取得
    os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # 環境変数から RAM ユーザーの AccessKey Secret を取得
    '<REGION_ID>'  # リージョン ID
)

2. OpenAPI リクエストパラメーターオブジェクトの作成

プロダクト SDK の Request オブジェクトを使用して、リクエストパラメーターを設定します。

説明

OpenAPI リクエストパラメーターオブジェクトの命名規則は <OpenAPIName>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. リクエストの送信

手順 2 で作成した Request オブジェクトを使用して、クライアントの do_action_with_exception を呼び出します。呼び出しが成功すると、Response オブジェクトが返されます。

response = client.do_action_with_exception(request)
print(response)

4. 例外の処理

エラーを処理するには、ClientException と ServerException をキャッチします。ClientException は通常、無効な AccessKey など、初期化パラメーターが正しくないことを示します。ServerException にはさまざまな原因があります。Alibaba Cloud サポートに連絡する際は、例外から取得した RequestId を提供してください。

完全なコード例

import os

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

try:
    # クライアントの初期化
    client = AcsClient(
        os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),  # 環境変数から RAM ユーザーの AccessKey ID を取得
        os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),  # 環境変数から RAM ユーザーの AccessKey Secret を取得
        '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)

参考資料