API 呼び出しを容易にするために、プロジェクトに Alibaba Cloud SDK を統合することをお勧めします。SDK は開発プロセスを簡素化し、機能を迅速に統合し、O&M コストを大幅に削減します。このトピックでは、プロジェクトに Alibaba Cloud SDK V1.0 for Java を統合し、SDK を使用して開発する方法について説明します。
前提条件
JDK 1.6 以降がインストールされていること。
SDK をインストールする
Alibaba Cloud SDK V1.0 for Java を使用するには、クラウドサービスの SDK と SDK のコアライブラリもインストールする必要があります。
クラウドサービス SDK
クラウドサービスの SDK には、API 操作の呼び出しに必要なリクエストオブジェクトとレスポンスオブジェクトが含まれています。この例では、Elastic Compute Service (ECS) SDK V1.0 for Java が Maven の依存関係として設定されています。次のサンプルコードは、Maven の依存関係を示しています。
<dependencies>
<!-- ecs V1.0 SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>5.11.7</version>
</dependency>
</dependencies>Alibaba Cloud サービスの Java 用 SDK V1.0 は、aliyun-java-sdk-${Service code} の形式で命名されています。特定の Alibaba Cloud サービスの Java 用 SDK V1.0 に関する情報は、SDK センター でも確認できます。
SDK のコアライブラリ
SDK のコアライブラリには、クライアントオブジェクト、署名ロジック、およびエラー処理ロジックが含まれており、これらは API 操作の呼び出しに必要な情報です。SDK のコアライブラリを Maven の依存関係として設定することをお勧めします。次のサンプルコードは、Maven の依存関係を示しています。
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.7.3</version>
</dependency>コアライブラリのバージョンの詳細については、「Maven Repository: com.aliyun » aliyun-java-sdk-core」をご参照ください。
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 で環境変数を設定する」をご参照ください。
com.aliyuncs.profile.DefaultProfile profile = com.aliyuncs.profile.DefaultProfile.getProfile(
"<REGION_ID>",
// RAM ユーザーの AccessKey ID を環境変数から取得します。
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// RAM ユーザーの AccessKey シークレットを環境変数から取得します。
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
com.aliyuncs.IAcsClient client = new com.aliyuncs.DefaultAcsClient(profile);1 つの SDK クライアントが複数のスレッドを処理する場合、セキュリティの問題が発生する可能性があります。複数の Alibaba Cloud サービスが同じプロファイル情報を共有する場合、不正アクセスが発生する可能性があります。開発には Alibaba Cloud SDK V2.0 を使用することをお勧めします。
2. リクエストオブジェクトを作成する
SDK によって提供されるリクエストオブジェクトを使用して、リクエストパラメータをカプセル化できます。
API 操作のリクエストオブジェクトには、<API 操作名>Request の形式で名前を付けます。
com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest request = new com.aliyuncs.ecs.model.v20140526.DescribeInstancesRequest();
request.setRegionId("cn-hangzhou");
request.setInstanceIds(new com.google.gson.Gson().toJson(Arrays.asList("i-bp1fq61ktxxxxxxxxxxxx","i-bp1fq62ktxxxxxxxxxxxx")));3. API リクエストを開始する
手順 1 で構築したリクエストクライアントを使用して、getAcsResponse 操作を呼び出します。操作のリクエストパラメータは、手順 2 で作成したリクエストオブジェクトです。呼び出しが成功すると、レスポンスオブジェクトが返されます。
API 操作のレスポンスオブジェクトには、<API 操作名>Response の形式で名前を付けます。
com.aliyuncs.ecs.model.v20140526.DescribeInstancesResponse response = client.getAcsResponse(request);
System.out.println(new com.google.gson.Gson().toJson(response));4. エラーを処理する
API 操作の呼び出し時にエラーがトリガーされた場合は、ServerException および ClientException をキャプチャしてエラーメッセージを取得できます。ほとんどの場合、ClientException エラーは、無効な AccessKey パラメータなど、クライアントの初期化中の無効なパラメータが原因で発生します。ServerException エラーは、いくつかの要因によって発生する可能性があります。トラブルシューティングについてはカスタマーサービスにリクエストし、リクエスト ID を提供してください。
関連情報
プロキシ設定やタイムアウト設定などの SDK 設定の詳細については、「詳細設定」をご参照ください。
AccessKey ペアの作成方法の詳細については、「AccessKey ペアを作成する」をご参照ください。