API コールを簡素化するため、プロジェクトに Alibaba Cloud SDK を統合することを推奨します。SDK は開発プロセスを簡素化し、機能を迅速に統合でき、運用保守コストを大幅に削減します。このトピックでは、プロジェクトに 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 サービスの SDK V1.0 for Java は、aliyun-java-sdk-${Service code} という形式で名前が付けられています。特定の Alibaba Cloud サービスの SDK V1.0 for Java に関する情報は、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 オペレーションを呼び出す前に、リクエストクライアントを初期化する必要があります。この例では、アクセスキーペアを使用してリクエストクライアントを初期化します。詳細については、「アクセス認証情報の管理」をご参照ください。
この例では、アクセスキーペアを 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 ユーザーのアクセスキー ID を取得します。
System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
// 環境変数から RAM ユーザーのシークレットアクセスキーを取得します。
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 エラーは、無効なアクセスキーパラメーターなど、クライアント初期化時の無効なパラメーターによって発生します。ServerException エラーは複数の要因によって発生する可能性があります。トラブルシューティングについては、リクエスト ID を添えてカスタマーサービスにお問い合わせください。