Share via


在 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

準備應用程式和部署

若要建置應用程式,請遵循下列步驟:

  1. 使用 Spring Initializr 搭配 此組態來產生範例應用程式的程式代碼。

  2. 下載程序代碼。

  3. 將下列 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!";
      }
    
    }
    
  4. 建置 .jar 檔案:

    mvn clean package -DskipTests
    
  5. 在 Azure Spring Apps 實例中建立應用程式:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. 將應用程式部署至 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
    
  7. 變更預備部署的程式代碼:

    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";
      }
    
    }
    
  8. 重建.jar檔案:

    mvn clean package -DskipTests
    
  9. 建立綠色部署:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

檢視應用程式和部署

使用下列步驟來檢視已部署的應用程式。

  1. 移至 Azure 入口網站 中的 Azure Spring Apps 實例。

  2. 從瀏覽窗格中,開啟 [ 應用程式 ] 窗格以檢視服務實例的應用程式。

    [應用程式] 窗格的螢幕快照,其中顯示服務實例的應用程式。

  3. 選取應用程式以檢視詳細數據。

    示範應用程式的螢幕快照,其中顯示 [概觀] 頁面的可用設定。

  4. 開啟 [部署 ] 以查看應用程式的所有部署。 此方格會顯示生產環境與預備部署。

    顯示已列出應用程式部署的螢幕快照。

  5. 選取 URL 以開啟目前部署的應用程式。

    顯示已部署應用程式的URL的螢幕快照。

  6. 在 [狀態] 資料行中選取 [生產] 以查看預設應用程式。

    顯示預設應用程式 URL 的螢幕快照。

  7. 在 [狀態] 資料行中選取 [預備] 以查看預備應用程式。

    顯示預備應用程式的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/...

如果您此時瀏覽您的公開應用程式示範,您應該會看到舊頁面,而不會有新的變更。

將綠色部署設定為生產環境

  1. 在預備環境中驗證變更之後,您可以將變更推送至生產環境。 在 [應用程式部署]> 頁面上,選取目前在生產環境中的應用程式。

  2. 選取綠色部署的 [註冊狀態] 之後的省略號,然後選取 [設定為生產環境]。

    此螢幕快照顯示將預備組建設定為生產環境的選取專案。

  3. 確認應用程式的 URL 會顯示您的變更。

    顯示應用程式目前在生產環境中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

下一步