このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

Python用ECS SDK V2.0の使用方法の例

更新日時2024-10-22 06:43

このトピックでは、Elastic Compute Service (ECS) SDK V2.0 for Pythonをインストールする方法と、SDKを使用してECS API操作を呼び出す方法の例を示します。 この例では、ECS SDK V2.0 for Pythonを使用してDescribeInstances操作を呼び出し、ECSインスタンスに関する情報を照会します。

前提条件

  1. 最低限必要な権限を持つResource Access Management (RAM) ユーザーは、AccessKeyペアを使用してログオンします。 Alibaba Cloudアカウントには完全な権限があり、AccessKeyペアが侵害された場合に重大なセキュリティリスクとなるため、Alibaba Cloudアカウントの使用は推奨しません。 AccessKeyペアの作成の詳細については、「AccessKeyペアの作成」をご参照ください。

  2. RAMユーザーはECSリソースの管理を許可されています。 この例では読み取り専用アクセスが必要で、AliyunECSReadonlyAccessシステムポリシーが使用されます。 ビジネス要件に応じて権限を許可します。

    1. カスタムポリシーを作成します。

      カスタムポリシーの作成に関するガイダンスについては、「カスタマイズポリシーの作成」と「RAM権限付与」をご参照ください。

      ECSは、ベストプラクティスに基づいたカスタムポリシーテンプレートを提供します。 これらのポリシーテンプレートを参照して、ニーズに基づいてポリシーをすばやく確立します。 詳細については、「ECSのカスタムポリシー」をご参照ください。

    2. システムポリシーを使用します。

      ECSがサポートするシステムポリシーとその権限の詳細については、「ECSのシステムポリシー」をご参照ください。

  3. AccessKeyペアは環境変数で設定されます。 詳細については、「Linux、macOS、およびWindowsでの環境変数の設定」をご参照ください。

ECS SDK V2.0 for Pythonのインストール

ECS SDK V2.0 For Pythonのインストール方法については、 SDKセンターを使用します。 次のコマンドをコピーし、ターミナルでコマンドを実行して、ECS SDK V2.0 for Pythonをインストールできます。

pip install alibabacloud_ecs20140526

ECS SDK V2.0 for Pythonの使用

1. Initialize a client.

Alibaba Cloud SDKは、クライアントを初期化するために、AccessKeyペアやSTS (Security Token Service) トークンなどの複数のアクセス資格情報をサポートしています。 詳細については、「アクセス資格情報の管理」をご参照ください。 この例では、AccessKeyペアを使用してクライアントを初期化します。

import os

from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as Ecs20140526Client


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Ecs20140526Client:
        config = Config(
            # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint='ecs.cn-hangzhou.aliyuncs.com'
        )
        return Ecs20140526Client(config)

2. API操作のリクエストオブジェクトを作成します。

リクエストオブジェクトを作成する前に、呼び出すAPI操作のパラメーターを表示します。 この例では、DescribeInstances操作が使用されています。 DescribeInstances操作のパラメーターは、DescribeInstancesで表示できます。

説明

リクエストオブジェクトの名前は {操作名} リクエスト形式です。 たとえば、DescribeInstances操作の要求オブジェクトは、DescribeInstancesRequestという名前です。

3. Create a request object.
describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
    region_id='cn-hangzhou'
)

3. API操作を呼び出します。

クライアントからAPI操作を呼び出す場合、タイムアウトパラメーターやプロキシパラメーターなどの実行時パラメーターを指定できます。 詳細は、「高度な設定」をご参照ください。

説明

応答オブジェクトの名前は {操作名} 応答形式です。 たとえば、DescribeInstances操作の応答オブジェクトは、DescribeInstancesResponseという名前です。

# Specify runtime parameters.
runtime = util_models.RuntimeOptions()
# Call the DescribeInstances operation.
describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)

4. 例外を処理します。

ECS SDK for Pythonは、例外を次のタイプに分類します。

  • UnretryableException: このタイプの例外は、ネットワークの問題によって発生します。 ほとんどの場合、再試行の最大数に達すると、UnretryableException例外がスローされます。

  • TeaException: ほとんどの場合、このタイプの例外はビジネスエラーが原因です。

システムの堅牢性と安定性を確保するために、例外のレポート、例外のログ記録、再試行などの操作を実行して例外を適切に処理することを推奨します。

5. 完全なサンプルコード。

import os

from Tea.exceptions import UnretryableException, TeaException
from alibabacloud_tea_openapi.models import Config
from alibabacloud_ecs20140526.client import Client as Ecs20140526Client
from alibabacloud_tea_util import models as util_models
from alibabacloud_ecs20140526 import models as ecs_20140526_models


class Sample:
    def __init__(self):
        pass

    @staticmethod
    def create_client() -> Ecs20140526Client:
        config = Config(
            # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is configured.
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            # Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is configured.
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
            endpoint='ecs.cn-hangzhou.aliyuncs.com'
        )
        return Ecs20140526Client(config)

    @staticmethod
    def main():
        client = Sample.create_client()
        # Create a request object.
        describe_instances_request = ecs_20140526_models.DescribeInstancesRequest(
            region_id='cn-hangzhou'
        )
        # Specify runtime parameters.
        runtime = util_models.RuntimeOptions()
        try:
            # Call the DescribeInstances operation.
            describe_instances_response = client.describe_instances_with_options(describe_instances_request, runtime)
            print(describe_instances_response.body)
        except UnretryableException as e:
            # Network exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
            print(e)
        except TeaException as e:
            # Business exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
            print(e)
        except Exception as e:
            # Other exceptions. Handle exceptions with caution in actual business scenarios and do not ignore exceptions in your project. In this example, exceptions are provided only for reference.
            print(e)


if __name__ == '__main__':
    Sample.main()

関連ドキュメント

ECS SDK V2.0 for Pythonを使用して、ECS API操作のジェネリック呼び出しを実行することもできます。 詳細については、「ジェネリック呼び出し」をご参照ください。

ECS SDK V1.0 for Pythonを使用する場合は、SDKの詳細については「V1.0 Python SDK」をご参照ください。

  • 目次 (1, M)
  • 前提条件
  • ECS SDK V2.0 for Pythonのインストール
  • ECS SDK V2.0 for Pythonの使用
  • 1. Initialize a client.
  • 2. API操作のリクエストオブジェクトを作成します。
  • 3. API操作を呼び出します。
  • 4. 例外を処理します。
  • 5. 完全なサンプルコード。
  • 関連ドキュメント
フィードバック