Enterprise Distributed Application Service (EDAS) は、EDAS API を型付けされたリクエストオブジェクトと応答オブジェクトにラップする Java SDK を提供します。このガイドでは、SDK のインストール、認証設定、およびアプリケーションとそのデプロイグループをリスト表示する実用的な例について説明します。
前提条件
開始する前に、以下が準備できていることを確認してください:
Java 開発キット (JDK) 1.6 以降。Oracle JDK からダウンロードしてください。
Apache Maven (Maven インストール方法で必要)
SDK のインストール
ビルドマシンがインターネットにアクセスできるかどうかに基づいて、方法を選択してください。
方法 1: Maven 依存関係の追加 (推奨)
ビルドマシンがインターネットにアクセスできる場合は、次の依存関係を pom.xml に追加します:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-edas</artifactId>
<version>3.18.0</version>
</dependency>方法 2: JAR パッケージの手動インポート
ビルドマシンがインターネットにアクセスできない場合は、接続されているマシンから JAR パッケージをダウンロードし、プロジェクトにコピーします:
Alibaba Cloud SDK for Java (コア SDK) をダウンロードします。
Alibaba Cloud EDAS SDK for Java (EDAS 固有の SDK) をダウンロードします。
両方の JAR ファイルをプロジェクトのクラスパスに追加します。
認証の設定
すべての API 呼び出しには、ご利用の Alibaba Cloud アカウントまたは RAM ユーザーに属する AccessKey ID と AccessKey Secret が必要です。これらおよびその他の共通パラメーターの詳細については、「API 呼び出しの共通パラメーター」をご参照ください。
ご利用のリージョン ID と認証情報で DefaultProfile を作成し、それを DefaultAcsClient に渡します:
// ご利用のリージョン ID、AccessKey ID、AccessKey Secret に置き換えてください
String regionId = "cn-hangzhou";
String accessKeyId = "<your-access-key-id>";
String accessKeySecret = "<your-access-key-secret>";
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);次のプレースホルダーを実際の値に置き換えてください:
| プレースホルダー | 説明 | 例 |
|---|---|---|
<your-access-key-id> | ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID | LTAI5tXxx |
<your-access-key-secret> | ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret | xXxXxXx |
ソースコードに認証情報をハードコーディングすることを避けるため、AccessKey ID と AccessKey Secret は環境変数に保存し、ランタイムに読み込むことを推奨します。
リクエストと応答のパターン
各 EDAS API オペレーションは、一対の Java クラスにマッピングされます:
| クラス | 目的 |
|---|---|
<OperationName>Request | API リクエストを構築します。このオブジェクトに必須パラメーターを設定します。 |
<OperationName>Response | API から返された結果を保持します。 |
リクエストオブジェクトを指定して DefaultAcsClient.getAcsResponse() を呼び出し、API オペレーションを実行して、対応する応答オブジェクトを受け取ります。
例えば、ListApplication オペレーションは ListApplicationRequest と ListApplicationResponse を使用します。ListDeployGroup オペレーションは ListDeployGroupRequest と ListDeployGroupResponse を使用します。
例: アプリケーションとデプロイグループのリスト表示
次の例では、EDAS で認証し、リージョン内のすべてのアプリケーションを取得し、各アプリケーションのデプロイグループを出力します。
import java.util.List;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.edas.model.v20170801.ListApplicationRequest;
import com.aliyuncs.edas.model.v20170801.ListApplicationResponse;
import com.aliyuncs.edas.model.v20170801.ListDeployGroupRequest;
import com.aliyuncs.edas.model.v20170801.ListDeployGroupResponse;
public class ListApplicationsSimpleInfo {
public static void main(String args[]) {
// ステップ 1: 認証情報を設定し、API クライアントを作成
String accessKeyId = "<your-access-key-id>"; // ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ID
String accessKeySecret = "<your-access-key-secret>"; // ご利用の Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret
String regionId = "cn-hangzhou"; // アプリケーションがデプロイされているリージョン
DefaultProfile profile = DefaultProfile.getProfile(regionId, accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
// ステップ 2: ListApplication リクエストを構築して送信
ListApplicationRequest appListRequest = new ListApplicationRequest();
try {
ListApplicationResponse appListResponse = client.getAcsResponse(appListRequest);
// ステップ 3: 応答を確認し、アプリケーションを反復処理
if (appListResponse.getCode() == 200) {
List<ListApplicationResponse.Application> apps = appListResponse.getApplicationList();
if (apps != null && apps.size() > 0) {
for (ListApplicationResponse.Application app : apps) {
String appName = app.getName();
String appId = app.getAppId();
System.out.println("アプリケーション名: " + appName + ", アプリケーション ID: " + appId);
// ステップ 4: 各アプリケーションについて、そのデプロイグループを取得
ListDeployGroupRequest dgRequest = new ListDeployGroupRequest();
dgRequest.setAppId(appId);
ListDeployGroupResponse dgResponse = client.getAcsResponse(dgRequest);
if (dgResponse.getCode() == 200) {
List<ListDeployGroupResponse.DeployGroup> groups = dgResponse.getDeployGroupList();
for (ListDeployGroupResponse.DeployGroup group : groups) {
String groupName = group.getGroupName();
if ("_DEFAULT_GROUP".equals(groupName)) {
groupName = "デフォルトグループ";
}
String groupId = group.getGroupId();
System.out.println("\tグループ名: " + groupName + ", グループ ID: " + groupId);
}
}
}
} else {
System.out.println("アプリケーションが見つかりません。" + regionId + " リージョンにアプリケーションが存在することを確認してください。");
}
} else {
// エラー詳細を出力
System.out.println("API 呼び出しが失敗しました。\nメッセージ: " + appListResponse.getMessage()
+ "\nRequestId: " + appListResponse.getRequestId());
}
} catch (ClientException e) {
e.printStackTrace();
}
}
}エンドポイントの自動検出
aliyun-java-sdk-core がバージョン 4.4.3 以降、かつ aliyun-java-sdk-edas がバージョン 2.52.1 以降の場合、SDK はリージョン ID に基づいて正しい API エンドポイントを自動的に解決します。手動でのエンドポイント設定は不要です。