ASP.NET 應用程式容器化和移轉至 Azure App Service

在本文中,您將瞭解如何使用 Azure Migrate 應用程式容器化工具來將 ASP.NET 應用程式容器化,並將其遷移至 Azure App 服務。 容器化程式不需要存取您的程式代碼基底,並提供簡單的方法來容器化現有的應用程式。 此工具的運作方式是使用伺服器上的應用程式執行狀態來判斷應用程式元件。 然後,它可協助您將它們封裝在容器映像中。 接著,您可以在 Azure App 服務 上部署容器化應用程式。

Azure Migrate 應用程式容器化工具目前支援:

  • 容器化 ASP.NET 應用程式,並將其部署在App Service上的Windows容器上。
  • 容器化 ASP.NET 應用程式,並將其部署在 Azure Kubernetes Service (AKS) 上的 Windows 容器上。 深入瞭解此容器化案例。
  • 在 Apache Tomcat 上容器化 Java Web 應用程式(在 Linux 伺服器上),並在 AKS 上的 Linux 容器上部署它們。 深入瞭解此容器化案例。
  • 在 Apache Tomcat 上容器化 Java Web 應用程式(在 Linux 伺服器上),並在 App Service 上的 Linux 容器上部署它們。 深入瞭解此容器化案例。

應用程式容器化工具可協助您:

  • 探索您的應用程式元件。 此工具會從遠端連線到執行 ASP.NET 應用程式的應用程式伺服器,並探索應用程式元件。 它會建立 Dockerfile,讓您可用來建立應用程式的容器映射。
  • 建置容器映像。 您可以根據應用程式需求檢查並進一步自定義 Dockerfile,並用它來建置應用程式容器映像。 應用程式容器映像會推送至您指定的 Azure Container Registry。
  • 部署到 Azure App Service。 接著,此工具會產生將容器化應用程式部署至 Azure App 服務 所需的部署檔案。

注意

Azure Migrate 應用程式容器化工具可協助您探索特定應用程式類型(ASP.NET 和 Apache Tomcat 上的 Java Web 應用程式)及其應用程式伺服器上的元件。 若要探索在內部部署計算機上執行的應用程式、角色和功能的清查,請使用 Azure Migrate 探索和評估工具

並非所有應用程式都能從直接轉移至容器而受益,而不需要進行重大重新架構。 但是,將現有應用程式移至容器而不需要重寫的一些優點包括:

  • 改善基礎結構使用率。 當您使用容器時,多個應用程式可以共用資源,並裝載在相同的基礎結構上。 這可協助您合併基礎結構並改善使用率。
  • 簡化管理。 藉由將應用程式裝載在 AKS 和 App Service 等現代化受控平臺上,您可以簡化管理做法。 您可以藉由淘汰或減少傳統上以擁有的基礎結構來執行的基礎結構維護和管理程式,來達成此簡化。
  • 應用程式可移植性。 隨著容器規格格式和平臺的採用和標準化增加,應用程式可移植性不再是問題。
  • 使用DevOps採用新式管理。 使用容器可協助您採用並標準化管理和安全性的新式做法,並轉換至 DevOps。

在本教學課程中,您將了解如何:

  • 設定 Azure 帳戶。
  • 安裝 Azure Migrate 應用程式容器化工具。
  • 探索您的 ASP.NET 應用程式。
  • 建置容器映像。
  • 在 App Service 上部署容器化應用程式。

注意

教學課程提供案例最簡單的部署路徑,以便快速設定概念證明。 教學課程盡可能使用預設選項,而且不會顯示所有設定和路徑。

必要條件

開始本教學課程之前,您應該:

