Azure App Service 上的託管實例(預覽版)是一種方案範圍的託管選項,適用於需要作業系統自訂、可選私有網路及與 Azure 資源安全整合的 Windows 網頁應用程式。 它針對舊有或依賴基礎設施的工作負載(元件物件模型(COM)、登錄檔、Microsoft/Windows 安裝程式(MSI)),同時保留 App Service 的受管理修補、擴展、診斷及身份特性。
這很重要
Managed Instance 目前處於預覽階段,僅支援部分地區的 Windows 網頁應用程式,且僅限於 Pv4 和 Pmv4 定價方案。 更多地區將陸續推出。 Linux 和容器系統不被支援。
主要功能
下表總結了受管理實例所提供的主要功能:
| 類別 | 能力 |
|---|---|
| 網路隔離 | 計畫層級虛擬網路整合(可選,建立後可新增): • 私人端點與自訂路由 • 網路安全群組(NSG)支援、NAT 閘道及路由表 • 私有網域名稱伺服器(DNS)用於內部名稱解析 |
| 計算隔離 | • 計畫範圍內的隔離,完全控制網路邊界 • 專用運算以實現可預測的效能 |
| 自訂元件支援 | PowerShell 安裝腳本用於: • COM組成部分 • 登錄檔與持久登錄檔值 • 網際網路資訊服務(IIS 伺服器)配置與存取控制列表(ACL) • MSI 安裝程式 • 非 Microsoft 元件與 Windows 服務 • 全域組件快取 (GAC) 安裝 • Windows 功能(MSMQ 用戶端、伺服器角色) • 自訂架構(客戶管理的補丁) |
| 登錄檔轉接器 | Azure Key Vault 支援的登錄金鑰安全設定 |
| 記憶體彈性 | • Azure 檔案與 Key Vault 整合 • UNC路徑與網路共享存取權 • 腳本磁碟映射 • 本地暫存儲存(2 GB,非持久) |
| 受管理的識別 | • 計畫層級的系統指派與使用者指派身份 • Azure資源的無鑰匙認證 |
| 作業效率 | 平台管理負載平衡、修補與擴展: • 水平自動縮放(所有實例) • 垂直比例(僅限 Pv4/Pmv4) |
| 遠端桌面通訊協定 | • 透過 Azure Bastion 的即時 RDP(需要虛擬網路) • 存取日誌、事件檢視器及 IIS 管理器 |
| 安全性和驗證 | • TLS 及具備憑證綁定的自訂網域 • 使用 Microsoft Entra ID 進行 App Service 認證 |
| 執行時支援 | • 預裝:.NET Framework 3.5、4.8 及 .NET 8 • 透過安裝腳本自訂執行環境 |
| CI/CD 整合 | GitHub Actions、Azure DevOps、zip 部署、封裝部署、run-from-package |
設定選項
受管理實例透過以下方式提供計畫層級的配置:
配置(安裝)腳本:將壓縮的PowerShell腳本上傳到Azure Storage(透過管理身份存取)。 腳本會在啟動時執行以進行持久設定。
- RDP 會話變更是暫時性的,且在重啟或平台維護後會遺失。
- 腳本執行日誌會出現在 App Service 主控台日誌中,並可串流至 Azure Monitor。
Windows 登錄檔介面卡:在方案層級定義登錄檔金鑰,並將秘密值儲存在 Azure Key Vault 中。
儲存體掛載:使用自訂磁碟機代號與 Azure 檔案儲存體或自訂 UNC 路徑來對應儲存體。 本地儲存空間也有,但容量限制為 2 GB,且重啟後不會持續存在。
RDP 存取:透過 Azure Bastion (需虛擬網路整合) JIT 遠端桌面。
記錄和疑難排解
- 受管理實例的日誌是在 App Service 方案層級建立,而非應用程式層級。
- 儲存掛載和登錄配接器事件會被記錄在 App Service 平台日誌中。 這些日誌可以透過 Logstream 串流,或整合至 Azure Monitor。
- 設定(安裝)腳本日誌可在 App Service 主控台日誌及實例上取得(例如 C:\InstallScripts scriptName<>\Install.log)。 使用 Logstream 或 Azure Monitor 來進行集中存取。
- RDP 存取需要 Azure Bastion 與虛擬網路整合。 建議使用 IIS Manager 和事件檢視器進行診斷。
選擇合適的主機方案
需要時使用受管理實例:
舊版 Windows 相容性
- COM 元件、登錄檔修改與 MSI 安裝程式
- IIS 管理員存取與診斷用的 RDP
- 透過 UNC 路徑或磁碟映射進行網路共享
遷移時需要最少重構
- 舊版 .NET Framework 應用程式的「提升與改善」
- 逐步現代化,無需完全重寫
- 計畫層級的網路隔離以滿足合規性需求
Windows 專屬自訂
- 啟動設定用的 PowerShell 安裝指令碼
- Windows 功能(例如 MSMQ 或伺服器角色)
- GAC 中的自訂非 Microsoft 元件
需要時使用標準應用程式服務:
現代雲端原生開發
- 多語言應用程式支援(Python、Node.js、Java、PHP 等)
- Linux 或容器化工作負載
- 平台管理基礎架構,無需作業系統自訂
- 更廣泛的執行時與框架選項
需要時使用應用服務環境(ASE):
企業級隔離
- 完全隔離、專用基礎設施
- 支援 100+ 應用程式的部署
- 完整的網路邊界控制
目前限制(預覽)
| 限度 | 詳細資訊 |
|---|---|
| 平台 | • 僅限 Windows(無 Linux/容器) 在 ASE 中無法提供 |
| SKU | 僅限 Pv4 和 Pmv4 |
| 地區 | 東亞、美國中西部、北歐、美國東部 |
| 驗證 | 僅支援 Entra ID 和 Managed Identity,不支援網域加入 / NTLM / Kerberos |
| 工作負載 | 僅限網頁應用程式(不包含 WebJobs、TCP/NetPipes) |
| Configuration | 持續變更需要腳本(RDP 僅用於診斷) |
最佳做法
- 使用設定腳本(安裝腳本)來進行持久設定。
- 利用 Key Vault 集中管理秘密。
- 在預覽環境中驗證日誌設定。
- 在生產推出前分階段測試設定 (安裝) 指令碼。
- 將網路規則與相依性清單對齊。
- 使用 Microsoft Defender for Cloud 監控以偵測威脅。