共用方式為


將應用程式組態服務遷移至受控 Spring Cloud Config Server

注意

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

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

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

本文說明如何在搭配 Java 應用程式使用 Azure Spring Apps 企業版方案時,從應用程式組態服務 (ACS) 移轉至 Spring Cloud Config Server。

Spring Cloud Config Server 提供集中式設定服務,應用程式可用來從外部來源擷取組態屬性,例如 Git 存放庫。

布建 Spring Cloud Config Server

如果您有已啟用應用程式設定服務的 Azure Spring Apps 企業版方案實例,則從 ACS 移轉至 Spring Cloud Config Server 的第一個步驟是在 Azure Spring Apps 環境中布建設定伺服器。 您可以使用 Azure 入口網站 或 Azure CLI 來布建它。

使用下列步驟來布建 Spring Cloud Config Server:

  • 流覽至 Azure 入口網站 中的 Azure Spring Apps 企業實例。
  • 在功能表中,選取 [Spring Cloud Config Server]。
  • 選取 [ 管理] 以查看是否 已啟用 Spring Cloud Config Server 。 如果不是,請啟用它,然後選取 [ 套用 ] 以儲存。
  • 成功更新之後,您可以在 [概觀] 索引標籤中看到設定伺服器的布建狀態[成功]。

設定 Spring Cloud Config Server

布建 Spring Cloud Config Server 之後,下一個步驟是將它設定為您的應用程式,以確保順利移轉。

使用下列步驟在 Azure 入口網站 中設定 Spring Cloud Config Server:

  1. 在您的 Azure Spring Apps 實例中,流覽至 Spring Cloud Config Server

  2. 在 [設定] 索引標籤中,將 ACS 所有存放庫的組態對應至 Spring Cloud Config Server。

    如果您在 ACS 中只有一個存放庫,請將它對應至 Spring Cloud Config Server 的預設存放庫,而不需要名稱和模式。 如果您在 ACS 中有多個存放庫,請選擇一個存放庫作為 Spring Cloud Config Server 的預設存放庫,並使用其他存放庫作為其他存放庫。 將屬性,包括 urilabelsearch pathnameauthentication 從 ACS 遷移至 Spring Cloud Config Server。

    顯示 Spring Cloud Config Server 頁面之 Azure 入口網站 的螢幕快照。

  3. 對應組態之後,選取 [ 驗證 ] 以確認組態。

  4. 驗證成功之後,選取 [ 套用 ] 以完成 Spring Cloud Config Server 的設定。

  5. 若要套用變更,請在 [ 應用程式系結 ] 索引標籤中,選取 [系結應用程式],然後選取所有應用程式以使用 Spring Cloud Config Server。

若要移轉 ACS 的 屬性 pattern ,請務必確定您應用程式的 Azure Spring Apps 名稱符合 Git 存放庫中的組態檔名稱。

  • 如果 Azure Spring Apps 的應用程式名稱符合組態檔的檔名,Spring Cloud Config Server 會自動將具有相符名稱的組態檔套用至應用程式,而不需要額外的設定。
  • 如果名稱不相符,您必須建立名稱為組態檔名稱的新應用程式。

如需更多設定,請參閱 Spring Cloud Config Server 檔

更新您的應用程式設定

由於 ACS 與 Config Server 之間的實作機制差異,因此需要一些應用程式設定變更,才能適應擷取組態的方式。

布建及設定 Spring Cloud Config Server 之後,您必須使用下列步驟來調整組態:

  1. 將下列必要的 Spring Cloud Config 相依性新增至 Maven 的 pom.xml 檔案或 Gradle 的 build.gradle 檔案,以更新 Spring Boot 相依性。

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    
  2. 設定設定檔。

    在 ACS 中,您會在 Azure Spring Apps 部署中提供設定檔作為模式,而在 Spring Cloud Config Server 中,您會在應用程式的原始碼中設定設定檔。

    請確定您的應用程式會使用正確的配置檔 - devprod等 ,讓 Spring Cloud Config Server 能夠提供環境特定的組態。

    使用 正確的組態屬性更新應用程式中的bootstrap.ymlapplication.yml 檔案,以指向 Spring Cloud Config Server,如下列範例所示:

    spring:
      cloud:
        config:
          profile: dev
    

    請確定 Azure Spring Apps 的應用程式名稱符合 Git 存放庫中的組態檔名稱。 此外,請避免在應用程式的程式代碼中設定 spring.application.name

重新部署應用程式

在本機測試應用程式之後,您可以在 Azure Spring Apps 中重新部署它,以使用下列 Azure CLI 命令來使用 Spring Cloud Config Server:

az spring app deploy \
    --name <app-name> \
    --artifact-path <path-to-your-app> \
    --config-file-patterns '""'

使用 --config-file-patterns '""' 參數,它會從您的應用程式清除應用程式組態服務的參考。 應用程式會透過 Spring Cloud Config Server 取用設定,而不是應用程式組態服務。

停用應用程式組態服務

在所有應用程式完成移轉至 Spring Cloud Config Server 之後,您可以將這些應用程式解除系結至應用程式組態服務,並停用 ACS。

  1. 在您的 Azure Spring Apps 實例中,流覽至 [應用程式組態服務]
  2. 開啟 [應用程式系 結] 索引卷標,然後選取要解除系結的每個系結應用程式。
  3. 所有應用程式都未繫結之後,選取 [管理] 以停用應用程式組態服務。

請仔細遵循這些步驟,確保順利移轉,並在 Azure Spring Apps 內使用 Spring Cloud Config Server 的優點。

已知的限制

將 ACS 移轉至 Spring Cloud Config Server 僅適用於 Java 應用程式,因為 ACS 會使用 Kubernetes 原生 ConfigMap來管理設定。 此方法可在 Kubernetes 環境中啟用動態組態更新,使其適用於具有多個程式設計語言的不同應用程式。 Spring Cloud Config Server 主要是針對使用 Spring Framework 功能的 Java 應用程式所設計,因此它只支援 Java 的組態管理。