这些发行说明介绍了 Azure Stack Hub 上的应用程序服务 2021 Q1 中的改进和修复,以及任何已知问题。 已知问题分为两类:一类是与部署和更新过程直接相关的问题,另一类是生成版本(安装后)的问题。
重要
在部署或更新Azure 应用服务资源提供程序之前,如有必要,请将Azure Stack Hub更新到受支持的版本。 请务必阅读资源提供程序的发行说明,了解可能影响部署的新功能、修补程序和任何已知问题。
| 支持的最低 Azure Stack Hub 版本 | 应用服务资源提供程序版本 |
|---|---|
| 2311 及更高版本 | 25R1 安装程序,25R1 脱机包 (发行说明) |
构建参考
Azure Stack Hub 上的应用程序服务 2021 Q1 的内部版本号为 91.0.2.20
先决条件
在开始部署之前,请参阅准备工作文档。
在开始将 Azure Stack 上的 Azure 应用程序服务升级到 2021 Q1 之前,请满足以下先决条件:
确保已将 Azure Stack Hub 更新到 2102。
确保所有角色在 Azure Stack Hub 管理门户的 Azure 应用程序服务管理中处于“就绪”状态
在 Azure Stack Hub 管理员门户中使用“应用程序服务管理”来备份应用程序服务机密
备份应用程序服务和 SQL Server Master 数据库:
- AppService_Hosting;
- AppService_Metering;
- 主节点
备份租户应用程序内容文件共享
重要
云操作员负责文件服务器和 SQL Server 的维护和操作。 资源提供程序不管理这些资源。 云操作员负责备份应用程序服务数据库和租户内容文件共享。
从 Marketplace 分发 自定义脚本扩展 的 1.9.3 版本
更新
Azure Stack 上的 Azure 应用程序服务 Update 2021 Q1 包含以下改进和修复:
对应用服务租户门户、管理门户、函数门户和 Kudu 工具的更新。 与 Azure Stack 门户 SDK 版本一致。
为 Web 应用和函数应用添加了全屏创建体验
新增了与 Web 应用一致的 Azure Functions 门户体验
将 Azure Functions 运行时更新到 v1.0.13154。
针对核心服务的更新,用于提高可靠性和错误消息传递,以便更轻松地诊断常见问题。
针对以下应用程序框架和工具的更新:
- ASP.NET Core 5.0.4
- .NET Framework 4.8
- NodeJS
- 14.15.0
- NPM
- 1.1.37
- 1.2.30
- 1.3.11
- 已将 Kudu 更新到 90.21106.4900
对所有角色的基础操作系统的更新:
Windows Server 的累积更新现在会在部署和升级过程中应用到控制器角色
基于 MMC 的管理控制台已由 WPF 应用取代,以提升可访问性
TLS 密码套件已更新,以便与 Azure 服务保持一致。 从此版本起,套件将在每次更新时一并更新
此版本中已修复的问题
自定义共享 SKU 的租户使用情况未显示在租户使用情况报告中
使用服务主体进行部署/升级时无法选择订阅和位置
基于基础架构角色的日志清理器
添加了等待管理完成的步骤
如果生成的存储帐户名称超过 24 个字符,则安装将会失败,因为存储帐户名称不能超过 24 个字符
远程 git 推送错误:无效版本:transformer
更新前步骤
查看更新的已知问题,并采取规定的操作。
部署后步骤
重要
如果已经为应用程序服务资源提供程序提供 SQL Always On 实例,则必须将 appservice_hosting 和 appservice_metering 数据库添加到可用性组并同步数据库,以免在进行数据库故障转移时丢失服务。
已知问题(更新)
- 在客户已将 appservice_hosting 和 appservice_metering 数据库转换为包含的数据库的情况下,如果未将登录名成功迁移到包含的用户,则升级可能会失败
如果在部署后客户已将 appservice_hosting 和 appservice_metering 数据库转换为包含的数据库,但尚未将数据库登录名成功迁移到包含的用户,则可能会遇到升级失败的情况。
在将 Azure Stack Hub 上的 Azure 应用服务 安装升级到 2020 Q3 之前,客户必须在承载 appservice_hosting 和 appservice_metering 的 SQL Server 上执行以下脚本。 此脚本是非破坏性的,不会导致停机。
必须在满足以下条件的情况下运行此脚本
此脚本由具有系统管理员权限的用户(例如 SQL SA 帐户)运行;
如果使用 SQL Always On,请确保从包含了以下格式的所有应用程序服务登录名的 SQL 实例中运行该脚本:
- appservice_hosting_FileServer
- 应用服务_托管_托管管理员
- appservice_hosting_LoadBalancer
- 应用服务托管_操作
- AppService 托管发布者
- appservice_hosting_SecurePublisher
- appservice_hosting_WebWorkerManager
- 应用服务计量_Common
- appservice_metering_Operations (应用服务计量操作)
- 所有 WebWorker 登录名 - 采用 WebWorker_<instance ip address> 形式
USE appservice_hosting
IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
BEGIN
DECLARE @username sysname ;
DECLARE user_cursor CURSOR
FOR
SELECT dp.name
FROM sys.database_principals AS dp
JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
OPEN user_cursor
FETCH NEXT FROM user_cursor INTO @username
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_migrate_user_to_contained
@username = @username,
@rename = N'copy_login_name',
@disablelogin = N'do_not_disable_login';
FETCH NEXT FROM user_cursor INTO @username
END
CLOSE user_cursor ;
DEALLOCATE user_cursor ;
END
GO
USE appservice_metering
IF EXISTS(SELECT * FROM sys.databases WHERE Name=DB_NAME() AND containment = 1)
BEGIN
DECLARE @username sysname ;
DECLARE user_cursor CURSOR
FOR
SELECT dp.name
FROM sys.database_principals AS dp
JOIN sys.server_principals AS sp
ON dp.sid = sp.sid
WHERE dp.authentication_type = 1 AND dp.name NOT IN ('dbo','sys','guest','INFORMATION_SCHEMA');
OPEN user_cursor
FETCH NEXT FROM user_cursor INTO @username
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE sp_migrate_user_to_contained
@username = @username,
@rename = N'copy_login_name',
@disablelogin = N'do_not_disable_login';
FETCH NEXT FROM user_cursor INTO @username
END
CLOSE user_cursor ;
DEALLOCATE user_cursor ;
END
GO
已知问题(安装后)
如 Azure Stack 上的 Azure 应用程序服务部署文档中所述,当应用程序服务部署在现有虚拟网络中并且文件服务器仅在专用网络上可用时,工作人员将无法访问文件服务器。
如果您选择部署到现有虚拟网络,并使用内部 IP 地址连接到文件服务器,则必须添加一条出站安全规则,以允许工作子网与文件服务器之间的 SMB 流量。 在管理门户中找到 WorkersNsg,并添加一条出站安全规则,其属性如下:
- 源:任意
- 源端口范围:*
- 目标:IP 地址
- 目标 IP 地址范围:文件服务器的 IP 范围
- 目标端口范围:445
- 协议:TCP
- 操作:允许
- 优先级:700
- 名称:Outbound_Allow_SMB445
为了减少工作器与文件服务器通信时的延迟,如果文件服务器使用 Active Directory 进行保护,我们还建议将以下规则添加到工作器 NSG 中,以允许向你的 Active Directory 域控制器发出的出站 LDAP 和 Kerberos 流量;例如,如果你已使用快速入门模板部署了高可用性文件服务器和 SQL Server。
在管理门户中找到 WorkersNsg,并添加一条出站安全规则,其属性如下:
- 源:任意
- 源端口范围:*
- 目标:IP 地址
- 目标 IP 地址范围:您的 AD 服务器的 IP 地址范围,例如在快速入门模板中为 10.0.0.100、10.0.0.101
- 目标端口范围:389,88
- 协议: 任何
- 操作:允许
- 优先级:710
- 名称:Outbound_Allow_LDAP_and_Kerberos_to_Domain_Controllers
云管理员在操作基于 Azure Stack 的 Azure 应用程序服务时的已知问题
- 自定义域在离线环境中不受支持
应用程序服务针对公共 DNS 终结点执行域所有权验证,因此,在离线场景下不支持自定义域。
后续步骤
- 有关 Azure 应用程序服务的概述,请参阅基于 Azure Stack 的 Azure 应用程序服务概述。
- 若要详细了解如何完成基于 Azure Stack 的应用程序服务的部署准备,请参阅基于 Azure Stack 的应用程序服务的准备工作。