在 Azure Spring Apps 中設定預備環境
注意
Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。
本文適用於: ✔️ Java ❌ C#
本文適用於:❌ 基本✔️標準✔️企業
本文說明如何在 Azure Spring Apps 中使用藍色-綠色部署模式來設定預備部署。 藍綠部署是一種 Azure DevOps 持續傳遞模式,其仰賴在部署新的 (綠色) 版本時維持現有的 (blue) 版本。 本文說明如何將該預備部署放入生產環境,而不需變更生產部署。
必要條件
- 標準方案上現有的 Azure Spring Apps 實例。
- Azure CLI。
本文使用從 Spring Initializr 建置的應用程式。 如果您想要針對此範例使用不同的應用程式,請在應用程式的公開部分進行變更,以區分您的預備部署與生產部署。
提示
Azure Cloud Shell 是免費的互動式殼 層,可用來執行本文中的指示。 其具有常見的預安裝 Azure 工具,包括最新版本的 Git、JDK、Maven 和 Azure CLI。 如果您已登入 Azure 訂用帳戶,請啟動 Cloud Shell 實例。 若要深入瞭解,請參閱 Azure Cloud Shell 概觀。
若要在 Azure Spring Apps 中設定藍綠部署,請遵循下一節中的指示。
安裝 Azure CLI 延伸模組
使用下列命令安裝適用於 Azure CLI 的 Azure Spring Apps 擴充功能:
az extension add --name spring
準備應用程式和部署
若要建置應用程式,請遵循下列步驟:
使用 Spring Initializr 搭配 此組態來產生範例應用程式的程式代碼。
下載程序代碼。
將下列 HelloController.java 來源檔案新增至資料夾 *\src\main\java\com\example\hellospring*:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps!"; } }
建置 .jar 檔案:
mvn clean package -DskipTests
在 Azure Spring Apps 實例中建立應用程式:
將應用程式部署至 Azure Spring Apps:
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name demo \ --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
變更預備部署的程式代碼:
package com.example.hellospring; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class HelloController { @RequestMapping("/") public String index() { return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT"; } }
重建.jar檔案:
mvn clean package -DskipTests
建立綠色部署:
檢視應用程式和部署
使用下列步驟來檢視已部署的應用程式。
移至 Azure 入口網站 中的 Azure Spring Apps 實例。
從瀏覽窗格中,開啟 [ 應用程式 ] 窗格以檢視服務實例的應用程式。
選取應用程式以檢視詳細數據。
開啟 [部署 ] 以查看應用程式的所有部署。 此方格會顯示生產環境與預備部署。
選取 URL 以開啟目前部署的應用程式。
在 [狀態] 資料行中選取 [生產] 以查看預設應用程式。
在 [狀態] 資料行中選取 [預備] 以查看預備應用程式。
提示
確認您的測試端點以斜線 (/) 結尾,以確保 CSS 檔案已正確載入。 如果您的瀏覽器要求您輸入登入認證來檢視頁面,請使用 URL譯碼來譯碼 測試端點。 URL 譯碼會以 格式 https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green
傳回 URL。 使用此格式來存取您的端點。
注意
組態伺服器設定同時套用至預備環境和生產環境。 例如,如果您在組態伺服器中將應用程式示範的內容路徑 (server.servlet.context-path) 設定為 somepath,則綠色部署的路徑會變更為 https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/...
。
如果您此時瀏覽您的公開應用程式示範,您應該會看到舊頁面,而不會有新的變更。
將綠色部署設定為生產環境
在預備環境中驗證變更之後,您可以將變更推送至生產環境。 在 [應用程式部署]> 頁面上,選取目前在生產環境中的應用程式。
選取綠色部署的 [註冊狀態] 之後的省略號,然後選取 [設定為生產環境]。
確認應用程式的 URL 會顯示您的變更。
注意
將綠色部署設定為生產環境之後,先前的部署會變成預備部署。
修改預備部署
如果您對變更不滿意,您可以修改應用程式程式碼、建置新的.jar套件,並使用 Azure CLI 將它上傳至綠色部署:
az spring app deploy \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name demo \
--deployment green \
--artifact-path demo.jar
刪除預備部署
若要從 Azure 入口網站 中刪除預備部署,請移至預備部署的頁面,然後選取 [刪除] 按鈕。
或者,執行下列命令,從 Azure CLI 刪除預備部署:
az spring app deployment delete \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name <staging-deployment-name> \
--app demo