共用方式為


遷移至 Azure Container Apps

附註

基本標準和企業方案於 2025 年 3 月 17 日進入淘汰期。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

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

Azure Spring Apps 和 Azure Container Apps 都是 Azure 上的受控平臺,其設計目的是簡化執行中的應用程式,而不需要管理複雜的基礎結構。 這兩項服務可讓開發人員專注於其應用程式,而不是擔心基礎系統設定和維護。 它們以原生方式與 Azure 生態系統整合,可讓您輕鬆地與 Azure 監視器、金鑰保存庫 和 Azure DevOps 等服務連線,以進行監視、安全性和部署。

由於 Azure Spring Apps 已淘汰,我們建議您將 Azure Container Apps 作為主要服務,以移轉在 Azure Spring Apps 上執行的工作負載。 Azure Container Apps 為容器化應用程式提供現代化、彈性且可調整的基礎,以確保您的工作負載具備未來就緒且與 Azure 生態系統緊密整合。

本文提供詳細的指南,可協助您將工作負載從 Azure Spring Apps 移轉至 Azure Container Apps,將中斷降至最低,並協助您充分發揮新平臺的優點。

概念對應

下列概念對應資料表會反白顯示 Azure Spring 應用程式與 Azure 容器應用程式之間的平行處理。 它可協助您瞭解 Azure Spring Apps 中熟悉的概念如何轉譯為 Azure Container Apps 中的對等功能。

Azure Spring Apps 與 Azure Container Apps 之間的概念對應圖表。

Azure Spring Apps 服務 Azure Container Apps 服務
服務實例會裝載並保護應用程式和其他資源的界限,並支援自定義虛擬網路。 環境會建立容器應用程式的安全界限,並支援自定義虛擬網路。
應用程式是一個商務應用程式,可作為服務實例內的子資源。 容器應用程式是一個商務應用程式,定義為連線到受控環境的獨立 Azure 資源。
部署是應用程式的版本。 應用程式可以有一個生產部署和一個預備部署。 修訂是每個容器應用程式版本的不可變快照集。 容器應用程式可以有一或多個修訂。
應用程式實例是服務所管理的最低運行時間單位。 容器(復本) 是一組容器和最小運行時間單位。 您可以將多個容器設定在一起,包括 Sidecar 和 init 容器,以提供一個容器應用程式。

Azure 角色型訪問控制設定

Azure Spring Apps 和 Azure Container Apps 都支援 Azure 角色型存取控制 (RBAC) 設定。 不過,其體驗會因為其不同的資源階層而有所不同。

在 Azure Spring Apps 中,資源階層會以服務實例為中心。 角色指派會套用至 實例,並自動傳播至子資源,例如應用程式和部署。 此設計提供集中式管理。 不過,如果使用者需要特定應用程式或部署的存取權,而不是服務實例,您必須授與這些資源的特定許可權。

從 API 的觀點來看,Azure Container Apps 會將環境和容器應用程式的資源類型設計為位於相同階層層級的個別獨立實體。 您可以在受控環境或個別容器應用程式層級指派角色。 此結構可精確控制特定應用程式。 例如,您可以為不同的小組或個人授與不同容器應用程式的存取權。 這種彈性可讓您更輕鬆地在共用環境中獨立管理資源。 它也與管理其他 Azure 資源的熟悉體驗一致。

移轉方法

從 Azure Spring Apps 移轉至 Azure Container Apps 的移轉方法包含下列主要步驟:

