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

Alibaba Cloud SDK:IDE での Alibaba Cloud Python SDK の使用

最終更新日:Jul 16, 2026

Windows の PyCharm で Alibaba Cloud Python SDK を使用する方法を説明します。

前提条件

SDK の使用

OpenAPI ポータルからのサンプルプロジェクトの使用

説明

OpenAPI ポータルからサンプルプロジェクトをダウンロードできない場合は、「既存のプロジェクトでの SDK の使用」の手順に従ってください。

  1. OpenAPI Explorer ページに移動し、プロダクトと API を選択します。 たとえば、Elastic Compute Service (ECS) の DescribeInstanceTypeFamilies API を呼び出すには、検索ボックスに DescribeInstanceTypeFamilies と入力し、結果をクリックして OpenAPI Explorer ページに移動します。

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

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

    [SDK Version][V2.0 Recommended] に、[Language][Python] に設定し、[Download Complete Project] をクリックします。

  4. PyCharm を開きます。[ファイル > 開く] をクリックし、解凍したプロジェクトフォルダーを選択して、[仮想環境の作成] ダイアログで [OK] をクリックします。PyCharm が仮想環境を作成し、依存関係をダウンロードするまで待ちます。

    説明

    依存関係のダウンロードに失敗した場合は、ターミナルで python3 setup.py install を実行してください。

  5. このオペレーションを呼び出す前に、アクセス認証情報として AccessKey ペアを取得する必要があります。 Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することを推奨します。 詳細については、「AccessKey ペアの作成」トピックの「RAM ユーザーの AccessKey ペアの作成」セクションをご参照ください。

    重要

    RAM ユーザーの AccessKey ペアを取得した後、環境変数に AccessKey ペアを設定する必要があります。 詳細については、「Linux、macOS、Windows で環境変数を設定する」をご参照ください。

  6. サンプルコードを実行します。

    PyCharm の下部にある「ターミナル」タブをクリックするか、Alt + F12 を押します。 次のコマンドを実行します。

    python ./alibabacloud_sample/sample.py
    

    sample.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}}
    
  7. 結果を表示します。 コンソールの下部にある実行ウィンドウ内の任意の場所をクリックし、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 の使用

  1. SDK を取得します。

    SDK センターに移動し、Elastic Compute Service などの製品を選択します。[SDK Version][V2.0] に、[Language][Python] に設定します。

    [Quick Start] タブを選択し、[Installation] セクションからインストールコマンド pip install alibabacloud_ecs20140526==4.1.5 をコピーし、ローカルのターミナルで実行します。

  2. 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)
    
  3. Python ファイルを作成します。

    プロジェクト名を右クリックし、[新規] > [Python ファイル] を選択します。ファイル名として sdk_demo を入力し、[Python ファイル] を選択して Enter キーを押します。

  4. クライアントを初期化します。

    API を呼び出す前に ECS クライアントを初期化します。

    重要
    1. クライアントを初期化する際に、AccessKey ペアを使用して本人確認を完了する必要があります。 この場合、事前に AccessKey ペアを取得する必要があります。 AccessKey ペアの取得方法の詳細については、「AccessKey の作成」をご参照ください。

    2. RAM ユーザーの AccessKey ペアを取得した後、環境変数に AccessKey ペアを設定する必要があります。 詳細については、「Linux、macOS、Windows で環境変数を設定する」をご参照ください。

    3. エンドポイントの設定方法の詳細については、「エンドポイント」をご参照ください。

    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()
    
  5. API を呼び出します。対象 API のAPI ドキュメントを確認します。次の例では、ECS の DescribeRegions API を呼び出します。

    説明

    各 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)
    
  6. 例外を処理します。

    Python V2.0 SDK では、「Tea.exceptions」を通じて例外を処理します。例外には 2 つのタイプがあります。

    1. UnretryableException: ネットワークの問題により最大リトライ回数に達した場合にスローされます。

    2. 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)
    
  7. (オプション) OpenAPI ポータルからサンプルコードをファイルにコピーして実行します。SDK サンプルコードの自動生成

関連ドキュメント

詳細ドキュメント