除了通過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任務構建部署套件。
- 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" $JarStartArgsJar 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地區右側的
。 - 修改任務:選擇需要修改的任務,單擊Before launch地區右側的
,在Select Maven Goal對話方塊中修改任務資訊,單擊OK。 - 移動任務:選擇需要移動的任務,單擊Before launch地區右側的
或
,調整任務順序。
- 新增工作
部署多模組工程
多模組工程是各個模組獨立開發,模組之間存在調用關係的專案工程。Cloud Toolkit可以用於部署多模組工程中的某個子模組的情境。
如果您需要部署多模組Maven工程的子模組,您需要在Deploy to SAE頁面的Before launch地區,將待部署的子模組任務設定為最後執行。
- 方式一:在父工程中執行打包及部署命令。
此方式需要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命令即可。