本文所述的移轉步驟圖表。

  1. 評估和規劃:評估 Azure Spring Apps 上的目前工作負載,包括相依性、組態和網路設定。

  2. 容器化應用程式:雖然 Azure Container Apps 支援從 JAR 或原始程式碼部署,但建議您將應用程式容器化為 Docker 容器,其可移植性和效率更好。 您可以使用 Azure Container Registry 或 Docker Hub 之類的工具來建立 Dockerfiles 和建置容器映射,以容器化應用程式。 您也可以使用建置包在本機建構容器映像。 若要瞭解如何將應用程式容器化,並建置類似於在 Azure Spring Apps 中執行的容器映射,請參閱 容器化概觀。

  3. 設定 Azure Container Apps 環境:在 Azure Container Apps 中布建受控環境,包括設定虛擬網路、子網,以及任何必要的安全性設定,以符合您在 Azure Spring Apps 中的先前網路設定。 如需詳細資訊,請參閱布建 Azure Container Apps移轉自定義 虛擬網絡

  4. 在 Azure Container Apps 中建立及設定 Java 元件:啟用及設定 Eureka Server、Config Server、Gateway 和 Managed Admin。這些元件對於 Spring 應用程式中的微服務協調流程和管理而言非常重要。 確保它們已正確設定,以實現順暢的過渡。

    如果您使用企業方案,請參閱下列文章:

    如果您使用標準方案,請參閱下列文章:

  5. 部署容器:將容器化應用程式部署至 Azure Container Apps 環境。 根據您的需求設定應用程式修訂、調整原則和網路設定。 如需詳細資訊,請參閱 應用程式移轉概觀。

  6. 監視:在移轉期間,使用 Azure 監視器持續監視應用程式效能,並視需要調整組態來進行優化,例如調整調整設定或資源配置。 如需詳細資訊,請參閱 Azure Container Apps 中的記錄和計量。

  7. 測試和驗證:執行徹底的測試,以確保容器化應用程式在新環境中如預期般運作。 確認網路連線能力、調整及與其他服務整合。

  8. 用戶端和自動化工具:若要簡化日常開發和作業工作,請利用用戶端工具和自動化解決方案。 這些工具包括 Azure CLI、Azure DevOps、GitHub Actions,以及用戶端工具或 IDE 中的擴充功能。 這些工具可協助自動化部署、監視效能,以及有效率地管理資源、減少手動工作並增強作業靈活性。 若要了解熱門工具,請參閱 Azure Container Apps 的用戶端或自動化工具。

移轉小幫手工具

為了加快移轉速度,並協助您評估 Azure Container Apps 上的功能,我們在 Azure CLI 中提供新的命令。 此命令會根據服務實例的資源標識符,擷取現有 Azure Spring Apps 資源的組態。 然後,它會將這些設定轉譯成適用於 Azure Container App 資源的 Bicep 檔案。 此方法可讓您快速設定 Azure Container Apps 受控環境和應用程式資源,同時套用與現有 Azure Spring Apps 資源中設定類似的基本設定。

若要建立符合現有 Azure Spring Apps 資源組態的 Azure Container Apps 資源,請使用下列步驟:

  1. 使用 az extension add --name spring 命令安裝 Azure CLI 2.45.0 版或更高版本和最新版的 Azure Spring Apps 擴充功能。

  2. 使用下列命令產生 Bicep 檔案,以建立對應的 Azure Container Apps 資源:

    az spring export \
        --resource-group <resource-group-name> \
        --target aca \
        --subscription <subscription-id> \
        --service <service-name> \
        --output-folder <output-folder-name> 
    
  3. 上述命令會產生具有詳細指示 的 README.md 檔案。 請遵循這些指示來更新 Bicep 檔案中的必要參數。

    附註

    Azure Container Apps 需要容器化的映像 URL。 如果您還沒有應用程式的容器化映射 URL,您可以將快速入門映射 URL 保留在參數中保持不變,稍後再部署您自己的應用程式。 如需取得容器映像的詳細資訊,請參閱 容器化概觀

  4. 如果資源群組不存在,請使用下列命令加以建立:

    az group create \
        --name <resource-group-name> \
        --subscription <subscription-id> \
        --location <location> 
    
  5. 使用下列命令將 Azure Container Apps 資源部署至資源群組:

    附註

    您可能需要多次執行命令,並根據回應消息調整組態。

    az deployment group create \
      --resource-group <resource-group-name> \
      --template-file main.bicep \
      --parameters param.bicepparam \
      --subscription <subscription-id>
    
  6. 請遵循 README.md 檔案中的指示來更新進階功能的資源。 這些功能包括上傳憑證、啟用自定義網域、將角色指派新增至系統指派的受控識別等等。

  7. 如果您需要這些資源的 Terraform 設定,請使用 Azure Terraform 資源提供者的導出工作流程加以匯出。 如需詳細資訊,請參閱 Azure Terraform 資源提供者概觀

教學

我們提供教學課程來示範在 Azure Container Apps 上執行 ACME 健身商店應用程式的端對端體驗。 如需詳細資訊,請參閱 acme-fitness-store/azure-container-apps。 本教學課程提供實際作指引,協助您快速取得實際見解,並有信心在平臺上部署和管理容器化應用程式。