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 容器上。 深入瞭解此容器化案例。
  • 在 Linux 伺服器上將 Apache Tomcat 上的 JAVA Web 應用程式容器化 () ,並將其部署在 AKS 上的 Linux 容器上。 深入瞭解此容器化案例。
  • 將 Linux 伺服器上 Apache Tomcat (上的 JAVA Web 應用程式容器化) ,並在 linux 容器上部署App Service。 深入瞭解此容器化案例。

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

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

注意

Azure Migrate 應用程式容器化工具可協助您探索 Apache Tomcat 上的特定應用程式類型 (ASP.NET 和 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 已安裝在應用程式伺服器上。 請遵循這裡的指示 ,在應用程式伺服器上下載並安裝 PowerShell 5.1

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


此工具目前不支援:
  • 需要Windows 驗證的應用程式。 (AKS 目前不支援 gMSA.)
  • 相依于 Internet Information Services 外部裝載之其他 Windows 服務的應用程式。

準備 Azure 使用者帳戶

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

設定訂用帳戶之後,您將需要具有下列功能的 Azure 使用者帳戶:

  • Azure 訂用帳戶的擁有者許可權。
  • 註冊 Azure Active Directory 應用程式的權限。

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

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

    顯示搜尋方塊的螢幕擷取畫面,用於搜尋 Azure 訂用帳戶。

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

  3. 在訂用帳戶的左窗格中,選取 [ 存取控制] (IAM)

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

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

    顯示搜尋使用者帳戶以檢查存取權並指派角色的螢幕擷取畫面。

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

    顯示 [新增角色指派] 頁面的螢幕擷取畫面。

    您的 Azure 帳戶也需要有註冊 Azure Active Directory 應用程式的權限。

  7. 在Azure 入口網站中,移至[Azure Active Directory>使用者使用者>設定]。

  8. [使用者設定] 中,確認 Azure AD 使用者可以註冊應用程式。 (此選項預設設定為 [是 ]。)

    顯示 [使用者設定] 頁面的螢幕擷取畫面。

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

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

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

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

  3. 使用此命令執行安裝腳本:

    .\AppContainerizationInstaller.ps1
    

開啟應用程式容器化工具

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

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

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

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

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

  5. 在 [目標 Azure 服務] 清單中,選取[Azure App 服務上的容器

    顯示應用程式類型和目標清單的螢幕擷取畫面。

完成工具必要條件

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

      1. 選取 [設定 Proxy ] 以在 IP 位址或 FQDN) 和接聽埠格式中指定 proxy 位址 (。

      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 登入提示:

    此螢幕擷取畫面顯示 [Azure 登入] 視窗的 [裝置程式碼]。

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

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

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

探索 ASP.NET 應用程式

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

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

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

    顯示伺服器狀態為 [對應] 的螢幕擷取畫面。

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

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

    顯示探索到 ASP.NET 應用程式的螢幕擷取畫面。

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

將應用程式設定參數化

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

  1. 選取 應用程式組態 以檢閱偵測到的組態。

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

    顯示偵測到組態清單的螢幕擷取畫面。

將檔案系統相依性外部化

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

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

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

  3. 若要將多個資料夾新增至相同的磁片區,請使用逗號分隔這些值。

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

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

    顯示 [編輯應用程式資料夾] 視窗的螢幕擷取畫面。

  6. 選取 [繼續 ] 以繼續進行容器映射建置階段。

建置容器映像

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

    顯示 [建置映射] 視窗的螢幕擷取畫面。

    注意

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

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

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

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

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

    顯示 [檢閱] 連結、容器映射狀態和 [建置和繼續] 按鈕的螢幕擷取畫面。

在 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. 您現在必須指定應用程式的部署組態。 選取 [ 設定 ] 以自訂應用程式的部署。 在設定步驟中,您可以提供下列自訂專案:

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

    顯示部署設定的螢幕擷取畫面。

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

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

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

    • 選取 [部署 ] 以啟動所選應用程式的部署。

      顯示 [部署] 按鈕的螢幕擷取畫面。

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

問題疑難排解

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

下一步