Azure App 服務 上的託管實例結合了平台即服務的簡單性與基礎設施層級控制的彈性。 受控執行個體 專為需要作業系統自訂、私有網路及與 Azure 服務安全整合的應用程式設計。
這很重要
受控執行個體 通常在特定地區的 Windows 網頁應用程式中提供,且僅限於 Pv4 和 Pmv4 的定價方案。 Microsoft 會隨著時間增加更多區域。 受控執行個體 不支援 Linux 和容器。
在這個快速入門中,你將完成以下步驟:
- 使用 Azure Developer CLI 來部署範例資源。
- 在 Azure App 服務 上建立受控執行個體。
- 部署一個範例應用程式。
- 驗證部署。
遷移現有的 .NET 應用程式
這個快速入門說明如何建立 受控執行個體 資源並部署範例應用程式。 如果您是以現有的 .NET 應用程式為起點,您可以在 Visual Studio Code 中使用 GitHub Copilot 適用於 .NET 的現代化,引導您完成從評估到部署的遷移流程。
備註
GitHub Copilot 現代化中的 受控執行個體 評估與部署目標體驗通常可在 Visual Studio Code 中取得。 Visual Studio 中對 受控執行個體 目標的支援預計將先於 Visual Studio Insiders 中推出,並在驗證後正式開放生產環境。
將評估目標設為 AppServiceManagedInstance.Windows,以根據 受控執行個體 特定指引分析應用程式。 GitHub Copilot 現代化則能協助你檢視遷移問題、套用修復、驗證應用程式、準備 Azure 資源,並部署到 受控執行個體。
要使用代理遷移工作流程,請參見:
先決條件
Azure 帳戶:您需要具有作用中訂用帳戶的 Azure 帳戶。 若您還沒有帳戶,可以免費建立帳戶。
可選設定(安裝)腳本:此快速入門使用壓縮 .zip 檔案中命名
Install.ps1的 PowerShell 腳本來安裝字型。 設定腳本並非 受控執行個體 的必備。 當您的應用程式需要相依性、作業系統層級角色、功能或組態,或在執行個體重新啟動後可能會遺失的永續性變更時,請使用組態指令碼。 診斷時應該用 RDP,而不是持續設定。
部署範例資源
你可以使用 Azure Developer CLI(AZD),在本快速入門中快速部署所有必要資源。 這個快速入門中使用的 AZD 範本來自 Azure 範例。
mkdir managed-instance-quickstart
cd managed-instance-quickstart
azd init --template https://github.com/Azure-Samples/managed-instance-azure-app-service-quickstart.git .
azd env set AZURE_LOCATION northeurope
azd up
azd up 命令會執行下列動作:
- 建立使用者指派的受控識別。
- 會產生一個 Azure 儲存區塊。
- 將託管身份指派給儲存容器和受管理實例計畫。
- 授予 Storage-Blob-Data-Contributor 對儲存容器的存取權限。
- 將包含的字型和 Install.ps1 壓縮到 scripts.zip。
- 將 scripts.zip 上傳到儲存容器。
備註
隨範例資源部署的設定腳本套件scripts.zip()包含 Install.ps1,該套件將 Microsoft Aptos 字型檔案複製至 C:\Windows\Fonts。 你部署的範例應用程式就是使用這些字型。
以下的 PowerShell 程式碼是範本中使用的設定(安裝)腳本。
# Install.ps1 - Copy and register fonts on Managed Instance
Write-Host "Installing custom fonts on Managed Instance..." -ForegroundColor Green
# Copy all TTF and OTF fonts to Windows Fonts folder and register them
Get-ChildItem -Recurse -Include *.ttf, *.otf | ForEach-Object {
$FontFullName = $_.FullName
$FontName = $_.BaseName + " (TrueType)"
$Destination = "$env:windir\Fonts\$($_.Name)"
Write-Host "Installing font: $($_.Name)"
Copy-Item $FontFullName -Destination $Destination -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $FontName -PropertyType String -Value $_.Name -Force | Out-Null
}
Write-Host "Font installation completed." -ForegroundColor Green
最終輸出 azd up 應該與以下範例相似。
=== Deployment Complete ===
Storage Account: stgpjqep6fdlfv6
Container Name: scripts
Managed Identity Client name: id-gpjqep6fdlfv6
Resource Group: rg-managed-instance
Storage Account、Container Name、Managed Identity Client name、Resource Group 和 Script URI 的值將在後續中使用。
部署受管理實例計畫
請依照以下步驟建立管理實例計畫並部署應用程式:
- 登入 Azure 入口網站。
- 選取 [+ 建立資源]。
- 搜尋 受管理實例
- 在結果中選擇 Web App(適用於 受控執行個體)。
- 選擇 建立 以開始建立流程。
- 在基本標籤中,請提供以下細節。
專案詳細資料
| Setting | 價值觀 |
|---|---|
| Subscription | 您的 Azure 訂用帳戶 |
| 資源群組 | rg-managed-instance |
應用程式詳細資料
| Setting | 價值觀 |
|---|---|
| 名稱 | contoso-mi-app |
| 執行階段堆疊 | ASPNET V4.8 |
| 區域 | 您附近的區域 |
定價方案
| Setting | 價值觀 |
|---|---|
| Windows 計劃 | 使用預設方案或建立新方案(例如「contoso-mi-plan」)。 |
| 定價方案* | 選擇一個價格方案。 如果 價格方案中沒有顯示 Pv4 或 Pmv4,請確認區域可用性或申請更多配額。 |
在進階分頁,提供以下細節。
設定 (安裝) 指令碼
| Setting | 價值觀 |
|---|---|
| 記憶體帳戶 | 使用預設方案或建立新方案(例如「contoso-mi-plan」)。 |
| 容器 | 腳本 |
| 壓縮檔 | scripts.zip |
| 價值觀 | 請確認 .zip 網址是否正確 |
| 身份 | 選擇先前建立的受管理身份 |
- 選取 [檢閱 + 建立],然後選取 [建立]。
將範例應用程式部署到 受控執行個體
在此步驟中,你使用 Cloud Shell 將包含在 AZD 範本中的範例應用程式部署到 受控執行個體。
- 以下指令將網頁應用程式部署到你的受管理實例計畫中。 以您自己的值取代
<app-name>和<resource-group>。
az webapp deploy \
--resource-group "<resource-group-name>" \
--name "<app-name>" \
--src-path app.zip \
--type zip
瀏覽至應用程式
若要流覽至已建立的應用程式,請在 [概觀] 頁面中選取預設網域。
.NET 應用程式是運行在受管實例計畫上。 這個應用程式使用 C:\Windows\Fonts 目錄中的字型。
管理受管理實例計畫
若要管理 Web 應用程式,請移至 Azure 入口網站,然後搜尋並選取 [應用程式服務]。
在 [應用程式服務] 頁面上,選取您的 Web 應用程式名稱。
在 概覽 頁面,選擇您的 App Service 方案名稱。 在 「目前應用程式服務方案」中,選擇方案名稱。
在左側選單的 設定中,選擇 設定 以查看設定細節。
清理資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您預期未來不需要這些資源,則可以藉由刪除資源群組予以刪除。
- 從 Azure 入口網站中的 Web 應用程式概觀頁面,選取資源群組底下的 myResourceGroup 連結。
- 在 [資源群組] 頁面上,確定所列出資源是您想要刪除的資源。
- 選取 [刪除資源群組],在文字方塊中輸入 myResourceGroup,然後選取 [刪除]。
- 請選取 [刪除] 以再次確認。