共用方式為


在 Azure Spring Apps 中設定預備環境

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文適用於:✅ Java ❎ C#

本文適用於: ❎基本 ✅ 標準 ✅ 企業

本文說明如何在 Azure Spring Apps 中使用藍綠部署模式來設定暫存部署。 藍綠部署是 Azure DevOps 持續傳遞模式,此模式仰賴在部署新版本 (綠色) 時,仍讓現有版本 (藍色) 持續運作的方式。 本文也會示範如何在不變更生產環境部署的情況下,將預備部署置於生產環境中。

必要條件

  • 標準方案上現有的 Azure Spring 應用程式執行個體。
  • 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 應用程式延伸模組 (部分機器翻譯):

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 decode \(英文\) 來將您的測試端點解碼。 URL 解碼會以 https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green 格式傳回 URL。 請使用這個格式來存取您的端點。 如果您要停用測試端點的基本驗證,請執行下列 Azure CLI 命令:az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true

注意

設定伺服器的設定適用於預備環境和生產環境。 例如,如果您將設定伺服器中應用程式示範的內容路徑 (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

下一步