このトピックでは、Windows 上の統合開発環境 (IDE) で Java 用 Alibaba Cloud SDK を使用する方法について説明します。この例では、IntelliJ IDEA を使用します。
前提条件
Java Development Kit (JDK) がインストールされていること。詳細については、「Windows に JDK をインストールする」をご参照ください。
IntelliJ IDEA がインストールされていること。詳細については、「Windows に Java 開発環境を構築する」をご参照ください。
SDK の使用
OpenAPI Explorer で提供されるサンプルプロジェクトを使用する
OpenAPI Explorer にアクセスします。使用する API オペレーションを検索します。この例では、Elastic Compute Service (ECS) の DescribeInstanceTypeFamilies オペレーションを使用します。検索ボックスに DescribeInstanceTypeFamilies と入力し、検索結果で DescribeInstanceTypeFamilies をクリックして API デバッグページに移動します。

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

右端の列にある [SDK サンプルコード] タブで、プログラミング言語を選択し、[プロジェクトのダウンロード] をクリックして、完全な SDK プロジェクトをコンピューターにダウンロードします。次に、パッケージを解凍します。
説明完全なプロジェクトには、SDK 情報と API オペレーションを呼び出すためのデモが含まれています。

IntelliJ IDEA を開き、上部のナビゲーションバーで [ファイル] > [開く] を選択し、解凍したプロジェクトフォルダーを選択します。Maven が依存関係を自動的にインストールするまで待ちます。
このオペレーションを呼び出す前に、アクセス資格情報として AccessKey ペアを取得する必要があります。Resource Access Management (RAM) ユーザーの AccessKey ペアを使用することをお勧めします。詳細については、「AccessKey ペアの作成」トピックの「RAM ユーザーの AccessKey ペアを作成する」セクションをご参照ください。
重要RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows で環境変数を設定する」をご参照ください。
SDK デモコードを実行します。
左側のディレクトリツリーで、Sample をダブルクリックして開きます。エディターの右上隅にある [実行] アイコンをクリックして、コードを実行します。

結果を表示します。コンソールの 下部にある [実行] ウィンドウ内の任意の場所をクリックし、
Ctrl+Fを押してstatusCodeを検索します。"statusCode":200が表示されている場合、呼び出しは成功しています。
既存のプロジェクトに SDK をインストールする
SDK を取得します。
SDK Center にアクセスし、SDK を使用するクラウドサービスを選択します。この例では、ECS を使用します。SDK バージョンとして [V2.0] を、プログラミング言語として [java] を選択します。[クイックスタート] タブの [インストール方法] セクションで、[apache Maven] を選択します。

SDK をインポートします。
IntelliJ IDEA で作成した Maven プロジェクトを開きます。pom.xml ファイルで、<dependencies></dependencies> タグを作成し、手順 1 で取得したコードをタグ内にコピーします。
<dependencies> <!--ECS V2.0 SDK --> <dependency> <groupId>com.aliyun</groupId> <artifactId>ecs20140526</artifactId> <version>5.1.2</version> </dependency> </dependencies>
プロジェクト名を右クリックし、[Maven] > [プロジェクトの再読み込み] を選択して、Maven 依存関係をダウンロードします。

Java クラスを作成します。
プロジェクトの src/main/java ディレクトリで、java フォルダーを右クリックし、[新規] > [Java クラス] を選択します。この例では、Java クラスの名前は Sample です。

