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

Elastic Compute Service:ECS Java SDK V2.0 呼び出し例

最終更新日:Apr 01, 2026

Elastic Compute Service (ECS) SDK V2.0 for Java を使用して、すぐに開始できます。このガイドでは、SDK のインストールと、ECS インスタンスを一覧表示するための DescribeInstances 操作の呼び出しについて説明します。

完全な実行可能なサンプル はこのページの下部にあります。以下の各ステップは、そのサンプルからの抜粋です。

前提条件

開始する前に、以下を確認してください。

  • 最小限の必要な権限を持つ RAM ユーザー。Alibaba Cloud ルートアカウントの使用は避けてください。その AccessKey ペアが侵害されると、重大なセキュリティリスクを引き起こす可能性があります。

    • この例では、読み取り専用アクセスが必要です。AliyunECSReadonlyAccess システム権限ポリシーをアタッチするか、ニーズに基づいて カスタムポリシーを作成 します。利用可能な権限については、「ECS の RAM 認可」をご参照ください。

  • 環境変数として設定された AccessKey ペア。コードを実行する前に以下を設定してください。設定手順については、「AccessKey 環境変数の設定」をご参照ください。

    環境変数
    ALIBABA_CLOUD_ACCESS_KEY_IDご利用の AccessKey ID
    ALIBABA_CLOUD_ACCESS_KEY_SECRETご利用の AccessKey シークレット

SDK のインストール

この例では Apache Maven を使用します。代替のインストール方法については、SDK Center をご参照ください。

pom.xml<dependencies> セクションに ECS SDK 依存関係を追加し、Maven プロジェクトを更新します。

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>ecs20140526</artifactId>
  <version>5.3.0</version>
</dependency>

SDK の使用

以下のステップは、このページの下部にある 完全なサンプル に向けて構築されています。

ステップ 1: クライアントの初期化

認証情報とエンドポイントを含む Config オブジェクトを作成し、それを Client コンストラクターに渡します。

import com.aliyun.ecs20140526.Client;
import com.aliyun.teaopenapi.models.Config;

private static Client createClient() throws Exception {
    Config config = new Config()
            // 環境変数から認証情報を読み取ります。
            .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
            .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
            // 利用可能なエンドポイントは https://api.aliyun.com/product/Ecs で確認できます。
            .setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
    return new Client(config);
}

SDK は、AccessKey ペア、Security Token Service (STS) トークンなど、他の認証情報タイプもサポートしています。詳細については、「アクセス認証情報の管理」をご参照ください。

ステップ 2: リクエストオブジェクトの構築

リクエストオブジェクトは {OperationName}Request という命名規則に従います。DescribeInstances の場合は、DescribeInstancesRequest を使用します。

// リクエストオブジェクトを構築し、対象リージョンを設定します。
DescribeInstancesRequest request = new DescribeInstancesRequest().setRegionId("cn-hangzhou");

パラメーターの完全なリストについては、「DescribeInstances API リファレンス」をご参照ください。

ステップ 3: オペレーションの呼び出し

リクエストと RuntimeOptions オブジェクトをクライアントメソッドに渡します。レスポンスオブジェクトは {OperationName}Response という命名規則に従います。

// タイムアウトやプロキシ設定などのランタイムパラメーターを設定します。
RuntimeOptions runtime = new RuntimeOptions();
// DescribeInstances を呼び出し、レスポンスボディを出力します。
DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
System.out.println(response.body.toMap());

タイムアウト、リトライ、プロキシ設定の構成については、「高度な設定」をご参照ください。

ステップ 4: 例外の処理

SDK は 2 種類の例外を発生させます。

例外原因
TeaUnretryableException最大リトライ数を超過した後のネットワーク障害
TeaExceptionAPI から返されたビジネスエラー

例外をログに記録し、モニタリングシステムに報告し、適切な場合はリトライロジックを適用してください。

} catch (TeaUnretryableException ue) {
    // すべてのリトライ後のネットワークレベルの障害。
    ue.printStackTrace();
    System.out.println(ue.getMessage());
    System.out.println(ue.getLastRequest());
} catch (TeaException e) {
    // API からのビジネスエラー。
    e.printStackTrace();
    System.out.println(e.getCode());
    System.out.println(e.getMessage()); // サポートチケット用の RequestId を含みます。
    System.out.println(e.getData());
} catch (Exception e) {
    e.printStackTrace();
}

完全なサンプル

以下は、上記のすべてのステップを組み合わせた、完全で実行可能な例です。

import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeInstancesRequest;
import com.aliyun.ecs20140526.models.DescribeInstancesResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaUnretryableException;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;

public class Sample {
    private static Client createClient() throws Exception {
        Config config = new Config()
                // 環境変数から認証情報を読み取ります。
                .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                // 利用可能なエンドポイントは https://api.aliyun.com/product/Ecs で確認できます。
                .setEndpoint("ecs.cn-hangzhou.aliyuncs.com");
        return new Client(config);
    }

    public static void main(String[] args) {
        try {
            Client client = Sample.createClient();
            DescribeInstancesRequest request = new DescribeInstancesRequest()
                    .setRegionId("cn-hangzhou");
            RuntimeOptions runtime = new RuntimeOptions();
            DescribeInstancesResponse response = client.describeInstancesWithOptions(request, runtime);
            System.out.println(response.body.toMap());
        } catch (TeaUnretryableException ue) {
            // すべてのリトライ後のネットワークレベルの障害。
            ue.printStackTrace();
            System.out.println(ue.getMessage());
            System.out.println(ue.getLastRequest());
        } catch (TeaException e) {
            // API からのビジネスエラー。
            e.printStackTrace();
            System.out.println(e.getCode());
            System.out.println(e.getMessage());
            System.out.println(e.getData());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

次のステップ

  • 汎用呼び出し — 生成された SDK メソッドなしで任意の ECS OpenAPI 操作を呼び出します。

  • V1.0 Java SDK — 以前の SDK バージョンのドキュメント。