你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 应用服务上的托管实例(预览版)是一个计划范围的托管选项,适用于需要作系统(OS)自定义、可选专用网络和安全与 Azure 资源的集成的 Windows Web 应用。 它专注于旧式或依赖基础设施的工作负载(如组件对象模型(COM)、注册表、Microsoft/Windows Installer(MSI)),同时确保继续保留应用服务的托管修补、扩展、诊断和身份识别功能。
重要
托管实例为预览版,适用于选定区域中的 Windows Web 应用,并仅限于 Pv4 和 Pmv4 定价计划。 更多地区将陆续推出。 不支持 Linux 和容器。
关键功能
下表总结了托管实例提供的主要功能:
| 类别 | 能力 |
|---|---|
| 网络隔离 | 计划级虚拟网络集成(可选),可以在创建后添加): • 专用终结点和自定义路由 • 网络安全组(NSG)支持、NAT 网关和路由表 • 用于内部名称解析的专用域名服务器(DNS) |
| 计算隔离 | • 计划范围内的隔离,完全掌控网络边界 • 用于可预测性能的专用计算 |
| 自定义组件支持 | PowerShell 安装脚本,适用于: • COM 组件 • 注册表和持久性注册表值 • Internet Information Services (IIS Server) 配置和 ACL • MSI 安装程序 • 非Microsoft组件和 Windows 服务 • 全局程序集缓存 (GAC) 安装 • Windows 功能(MSMQ 客户端、服务器角色) • 自定义框架(客户自主管理的补丁) |
| 注册表适配器 | 基于 Azure Key Vault 的注册表项用于安全配置 |
| 存储灵活性 | • 使用 Key Vault 集成的 Azure 文件 • UNC 路径和网络共享访问 • 脚本化驱动器映射 • 本地临时存储(2 GB,非持久性) |
| 托管标识 | • 计划级别的系统分配标识和用户分配标识 • 对 Azure 资源的无密钥身份验证 |
| 运营效率 | 平台管理的负载均衡、修补和扩展: • 水平自动缩放(所有实例) • 垂直缩放(仅 Pv4/Pmv4) |
| 远程桌面协议 | • 通过 Azure Bastion 实时 RDP(需要虚拟网络) • 访问日志、事件查看器和 IIS 管理器 |
| 安全性和身份验证 | • 具有证书绑定的 TLS 和自定义域 • 使用 Microsoft Entra ID 的应用服务身份验证 |
| 运行时支持 | • 预安装:.NET Framework 3.5、4.8 和 .NET 8 • 通过安装脚本自定义运行时 |
| CI/CD 集成 | GitHub Actions,Azure DevOps,zip 部署,包部署,从包运行 |
配置选项
托管实例通过以下方式提供计划级配置:
配置(安装)脚本:将压缩的 PowerShell 脚本上传到 Azure 存储(通过托管标识访问)。 脚本在启动时为持久性配置运行。
- RDP 会话更改是临时的,在重启或平台维护后丢失。
- 脚本执行日志显示在应用服务控制台日志中,可以流式传输到 Azure Monitor。
Windows 注册表适配器:在计划级别定义注册表项,并将机密值存储在 Azure Key Vault 中。
存储装载:通过 Azure 文件存储或自定义 UNC 路径使用自定义驱动器号映射存储。 本地存储也可用,但限制为 2 GB,在重启后不会保留。
RDP 访问:通过 Azure Bastion 实时远程桌面(需要虚拟网络集成)。
日志记录和故障排除
- 托管实例的日志是在应用服务计划级别而不是应用级别创建的。
- 存储装载和注册表适配器事件在应用服务平台日志中捕获。 这些日志可以通过 Logstream 流式传输,也可以与 Azure Monitor 集成。
- 配置(install) 脚本日志在应用服务控制台日志和实例(例如 C:\InstallScripts<scriptName>\Install.log)中可用。 使用 Logstream 或 Azure Monitor 进行集中访问。
- RDP 访问需要 Azure Bastion 和虚拟网络集成。 建议使用 IIS 管理器和事件查看器进行诊断。
选择正确的托管选项
如果需要,请使用托管实例:
旧版 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 |
| Regions | 东亚、美国中西部、北欧、美国东部 |
| 身份验证 | 仅限 Entra ID 和托管标识(无域加入/NTLM/Kerberos) |
| 工作负载 | 仅限 Web 应用(无 WebJobs、TCP/NetPipes) |
| 配置 | 持久更改需要脚本(RDP 仅限于诊断) |
最佳做法
- 使用配置脚本(安装脚本)进行持久配置。
- 使用 Key Vault 集中机密。
- 在预览环境中验证日志记录设置。
- 在正式发布之前,在预生产环境中测试配置(安装)脚本。
- 将网络规则与依赖项清单保持一致。
- 使用 Microsoft Defender for Cloud 进行监视,以便进行威胁检测。