クラウドサービスクライアントを初期化します。
重要クライアントを初期化する際には、AccessKey ペアを使用して本人確認を完了する必要があります。この場合、事前に AccessKey ペアを取得する必要があります。AccessKey ペアの取得方法については、「AccessKey の作成」をご参照ください。
RAM ユーザーの AccessKey ペアを取得したら、環境変数に AccessKey ペアを設定する必要があります。詳細については、「Linux、macOS、および Windows で環境変数を設定する」をご参照ください。
エンドポイントの設定方法については、「エンドポイント」をご参照ください。
import com.aliyun.ecs20140526.Client; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) // AccessKey ID を設定します。 .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // AccessKey Secret を設定します。 config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; // エンドポイントを設定します。 Client client = new Client(config); } }API オペレーションを呼び出します。
API オペレーションを呼び出す前に、対応する API ドキュメント を読む必要があります。
クラウドサービスの Maven 依存関係では、クラウドサービス SDK は各 API オペレーションのリクエストクラスとレスポンスクラスを提供します。リクエストクラスは、パラメーターと値の型を定義します。レスポンスクラスは、レスポンスパラメーターを定義します。これにより、オペレーションを呼び出す際のスペルミスを防ぎます。
たとえば、describeInstanceTypeFamilies オペレーションの場合、リクエストクラスは DescribeInstanceTypeFamiliesRequest で、レスポンスクラスは DescribeInstanceTypeFamiliesResponse です。
説明リクエストクラスの命名規則: API名 + Request
レスポンスクラスの命名規則: API名 + Response
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesRequest; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesResponse; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) throws Exception { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); DescribeInstanceTypeFamiliesRequest describeInstanceTypeFamiliesRequest = new DescribeInstanceTypeFamiliesRequest(); describeInstanceTypeFamiliesRequest.setRegionId("cn-hangzhou"); // RegionId パラメーターを設定します。 DescribeInstanceTypeFamiliesResponse describeInstanceTypeFamiliesResponse = client.describeInstanceTypeFamilies(describeInstanceTypeFamiliesRequest); } }例外を処理します。Alibaba Cloud SDK は、例外を統一的に処理します。
TeaException: このタイプの例外は、ビジネスエラーによって発生します。このような例外を処理するために、次の 3 つのパラメーターが提供されます。
code: 例外が発生したときに返されるエラーコード。
message: 例外が発生したときに返されるエラーメッセージ。メッセージには、例外がスローされた API リクエストの ID が含まれています。
data: 例外が発生したときにサーバーから返される詳細なエラー情報。
import com.aliyun.ecs20140526.Client; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesRequest; import com.aliyun.ecs20140526.models.DescribeInstanceTypeFamiliesResponse; import com.aliyun.tea.TeaException; import com.aliyun.teaopenapi.models.Config; public class Sample { public static void main(String[] args) { try { Config config = new Config() .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); config.endpoint = "ecs-cn-hangzhou.aliyuncs.com"; Client client = new Client(config); DescribeInstanceTypeFamiliesRequest describeInstanceTypeFamiliesRequest = new DescribeInstanceTypeFamiliesRequest(); describeInstanceTypeFamiliesRequest.setRegionId("cn-hangzhou"); DescribeInstanceTypeFamiliesResponse describeInstanceTypeFamiliesResponse = client.describeInstanceTypeFamilies(describeInstanceTypeFamiliesRequest); } catch (TeaException teaException) { // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ出力されます。 // エラーコードを表示します。 System.out.println(teaException.getCode()); // エラーメッセージを表示します。エラーメッセージにはリクエスト ID が含まれています。 System.out.println(teaException.getMessage()); // サーバーから返される詳細なエラー情報を表示します。 System.out.println(teaException.getData()); } catch (Exception e) { TeaException error = new TeaException(e.getMessage(), e); // 実際のビジネスシナリオでは、例外を慎重に処理し、プロジェクトで例外を無視しないでください。この例では、エラーメッセージは参照用にのみ出力されます。 // エラーメッセージ。 System.out.println(error.getMessage()); // 対応するエラー診断の URL。 System.out.println(error.getData().get("Recommend")); com.aliyun.teautil.Common.assertAsString(error.message); } } }
FAQ
コードを実行すると「java: error: release version X not supported」というエラーメッセージが返される場合はどうすればよいですか?
Ctrl+Alt+Shift+Sを押して、[プロジェクト構造] ダイアログボックスを開きます。左側のナビゲーションペインで [モジュール] をクリックします。使用する JDK のバージョンに基づいて、[言語レベル] ドロップダウンリストから値を選択します。たとえば、JDK 8 を使用する場合は、8-Lambdas, type annotations etc. を選択します。[適用] をクリックし、次に [OK] をクリックします。
コードを実行すると「java: Compilationfailed: internal java compiler error」というエラーメッセージが返される場合はどうすればよいですか?
IntelliJ IDEA コンソールのトップナビゲーションバーで、[ファイル] > [設定] を選択します。[設定] ダイアログボックスで、左側のナビゲーションペインの [ビルド、実行、デプロイ] > [コンパイラー] > [Java コンパイラー] を選択します。プロジェクトバイトコードバージョンとターゲットバイトコードバージョンを、使用する JDK のバージョンに設定します。たとえば、JDK 8 を使用する場合は、バージョンを 8 に設定します。[適用] をクリックし、次に [OK] をクリックします。