需求 詳細資料
識別要安裝此工具的計算機 您需要安裝並執行 Azure Migrate 應用程式容器化工具的 Windows 電腦。 Windows 計算機可以執行伺服器(Windows Server 2016 或更新版本)或用戶端 (Windows 10) 操作系統。 (此工具可以在桌面上執行。

執行此工具的 Windows 機器應該具有伺服器或虛擬機的網路連線,這些伺服器或虛擬機裝載您將容器化 ASP.NET 應用程式。

請確定執行 Azure Migrate 應用程式容器化工具的 Windows 電腦上有 6 GB 可用。 此空間適用於儲存應用程式成品。

Windows 電腦應該可以直接或透過 Proxy 存取網際網路。

如果執行應用程式容器化工具和應用程式伺服器的電腦上尚未安裝 Microsoft Web 部署工具,請加以安裝。 您可以 下載此工具
應用程式伺服器 在應用程式伺服器上啟用PowerShell遠端:登入應用程式伺服器,並遵循 下列指示來開啟PowerShell遠端

確定已在應用程式伺服器上安裝 PowerShell 5.1 版。 遵循在應用程式伺服器上安裝和設定WMF 5.1中的指示。

如果執行應用程式容器化工具和應用程式伺服器的電腦上尚未安裝 Microsoft Web 部署工具,請加以安裝。 您可以 下載此工具
ASP.NET 應用程式 此工具目前支援:
  • ASP.NET 使用 .NET Framework 3.5 或更新版本的應用程式。
  • 執行 Windows Server 2012 R2 或更新版本的應用程式伺服器。 (應用程式伺服器應該執行 PowerShell 5.1。)
  • 在 網際網路資訊服務 7.5 或更新版本上執行的應用程式。


此工具目前不支援:
  • 需要 Windows 驗證的應用程式。 (AKS 目前不支援 gMSA。
  • 相依於 網際網路資訊服務 以外裝載之其他 Windows 服務的應用程式。

準備 Azure 用戶帳戶

如果您沒有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

設定訂用帳戶之後,您將需要具有:

  • Azure 訂用帳戶上的擁有者權限。
  • 註冊 Microsoft Entra 應用程式的權限。

如果您剛建立免費的 Azure 帳戶,您就是訂用帳戶的擁有者。 若您不是訂用帳戶擁有者,請與擁有者合作以根據下列步驟指派權限:

  1. 在 Azure 入口網站 中,搜尋「訂用帳戶」。在 [服務] 底下,選取 [訂用帳戶]:

    Screenshot that shows the search box for searching for an Azure subscription.

  2. [訂用帳戶] 頁面中,選取您要在其中建立 Azure Migrate 專案的訂用帳戶。

  3. 在訂用帳戶的左窗格中,選取 [訪問控制][IAM]。

  4. 在 [ 檢查存取權] 索引卷標上,搜尋相關的用戶帳戶。

  5. 在 [新增角色指派] 底下,選取 [新增]:

    Screenshot that shows searching for a user account to check access and assign a role.

  6. 在 [ 新增角色指派 ] 頁面上,選取 [擁有者 ] 角色,然後選取帳戶 (我們範例中的 azmigrateuser )。 然後選取儲存

    Screenshot that shows the Add role assignment page.

    您的 Azure 帳戶也需要註冊 Microsoft Entra 應用程式的權限。

  7. 在 Azure 入口網站 中,移至 Microsoft Entra ID>Users>User 設定。

  8. 在 [ 用戶設定] 中,確認 Microsoft Entra 使用者可以註冊應用程式。 (此選項設定為 默認為 [是 ]。

    Screenshot that shows the User settings page.

  9. 如果 [應用程式註冊] 選項設定為 [否],請要求租使用者/全域管理員指派必要的許可權。 或者,租使用者/全域系統管理員可以將應用程式開發人員角色指派給帳戶,以允許註冊 Microsoft Entra 應用程式。 如需詳細資訊,請參閱 將角色指派給使用者

下載並安裝 Azure Migrate 應用程式容器化工具

  1. 在 Windows 電腦上下載 Azure Migrate 應用程式容器化安裝程式

  2. 以系統管理員模式開啟 PowerShell,並將 PowerShell 目錄變更為包含安裝程式的資料夾。

  3. 使用此指令執行安裝文稿:

    .\AppContainerizationInstaller.ps1
    

注意

針對 Windows Server 2022,請編輯第 135 行並從功能清單中移除 PowerShell-ISE ,因為不再支援此功能。

開啟應用程式容器化工具

  1. 在任何可連線到執行應用程式容器化工具之 Windows 機器的電腦上開啟瀏覽器。 移至工具 URL: https:// machine 名稱或 IP 位址:44369

    或者,您可以使用應用程式快捷方式,從桌面開啟應用程式。

  2. 如果您看到指出您的連線不是私人的警告,請選取 [進階 ],然後繼續前往網站。 因為 Web 介面使用自我簽署的 TLS/SSL 憑證,因此會出現此警告。

  3. 在登入畫面上,使用計算機的本機系統管理員帳戶登入。

  4. 選取 [ASP.NET Web 應用程式] 作為要容器化的應用程式類型。

  5. 在 [目標 Azure 服務] 列表中,選取 [Azure App 服務 上的容器:

    Screenshot that shows the application type and target lists.

完成工具必要條件

  1. 接受授權條款,並閱讀第三方資訊。
  2. 在工具 Web 應用程式中 設定必要條件,完成下列步驟:
    • 連線能力。 此工具會檢查 Windows 電腦是否具有因特網存取權。 如果電腦使用 Proxy:

      1. 選取 [設定 Proxy] 以指定 Proxy 位址(格式為IP 位址或 FQDN),並接聽埠。

      2. 如果 Proxy 需要驗證,請指定認證。

      3. 如果您已新增 Proxy 詳細資料或停用 Proxy 或驗證,請選取 [ 儲存 ] 以再次觸發連線檢查。

      僅支援 HTTP Proxy。

    • 安裝更新。 此工具會自動檢查最新的更新,並加以安裝。 您也可以 手動安裝最新版本的工具

    • 安裝 Microsoft Web Deploy 工具。 此工具會檢查 Microsoft Web 部署工具是否安裝在執行 Azure Migrate 應用程式容器化工具的 Windows 電腦上。

    • 啟用PowerShell遠端處理。 此工具會提示您確定在執行要容器化之 ASP.NET 應用程式的應用程式伺服器上已啟用 PowerShell 遠端處理。

登入 Azure

  1. 選取 [登入] 以登入您的 Azure 帳戶。

    您需要裝置代碼以向 Azure 進行驗證。 選取 [登入 ] 應該會開啟包含裝置程式代碼的視窗。 如果視窗未出現,請確定您已停用瀏覽器中的快顯封鎖程式。

  2. 選取 [複製程式代碼並登入 ] 以複製裝置程式代碼,然後在新的瀏覽器索引標籤中開啟 Azure 登入提示:

    Screenshot that shows the Device code for Azure Sign in window.

  3. 在新的索引標籤上,貼上裝置程式代碼,並使用您的 Azure 帳戶認證完成登入。 登入之後,您可以關閉瀏覽器索引標籤,並返回應用程式容器化工具的 Web 介面。

  4. 選取您要使用的 Azure 租用戶

  5. 指定您要使用的 Azure 訂用帳戶

探索 ASP.NET 應用程式

應用程式容器化工具會使用提供的認證從遠端連線到應用程式伺服器,並嘗試探索裝載於應用程式伺服器上的 ASP.NET 應用程式。

  1. 指定 伺服器 IP 位址 /FQDN ,以及執行 ASP.NET 應用程式之伺服器的認證,這些應用程式應該用來從遠端連線到伺服器以進行應用程式探索。

    • 提供的認證必須是應用程式伺服器上的本機系統管理員 (Windows)。
    • 對於網域帳戶(用戶必須是應用程式伺服器上的系統管理員),請將用戶名稱前面加上下列格式的用戶名稱: <domain\user name>
    • 針對本機帳戶(用戶必須是應用程式伺服器上的系統管理員),請將用戶名稱前面加上下列格式的主機名: <主機名\用戶名稱>
    • 您可以執行多達五部伺服器的應用程式探索。
  2. 選取 [驗證],以確認可從執行此工具的機器連線至應用程式伺服器,而且認證有效。 驗證成功時, [狀態 ] 資料行會將狀態 顯示為 [已對應]:

    Screenshot that shows the server status as Mapped.

  3. 選取 [繼續],在選取的應用程式伺服器上開始執行應用程式探索。

  4. 應用程式探索完成時,請選取您要容器化的應用程式:

    Screenshot that shows the discovered ASP.NET application.

  5. 為每個選取的應用程式指定目標容器的名稱。 將容器名稱指定為 <name:tag>,其中 標記 用於容器映射。 例如,您可以將目標容器名稱指定為 appname:v1

將應用程式設定參數化

將組態參數化可讓它以部署時間參數的形式提供。 參數化可讓您在部署應用程式時設定設定,而不是將它硬式編碼為容器映像中的特定值。 例如,此選項對資料庫連接字串等參數很有用。

  1. 選取 [應用程式設定] 以檢閱偵測到的設定。

  2. 選取您要參數化的參數,然後選取 [ 套用]:

    Screenshot that shows the list of detected configurations.

將檔案系統相依性外部化

您可以新增應用程式所使用的其他資料夾。 指定它們是否應是容器映像的一部分,或應該透過 Azure 檔案共用外部化至永續性記憶體。 使用外部永續性記憶體適用於儲存容器外部狀態,或將其他靜態內容儲存在檔案系統上的具狀態應用程式。

  1. 選取 [應用程式資料夾] 底下的 [編輯],以檢閱偵測到的應用程式資料夾。 這些資料夾已識別為應用程式所需的必要成品。 它們將會複製到容器映像中。

  2. 選取 [ 新增資料夾 ],並指定您要新增的資料夾路徑。

  3. 若要將多個資料夾新增至相同的磁碟區,請以逗號分隔值。

  4. 如果您想要將資料夾儲存在永續性記憶體上的容器外部,請選取 [Azure 檔案分享 ] 作為記憶體選項。

  5. 檢閱應用程式資料夾之後,選取 [儲存 ]:

    Screenshot that shows the Edit application folders window.

  6. 選取 [繼續],以進入容器映像建立階段。

建置容器映像

  1. 在下拉式清單中,選取 將用來建置及儲存應用程式的容器映射的 Azure 容器登錄 。 您可以使用現有的 Azure 容器登錄,或選取 [建立新的登錄] 來建立新的登錄

    Screenshot that shows the Build images window.

    注意

    只會顯示已啟用系統管理員用戶帳戶的 Azure 容器登錄。 目前需要系統管理員用戶帳戶,才能將映像從 Azure 容器登錄部署至 Azure App 服務。 如需詳細資訊,請參閱 使用 Azure 容器登錄進行驗證。

  2. 建置步驟開始時會產生建置每個所選應用程式的容器映像所需的 Dockerfiles。 按一下 [檢閱] 以檢閱 Dockerfile。 您也可以在檢閱步驟中將任何必要的自定義新增至 Dockerfile,並在開始建置程式之前儲存變更。

  3. 選取您要為其建置映像的應用程式,然後選取 [ 置]。 選取 [建置],將開始為每個應用程式建置容器映像。 此工具會監視組建狀態,並可讓您在建置完成時繼續進行下一個步驟。

  4. 您可以選取 [狀態] 資料行底下的 [進行 中建置] 來監視組建的進度。 在您觸發建置程序之後,鏈接將會變成作用中幾分鐘。

  5. 建置完成之後,選取 [ 繼續 ] 以指定部署設定:

    Screenshot that shows the Review link, the container image status, and the Build and Continue buttons.

在 Azure App 服務 上部署容器化應用程式

建置容器映射之後,下一個步驟是將應用程式部署為 Azure App 服務 上的容器。

  1. 選取應用程式應該使用的 Azure App 服務 方案。

    如果您沒有 App Service 方案或想要建立要使用的新 App Service 方案,您可以選取 [建立新的 App Service 方案] 來建立一個方案

  2. 選取 App Service 方案之後,請 選取 [繼續 ]。

  3. 如果您將應用程式組態參數化,請指定要用於應用程式的秘密存放區。 您可以選擇 Azure 金鑰保存庫 或 App Service 應用程式設定來管理您的應用程式秘密。 如需詳細資訊,請參閱設定 連接字串

    • 如果您選取 [App Service] 應用程式設定來管理秘密,請選取 [ 繼續]。
    • 如果您想要使用 Azure 金鑰保存庫來管理應用程式秘密,請指定您想要使用的金鑰保存庫。
      • 如果您沒有 Azure 金鑰保存庫或想要建立新的金鑰保存庫,您可以選取 [建立新的 Azure 金鑰保存庫 來建立一個保存庫。
      • 此工具會自動指派必要的許可權,以透過金鑰保存庫管理秘密。
  4. 如果您新增更多資料夾,並選取持續性記憶體的 Azure 檔案共享選項,請指定應用程式容器化工具在部署期間要使用的 Azure 檔案共用。 此工具會複製您為 Azure 檔案儲存體 設定的應用程式資料夾,並在部署期間將它們掛接在應用程式容器上。 

    如果您沒有 Azure 檔案共享或想要建立新的 Azure 檔案共用,您可以選取 [建立新的 儲存體 帳戶和檔案共用來建立一個檔案共用

  5. 您現在必須指定應用程式的部署組態。 選取 [設定] 以自訂應用程式的部署。 在設定步驟中,您可以提供下列自定義專案:

    • 名稱. 指定應用程式的唯一應用程式名稱。 此名稱將用來產生應用程式 URL。 它也會作為部署一部分所建立之其他資源的前置詞。
    • 應用程式組態。 對於參數化的任何應用程式組態,請提供用於目前部署的值。
    • 存放裝置設定。 檢閱針對永續性記憶體設定的任何應用程式資料夾資訊。

    Screenshot that shows the deployment configuration.

  6. 儲存應用程式的部署組態之後,此工具會產生應用程式的 Kubernetes 部署 YAML。

    • 選取 [ 閱] 以檢閱應用程式的部署組態。

    • 選取您想要部署的應用程式。

    • 選取 [部署] 以開始針對選取的應用程式進行部署。

      Screenshot that shows the Deploy button.

    • 部署應用程式之後,您可以選取 [部署狀態 ] 資料行來追蹤為應用程式部署的資源。

疑難排解問題

若要針對應用程式容器化工具的問題進行疑難解答,您可以查看執行此工具之 Windows 電腦上的記錄檔。 此工具的記錄檔位於 C:\ProgramData\Microsoft Azure Migrate 應用程式容器化\記錄

下一步