このトピックでは、Windows 上の統合開発環境 (IDE) で Alibaba Cloud Java SDK を使用する方法について説明します。 この例では、IntelliJ IDEA を使用します。
前提条件
Java 開発キット (JDK) がインストールされていること。 詳細については、「Windows への JDK のインストール」をご参照ください。
-
IntelliJ IDEA がインストールされていること。 インストールされていない場合は、「Windows での Java 開発環境のセットアップ」をご参照ください。
SDK の使用
OpenAPI Explorer で提供されるサンプルプロジェクトの使用
-
OpenAPI Explorer ページに移動し、プロダクトと API を選択します。 たとえば、Elastic Compute Service (ECS) の
DescribeInstanceTypeFamiliesAPI を呼び出すには、検索ボックスにDescribeInstanceTypeFamiliesと入力し、結果をクリックして OpenAPI Explorer ページに移動します。 -
中央の列にある [パラメーター] タブで、ビジネス要件に基づいてパラメーターを指定します。 パラメーターを指定する際は、右端の列にある [ドキュメント] タブの情報を読み、オペレーションの注意事項と各パラメーターの説明を理解してください。 課金関連の情報にご注意ください。 この例では、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 をダブルクリックして開きます。 エディターの右上隅にある実行アイコンをクリックして、コードを実行します。
// このファイルは自動生成されたものです。編集しないでください。 package com.aliyun.sample; import com.aliyun.tea.*; public class Sample { /** * AccessKey ペアを使用してアカウントクライアントを初期化します。 * @return Client * @throws Exception */ public static com.aliyun.ecs20140526.Client createClient() throws Exception { // プロジェクトコードが漏洩すると、AccessKey が漏洩し、アカウント配下のすべてのリソースのセキュリティが脅かされる可能性があります。 以下のコードは参考用です。 // STS などのより安全な方法を使用することを推奨します。 その他の認証方式については、https://www.alibabacloud.com/help/document_detail/378657.html をご参照ください。 com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() // 必須。 実行環境に環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID が設定されていることを確認してください。 .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) // 必須。 実行環境に環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET が設定されていることを確認してください。 .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")); // エンドポイントについては、https://api.aliyun.com/product/Ecs をご参照ください。 config.endpoint = "ecs.cn-beijing.aliyuncs.com"; return new com.aliyun.ecs20140526.Client(config); } } -
結果を表示します。 コンソールの下部にある実行ウィンドウ内の任意の場所をクリックし、
Ctrl+Fを押してstatusCodeを検索します。"statusCode":200が表示された場合、呼び出しは成功です。
既存のプロジェクトへの SDK のインストール
-
SDK を取得します。
SDK センター に移動し、使用したいクラウドプロダクトの SDK を選択します。 この例では ECS を使用します。 [SDK バージョン] で V2.0 を選択します。 [言語] で Java を選択します。 この例では、[インストール方法] として Apache Maven を使用します。
この SDK には Java 8 以降が必要です。 プロジェクトの pom.xml ファイルに、
groupIdがcom.aliyun、artifactIdがecs20140526、versionが5.1.2の依存関係設定を追加します。 -
SDK をインポートします。
IntelliJ IDEA で Maven プロジェクトを開きます。 pom.xml ファイルで、新しい <dependencies></dependencies> タグを作成し、前のステップの Apache Maven の依存関係をこのタグにコピーします。
<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")) .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_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"); 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()); // RequestId を含むエラーメッセージを出力します。 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()); // 診断アドレス。 System.out.println(error.getData().get("Recommend")); com.aliyun.teautil.Common.assertAsString(error.message); } } }
よくある質問
-
コード実行時に「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] をクリックします。