Serverless App Engine (SAE) にアプリケーションをデプロイするには、SAEコンソールまたはAlibaba Cloud Toolkit for IntelliJ IDEA (略してAlibaba Cloud Toolkit) プラグインを使用します。 このトピックでは、Alibaba Cloud Toolkitプラグインを使用してアプリケーションをデプロイする方法について説明します。
前提条件
- Java Development Kit (JDK) 1.8以降をダウンロードしてインストールします。
- IntelliJ IDEA 2018.3以降がダウンロードされ、インストールされます。 説明 JetBrainsプラグインのサーバーは中国国外に展開されています。 ネットワーク応答が遅いためにIntelliJ IDEAをダウンロードまたはインストールできない場合は、お問い合わせ。
- Alibaba Cloud ToolkitはIntelliJ IDEAにインストールおよび設定されています。
背景情報
Alibaba Cloud Toolkitは、Alibaba Cloudが提供する無料の統合開発環境 (IDE) プラグインです。 Alibaba Cloudアカウントを作成するか、既存のAlibaba Cloudアカウントを使用してAlibaba Cloud Toolkitをダウンロードし、IntelliJ IDEAに無料でインストールできます。
データセンターでアプリケーションを開発、デバッグ、テストした後、Alibaba Cloud Toolkitプラグインを使用して、アプリケーションをSAEにデプロイできます。
SAEでのアプリケーションのデプロイ
Alibaba Cloud Toolkitでは、WARパッケージ、JARパッケージ、またはイメージを使用してのみ、SAEにアプリケーションをデプロイできます。
- IntelliJ IDEAの左側にある [プロジェクト] セクションで、デプロイするプロジェクトの名前を右クリックし、ショートカットメニューから を選択します。
- [SAEにデプロイ] ダイアログボックスで、アプリケーションのデプロイパラメーターを設定し、[適用] をクリックして設定を保存します。 下表に、各パラメーターを説明します。
パラメーター 説明 リージョン アプリケーションが存在するリージョン。 名前空間 アプリケーションの名前空間 アプリケーション アプリケーション名。 ビルド - Mavenビルド: このオプションを選択してアプリケーションをビルドすると、システムは配置パッケージをビルドするためのMavenジョブを追加します。
- ファイルのアップロード: このオプションを選択してアプリケーションをビルドする場合、WARまたはJARパッケージをアップロードする必要があります。
- Image: このオプションを選択してアプリケーションをビルドする場合は、イメージアドレスを設定する必要があります。
- Gradle Build: サポートされていません。
- オプション: [SAEにデプロイ] ダイアログボックスで、[詳細設定] をクリックします。 [詳細] セクションで、高度なアプリケーションパラメーターを設定します。 説明 高度なアプリケーションパラメータを設定しない場合、デフォルトでSAEコンソールの設定が使用されます。
下表に、各パラメーターを説明します。
データ型 パラメーター 例 説明 JARパッケージによるデプロイ パッケージバージョン 1.0.1 アプリケーションのバージョン番号。 JDK JDK 8を開く アプリケーションのデプロイパッケージが依存するJDKのバージョン。 Webコンテナ apache-tomcat-7.0.91 配置パッケージが依存するTomcatコンテナのバージョン。 起動コマンドの設定 Jarスタートオプション カスタムオプション JARパッケージのデプロイに使用されるオプション設定。 次のデフォルトの起動コマンドが使用されます。 $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgsジャースタートArgs カスタムargs JARパッケージのデプロイに使用されるパラメーター。 次のデフォルトの起動コマンドが使用されます。 $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgsリリースポリシー設定 戦略の更新 {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1} 配置ポリシー。 例: - 例1: 1つのインスタンスに対してカナリアリリースを実行し、残りのインスタンスを2つのバッチで自動的にリリースします。各インスタンスのデプロイ間隔は1分です。
{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} - 例2: インスタンスを2つのバッチで自動的にリリースします。各インスタンスのデプロイ間隔はありません。
{"type":"BatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":0}}
ホストのバインド設定 カスタムホストエイリアス [{"hostName":"samplehost","ip":"127.0.0.1"}] ホスト名とIPアドレス間のカスタムマッピング。 アプリケーションのヘルスチェック 活力 {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11} コンテナーで実行された可用性チェックの詳細。 コンテナーがこのヘルスチェックに複数回失敗した場合、システムはコンテナーを無効にして再起動します。 ヘルスチェックは、コンテナ内のコマンドを送信することによってのみ実行できます。 {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11}準備 {"exec":{"command":["sleep","6s"]},"initialDelaySeconds":15,"timeoutSeconds":12} コンテナの準備チェック。 コンテナーがこのヘルスチェックに複数回失敗した場合、システムはコンテナーを無効にして再起動します。 このヘルスチェックに失敗したコンテナは、Server Load Balancer (SLB) インスタンスからトラフィックを受信できません。 デプロイの設定 最小レディインスタンス 1 アプリケーションの使用可能なインスタンスの最小数。 バッチ待機時間 10 バッチ間の待機時間。 単位は秒です。 環境変数の設定 Envs [{"name":"envtmp","value":"0"}] 環境変数。 - 例1: 1つのインスタンスに対してカナリアリリースを実行し、残りのインスタンスを2つのバッチで自動的にリリースします。各インスタンスのデプロイ間隔は1分です。
- [実行] をクリックします。 次のいずれかの方法を使用して、アプリケーションがデプロイされていることを確認できます。
BUILD SUCCESSは、IntelliJ IDEAのコンソールセクションに表示されるログに表示されます。- SAEコンソールのアプリケーション変更レコードにSuccessが表示されます。
Mavenジョブの管理
[SAEへのデプロイ] ページの [起動前] セクションでは、Mavenジョブを追加、削除、変更、または移動できます。
- IntelliJ IDEAの左側にある [プロジェクト] セクションで、デプロイするプロジェクトの名前を右クリックし、ショートカットメニューから を選択します。
- [SAEへのデプロイ] ページの [起動前] セクションで、Mavenジョブを管理します。
- ジョブを追加するAdd a job
- [起動前] セクションの右側にある
アイコンをクリックし、ドロップダウンリストから [Maven Goalの実行] を選択します。 - [Mavenゴールの選択] ダイアログボックスで、現在のプロジェクトで使用可能なモジュールを選択し、[コマンドライン] フィールドにビルドコマンドを入力します。
- [OK] をクリックします。
- [起動前] セクションの右側にある
- ジョブを削除する: 削除するジョブを選択し、[起動前] セクションの右側にある
アイコンをクリックします。 - ジョブの変更: 変更するジョブを選択し、[起動前] セクションの右側にある
アイコンをクリックします。 [Mavenゴールの選択] ダイアログボックスでジョブ情報を変更し、[OK] をクリックします。 - ジョブを移動する: 移動するジョブを選択し、[起動前] セクションの右側にある
または
アイコンをクリックします。
- ジョブを追加するAdd a job
マルチモジュールプロジェクトの展開
マルチモジュールプロジェクトは、各モジュールが独立して開発され、モジュール間の呼び出し関係を持つプロジェクトです。 Alibaba Cloud Toolkitを使用して、マルチモジュールプロジェクトにサブモジュールをデプロイできます。
マルチモジュールMavenプロジェクトにサブモジュールをデプロイするには、[SAEへのデプロイ] ページの [起動前] セクションの最後にあるサブモジュールのジョブを実行する必要があります。
- 方法1: 親プロジェクトでパッケージコマンドとデプロイコマンドを実行します。
この方法を使用するには、toolkit-maven-plugin V1.0.3以降を使用する必要があります。
親プロジェクトで
toolkit:deployコマンドを実行するときに、-Ddeployment_artifactsパラメーターを追加して、デプロイするサブモジュールのアーティファクトIDを指定します。 複数のサブモジュールをデプロイする場合は、コンマ (,) で区切ります。CarShopプロジェクトのサブモジュールの例を次に示します。
carshop itemcenter-api itemcenter 詳細itemcenterおよびdetailサブモジュールをデプロイするには、carshopディレクトリで次のコマンドを実行します。
mvnクリーンパッケージツールキット: deploy -Ddeploy_artifacts=itemcenter,detailデフォルトでは、プラグインはに基づいて対応するアプリケーションを個別にデプロイします。
. edas_config.yamlitemcenterおよびdetailサブモジュールのファイル。-Dedas_configパラメーターを追加して、設定ファイルを指定することもできます。 - 方法2: サブモジュールでpackagingコマンドとdeploymentコマンドを実行します。 すべてのtoolkit-maven-pluginバージョンがこのメソッドをサポートしています。
親プロジェクトで
installコマンドを実行して、サブモジュールの依存関係をMavenローカルリポジトリにインストールします。 次に、デプロイするサブモジュールのディレクトリに移動し、toolkit:deployコマンドを実行します。
関連ドキュメント
次の表に、SAEにアプリケーションをデプロイした後にアプリケーションで実行できる操作を示します。
操作 | 関連ドキュメント |
アプリケーションの更新、起動、停止、削除、アプリケーションのインスタンスのスケールインまたはスケールアウトなどのライフサイクル管理操作 | |
アプリケーションの自動スケーリングポリシーの設定、Server Load Balancer (SLB) インスタンスのアプリケーションへのバインド、バッチでのアプリケーションの起動または停止などのパフォーマンス最適化操作 | |
ログの管理、モニタリング設定の構成、アプリケーションイベントの表示、変更レコードの表示など、アプリケーションのステータスベースの操作 |