除了通過SAE控制臺進行應用部署,您還可以通過Alibaba Cloud Toolkit for IntelliJ IDEA(簡稱Cloud Toolkit)插件部署應用。
前提條件
- 下載并安裝JDK1.8或更高版本。
- 下載并安裝IntelliJ IDEA(2018.3或更高版本)。 說明 由于JetBrains插件官方服務器設立在海外,如果因訪問緩慢導致無法下載安裝,請聯系我們。
- 在IntelliJ IDEA中安裝和配置Cloud Toolkit。
背景信息
Cloud Toolkit是阿里巴巴提供的免費IDE插件。您可以注冊或使用已有的賬號免費下載Cloud Toolkit,下載完成后,將其安裝在IntelliJ IDEA中。
在本地完成應用程序的開發、調試及測試后,您可以通過本插件將應用程序快速部署到SAE。
部署應用到SAE
Cloud Toolkit插件目前僅支持將應用以WAR包、JAR包或鏡像方式部署到SAE。
- 在IntelliJ IDEA界面左側的Project區域中右鍵單擊待部署的工程名,在快捷菜單中選擇 。
- 在Deploy to SAE對話框,配置應用部署參數,配置完成后單擊Apply保存設置。參數說明如下:
參數 說明 Region 選擇應用所在地域。 Namespace 選擇應用所在命名空間。 Application 選擇應用名稱。 Build - Maven Build:Maven Build方式構建應用,默認添加Maven任務構建部署包。如果需要部署子模塊,請參見使用IntelliJ IDEA部署多模塊工程中的子模塊。
- Upload File:JAR包或者WAR包構建應用,上傳WAR包或者JAR包后部署應用。
- Image:鏡像方式構建應用,需要設置鏡像地址后部署應用。
- Gradle Build:暫不支持。
- 可選:在Deploy to SAE對話框,單擊Advanced,在Advanced區域配置應用高級參數。說明 如果您未配置高級參數,部署時將默認使用SAE控制臺上的值。
參數說明如下:
類型 參數 示例值 說明 部署JAR包 Package Version 1.0.1 部署的應用版本號。 JDK Open JDK 8 部署的應用依賴的JDK版本。 Web Container apache-tomcat-7.0.91 部署的應用依賴的Tomcat版本。 啟動命令設置 Jar Start Options custom-option JAR包啟動應用選項。應用默認啟動命令如下: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
Jar Start Args custom-args JAR包啟動應用參數。應用默認啟動命令如下: $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs
發布策略設置 Update Strategy {"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批發布+自動分批+分批間隔0分鐘
{"type":"BatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":0}}
Hosts綁定設置 Custom Host Alias [{"hostName":"samplehost","ip":"127.0.0.1"}] 容器內自定義Host映射。 應用健康檢查設置 Liveness {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11} 容器健康檢查,健康檢查失敗的容器將被強制關閉并恢復。目前僅支持容器內下發命令的方式: {"exec":{"command":["sleep","5s"]},"initialDelaySeconds":10,"timeoutSeconds":11}
Readiness {"exec":{"command":["sleep","6s"]},"initialDelaySeconds":15,"timeoutSeconds":12} 應用啟動狀態檢查,多次健康檢查失敗的容器將被強制關閉并重啟。不通過健康檢查的容器將不會有SLB流量進入。 部署設置 Min Ready Instances 1 應用的最小存活實例數。 Batch Wait Time 10 分批發布等待時間,單位為秒。 環境變量設置 Envs [{"name":"envtmp","value":"0"}] 容器環境變量參數。 - 示例1:灰度1臺+后續分2批+自動分批+分批間隔1分鐘
- 單擊Run。您可以通過以下兩種方式證明應用已部署成功:
- IntelliJ IDEA的Console區域打印的運行日志中顯示
BUILD SUCCESS
。 - SAE控制臺上的應用變更記錄顯示執行成功。
- IntelliJ IDEA的Console區域打印的運行日志中顯示
管理Maven構建任務
在Deploy to SAE頁面的Before launch區域,您可以對Maven構建任務執行添加、刪除、修改和移動操作。
- 在IntelliJ IDEA界面左側的Project中右鍵單擊待部署的工程名,在快捷菜單中選擇 。
- 在Deploy to SAE頁面的Before launch區域,管理Maven任務。
- 添加任務
- 單擊Before launch區域右側的,在下拉框中選擇Run Maven Goal。
- 在Select Maven Goal對話框中,選擇當前工程可用的模塊,在Command line區域中輸入構建命令。
- 單擊OK。
- 刪除任務:選擇需要刪除的任務,單擊Before launch區域右側的。
- 修改任務:選擇需要修改的任務,單擊Before launch區域右側的,在Select Maven Goal對話框中修改任務信息,單擊OK。
- 移動任務:選擇需要移動的任務,單擊Before launch區域右側的或,調整任務順序。
- 添加任務
部署多模塊工程
多模塊工程是各個模塊獨立開發,模塊之間存在調用關系的項目工程。Cloud Toolkit可以用于部署多模塊工程中的某個子模塊的場景。
如果您需要部署多模塊Maven工程的子模塊,您需要在Deploy to SAE頁面的Before launch區域,將待部署的子模塊任務設置為最后執行。具體操作,請參見使用IntelliJ IDEA部署多模塊工程中的子模塊 。
- 方式一:在父工程中執行打包及部署命令。
此方式需要toolkit-maven-plugin為1.0.3及以上版本。
在父工程中執行
toolkit:deploy
命令時,增加-Ddeploy_artifacts
參數來指定需要部署的子模塊Artifact ID。如果希望部署多個子模塊,請以半角逗號(,)分隔。例如:一個CarShop工程存在以下示例的子模塊:
carshop itemcenter-api itemcenter detail
如果想同時部署itemcenter和detail子模塊,您可以在carshop目錄下,執行以下命令:
mvn clean package toolkit:deploy -Ddeploy_artifacts=itemcenter,detail
默認情況下,此插件會根據itemcenter和detail模塊下的
.edas_config.yaml
文件來分別部署對應的應用。您也可以通過增加-Dedas_config
參數來指定配置文件。 - 方式二:在子模塊中執行打包及部署命令。此方式支持toolkit-maven-plugin所有版本。
首先,在父工程中執行
install
命令,將子模塊依賴安裝到本地的Maven倉庫。然后,進入到需要部署的子模塊目錄下執行toolkit:deploy
命令即可。