在 Azure App 服務 上部署受控執行個體

Azure App 服務 上的託管實例結合了平台即服務的簡單性與基礎設施層級控制的彈性。 受控執行個體 專為需要作業系統自訂、私有網路及與 Azure 服務安全整合的應用程式設計。

這很重要

受控執行個體 通常在特定地區的 Windows 網頁應用程式中提供,且僅限於 Pv4 和 Pmv4 的定價方案。 Microsoft 會隨著時間增加更多區域。 受控執行個體 不支援 Linux 和容器。

在這個快速入門中,你將完成以下步驟:

  1. 使用 Azure Developer CLI 來部署範例資源。
  2. 在 Azure App 服務 上建立受控執行個體。
  3. 部署一個範例應用程式。
  4. 驗證部署。

先決條件

  • Azure 帳戶:您需要具有作用中訂用帳戶的 Azure 帳戶。 若您還沒有帳戶,可以免費建立帳戶

  • 受控識別

  • 快速入門:透過 Azure 入口網站上傳、下載並列出 blob

  • 可選設定(安裝)腳本:此快速入門使用壓縮 .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 命令會執行下列動作:

  1. 建立使用者指派的受控識別。
  2. 會產生一個 Azure 儲存區塊。
  3. 將託管身份指派給儲存容器和受管理實例計畫。
  4. 授予 Storage-Blob-Data-Contributor 對儲存容器的存取權限。
  5. 將包含的字型和 Install.ps1 壓縮到 scripts.zip。
  6. 將 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 AccountContainer NameManaged Identity Client nameResource GroupScript URI 的值將在後續中使用。

部署受管理實例計畫

請依照以下步驟建立管理實例計畫並部署應用程式:

  1. 登入 Azure 入口網站
  2. 選取 [+ 建立資源]
  3. 搜尋 受管理實例
  4. 在結果中選擇 Web App(適用於 受控執行個體)
  5. 選擇 建立 以開始建立流程。
  6. 在基本標籤中,請提供以下細節。

專案詳細資料

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 目錄中的字型。

截圖顯示範例應用程式使用 C:\Windows\Fonts\Aptos.TTF。

管理受管理實例計畫

若要管理 Web 應用程式,請移至 Azure 入口網站,然後搜尋並選取 [應用程式服務]

在 [應用程式服務] 頁面上,選取您的 Web 應用程式名稱。

概覽 頁面,選擇您的 App Service 方案名稱。 在 「目前應用程式服務方案」中,選擇方案名稱。

在左側選單的 設定中,選擇 設定 以查看設定細節。

清理資源

在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您預期未來不需要這些資源,則可以藉由刪除資源群組予以刪除。

  1. 從 Azure 入口網站中的 Web 應用程式概觀頁面,選取資源群組底下的 myResourceGroup 連結。
  2. 在 [資源群組] 頁面上,確定所列出資源是您想要刪除的資源。
  3. 選取 [刪除資源群組],在文字方塊中輸入 myResourceGroup,然後選取 [刪除]
  4. 請選取 [刪除] 以再次確認。