Alibaba Cloud Toolkit は、IntelliJ IDEA 向けのプラグインであり、IDE を離れることなく Enterprise Distributed Application Service (EDAS) へアプリケーションを直接デプロイできます。ローカルでアプリケーションを開発・テストした後、このプラグインを使用して、EDAS が管理する Container Service for Kubernetes (ACK) クラスターへデプロイします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ACK クラスターにデプロイ済みのアプリケーション。設定手順については、「Kubernetes クラスターへの Java マイクロサービスアプリケーションのイメージによるデプロイ」をご参照ください。
Alibaba Cloud アカウントまたは EDAS デプロイ権限を持つ Resource Access Management (RAM) ユーザーの AccessKey ペア(AccessKey ID および AccessKey Secret)
JetBrains のプラグインサーバーは中国本土以外に配置されています。ネットワーク応答が遅くプラグインのダウンロードができない場合は、本トピック末尾に記載された DingTalk グループに参加し、Alibaba Cloud Toolkit テクニカルサポートからオフラインインストールパッケージを取得してください。
RAM ユーザーを使用する場合、そのユーザーは EDAS へ同期済みであり、アプリケーションのデプロイ権限が付与されている必要があります。設定手順については、「EDAS 用 RAM ユーザーの権限付与」をご参照ください。
ステップ 1:Alibaba Cloud Toolkit のインストール
IntelliJ IDEA を起動します。
プラグインの設定を開きます。
macOS の場合:IntelliJ IDEA > Preferences > Plugins を選択します。
Windows の場合:File > Settings > Plugins を選択します。
検索ボックスに Alibaba Cloud Toolkit を入力し、検索アイコンをクリックします。
Install をクリックします。


IntelliJ IDEA を再起動します。再起動後、ツールバーに Alibaba Cloud Toolkit アイコン
が表示されます。
すでにプラグインがインストール済みの場合は、同じ Plugins 設定ページから最新バージョンへアップグレードしてください。
ステップ 2:Alibaba Cloud アカウントの構成
プラグインがお客様の代わりに EDAS へアクセスできるよう、AccessKey ペアを設定します。
IntelliJ IDEA で、Tools > Alibaba Cloud > Preferences を選択します。
左側のナビゲーションウィンドウで、Alibaba Cloud Toolkit > Accounts を選択します。
Access Key ID および Access Key Secret を入力し、OK をクリックします。

AccessKey ペアの取得方法:
Alibaba Cloud アカウントをお持ちの場合、Accounts ページで 既存の AK/SK を取得 をクリックします。ログイン後、AccessKey 管理ページから AccessKey ID および AccessKey Secret を取得してください。
アカウントをお持ちでない場合は、Sign up をクリックして新規作成し、その後 AccessKey ペアを取得してください。
RAM ユーザーを使用する場合、EDAS におけるアプリケーションデプロイ権限が付与されていることを確認してください。詳細については、「EDAS 用 RAM ユーザーの権限付与」をご参照ください。
EDAS サービスが Apsara Stack Enterprise 上で実行されている場合は、続行する前にエンドポイントを構成してください。「Apsara Stack Enterprise 向けエンドポイントの構成」をご参照ください。
ステップ 3:アプリケーションのデプロイ
IntelliJ IDEA で、Tools > Alibaba Cloud > Deploy to EDAS > EDAS for Kubernetes Application を選択します。あるいは、Run > Edit Configurations を選択します。Run/Debug configurations ダイアログボックスで、Templates > EDAS on Alibaba Cloud > EDAS for Kubernetes Application を選択します。
Deploy to EDAS ダイアログボックスの Settings タブで、以下のパラメーターを設定します。
重要アプリケーションが一覧に表示されない場合は、「EDAS 用 RAM ユーザーの権限付与」をご参照ください。
パラメーター 説明 リージョン アプリケーションがデプロイされるリージョンです。 Namespace アプリケーションがデプロイされるマイクロサービス namespace です。 アプリケーション アプリケーションの名称です。 
デプロイ方法を選択します。
方法 説明 Maven Build デプロイメントパッケージを作成する Maven ビルドジョブを追加します。マルチモジュールプロジェクトの場合は、「マルチモジュールプロジェクトのデプロイ」をご参照ください。 Upload File WAR または JAR パッケージをアップロードしてデプロイします。 Build Image Dockerfile からコンテナイメージをビルドします。Context Directory、Dockerfile のパス、およびイメージの Version を設定します。 Select Image Select Image のドロップダウンリストから既存のコンテナイメージを選択してデプロイします。 
(任意)Advanced タブをクリックして、追加のデプロイパラメーターを構成します。全パラメーターの詳細については、DeployK8sApplication API リファレンスをご参照ください。
アプリケーション環境:実行環境を設定します。デプロイごとに新しい PackageVersion を指定します。

起動コマンド:コンテナ起動時に実行するコマンドおよび引数を指定します。
[環境]: アプリケーションの環境変数を定義します。
永続化ストレージ:永続ストレージボリュームを構成します。

ローカル記憶域:ローカル記憶域を構成します。
アプリケーション管理:ライフサイクルフックおよびヘルスプローブを設定します。
設定項目 説明 Poststart コンテナライフサイクルフックの 1 つで、コンテナ作成後にトリガーされます。ハンドラが失敗した場合、コンテナは停止され、再起動ポリシーに基づいて再起動が行われます。 PreStop コンテナライフサイクルフックの 1 つで、コンテナ削除前にトリガーされます。ハンドラは、削除リクエストが Docker デーモンに到達する前に実行されます。デーモンはハンドラの結果に関係なく SIGTERM 信号を送信します。 Liveness ヘルスプローブの 1 つで、アプリケーションの健全性をチェックします。不健全と判定された場合、Kubernetes はコンテナを削除し、再作成します。 Readiness ヘルスプローブの 1 つで、アプリケーションが正常に起動し、期待通りに実行中であるかをチェックします。アプリケーションが期待通りに動作しない場合、コンテナのステータスが更新されます。

Apply をクリックし、次に Run をクリックします。IntelliJ IDEA の Console タブでデプロイログを確認し、結果を検証します。
マルチモジュールプロジェクトのデプロイ
Maven マルチモジュールプロジェクトでは、Before launch セクション内の最後の Maven ジョブが、デプロイ対象のサブモジュールをビルドする必要があります。
例:CarShop プロジェクトには以下の構造があります。
carshop
├── itemcenter-api
├── itemcenter
├── detailitemcenter および detail は、ともに itemcenter-api に依存しています。itemcenter サブモジュールをデプロイするには、Before launch セクションに以下の 2 つの Maven ジョブを追加します。
親プロジェクト
CarShopでmvn clean installを実行します。mvn clean packageをitemcenterサブモジュールで実行します。
Maven ビルドジョブの管理
Deploy to EDAS ダイアログボックスの Before launch セクションでは、Maven ビルドジョブの作成、削除、変更、並べ替えが可能です。

Select Maven Goal ダイアログボックスで、Working directory フィールド横のフォルダアイコンをクリックしてモジュールを選択し、Command line フィールドにビルドコマンドを入力します。

EDAS 用 RAM ユーザーの権限付与
RAM ユーザーがデプロイ一覧にアプリケーションを表示できない場合、そのユーザーは EDAS へ同期されていないか、必要な権限が付与されていません。以下のいずれかの方法でアクセス権限を付与してください。
ソリューション A:RAM コンソール経由での EDAS 全体アクセス権限の付与
この方法では、RAM ユーザーにすべての EDAS リソースへのアクセス権限を付与します。
RAM コンソール で、Identities > Users を選択します。
RAM ユーザーを検索し、Add Permissions をクリックします。
Select Policy セクションで、AliyunEDASFullAccess ポリシーを検索・選択し、OK をクリックします。
権限付与のまとめを確認し、Complete をクリックします。
Alibaba Cloud アカウントで EDAS コンソール にログインします。System Management > RAM User を選択し、Synchronize RAM User をクリックします。
ソリューション B:EDAS コンソール経由での細かい EDAS アクセス権限の付与
この方法では、RAM ユーザーに特定のアプリケーションのみへのアクセス権限を付与します。
Alibaba Cloud アカウントで EDAS コンソール にログインします。
System Management > Roles を選択し、Create Role をクリックします。
Role フィールドにロール名を入力します。Optional Permissions の下で、Applications > Basic Information > Deploy Application を選択し、Add をクリックしてから OK をクリックします。
System Management > RAM User を選択し、Synchronize RAM User をクリックします。
RAM ユーザーを検索し、Manage Roles をクリックします。作成したロールを検索し、選択して Selected セクションに追加し、OK をクリックします。
同一の RAM ユーザーについて、Applications Authorized をクリックします。アプリケーションを検索し、選択して Selected セクションに追加し、OK をクリックします。
Apsara Stack Enterprise 向けエンドポイントの構成
EDAS サービスが Apsara Stack Enterprise 上で実行されている場合、デプロイ前に Alibaba Cloud Toolkit でエンドポイントを構成する必要があります。エンドポイント値については、EDAS テクニカルサポートまでお問い合わせください。
Preference (Filtered) ダイアログボックスで、Appearance & Behavior > Endpoint を選択します。
エンドポイント値を入力し、Apply and Close をクリックします。