你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍了 Azure 应用服务 如何更新作系统(OS)和运行时软件、如何获取版本信息以及如何手动升级到新版本。
应用服务是平台即服务(PaaS),因此 Azure 会为你管理 OS 和应用程序堆栈。 仅管理应用程序及其数据。 如果需要对 OS 和应用程序堆栈进行更多控制,可以使用 Azure 虚拟机。
作为应用服务用户,你仍有助于了解以下信息,例如:
本文提供流程的透明度,并帮助你随时了解与安全相关的公告和运行时更新。 出于安全原因,不会发布某些特定的安全信息。
如何以及何时应用 OS 更新?
Azure 管理运行应用服务资源的物理服务器和来宾虚拟机(VM)的 OS 修补。 这两个计算机层都是每月更新的,与周二的每月 修补 计划保持一致。
这些更新会自动应用,同时保证 Azure 服务的高可用性服务级别协议(SLA)。 Azure 应用服务 OS 修补遵循 安全部署做法(SDP) 和可用性优先方法。 尽快应用最新的修补程序,但 OS 修补有时可能会变慢或暂停,以避免应用影响和中断。
有关如何应用更新的详细信息,请参阅揭示应用服务 OS 背后的秘密。
Azure 如何处理重大漏洞?
当高优先级问题(如 零日漏洞 )需要立即修补时,会逐个逐个处理更新。 若要随时了解关键的 Azure 安全公告,请参阅 Azure 安全博客。
何时更新、添加或弃用受支持的语言运行时?
新的稳定主要、次要或修补程序版本的受支持语言运行时会定期添加到应用服务实例。 某些更新会覆盖现有安装,而另一些更新则与现有版本并排安装。
覆盖安装意味着应用自动在更新的运行时上运行。 并列安装意味着必须手动迁移应用才能利用新的运行时版本。 有关详细信息,请参阅以下部分。
注意
此信息适用于内置于应用服务应用中的语言运行时。 例如,上传到应用服务的自定义运行时将保持不变,除非手动升级。
新的修补更新
对 .NET、PHP、Java SDK 或 Tomcat 版本所做的修补更新会通过将现有安装覆盖为最新版本来自动应用。 Node.js 修补程序更新与现有版本并行安装,类似于主要版本和次要版本。 可以通过 站点扩展手动安装新的 Python 修补程序版本,并排安装内置 Python。
新的主要版本和次要版本
新的主版本或次要版本与现有版本并排安装。 可将应用手动升级到新版本。
如果在配置文件(如 web.config 或 package.json) 中配置了运行时版本,则需要使用相同的方法进行升级。 如果使用应用服务设置配置运行时版本,可以在 Azure 门户中或通过在 Azure Cloud Shell 中运行 Azure CLI 命令对其进行更改。
以下示例显示了各种受支持的语言运行时的 Azure CLI 配置命令。 将应用及其资源组的名称替换为<appname><groupname>该应用的名称。
az webapp config set --net-framework-version v4.7 --resource-group <groupname> --name <appname>
az webapp config set --php-version 7.0 --resource-group <groupname> --name <appname>
az webapp config appsettings set --settings WEBSITE_NODE_DEFAULT_VERSION=~18 --resource-group <groupname> --name <appname>
az webapp config set --python-version 3.8 --resource-group <groupname> --name <appname>
az webapp config set --java-version 1.8 --java-container Tomcat --java-container-version 9.0 --resource-group <groupname> --name <appname>
注意
Node.js 示例使用建议的 平铺语法 来针对 Windows 应用服务上 Node.js 18 运行时的最新可用版本。
如何在实例中查询 OS 和运行时更新状态?
Kudu 控制台允许查询应用服务实例的 OS 版本和运行时版本。 关键 OS 信息被锁定在访问中。 有关详细信息,请参阅 Azure 应用服务上的作系统功能。
下表显示了如何使用 Kudu 或 Cloud Shell 命令查找正在运行应用的 Windows 和语言运行时版本。 替换 <appname> 应用 <groupname> 和资源组名称。
| 信息 | 查找位置 |
|---|---|
| Windows 版本 | 请参阅 https://<appname>.scm.azurewebsites.net/Env#sysinfo。 |
| .NET 版本 | 在 https://<appname>.scm.azurewebsites.net/DebugConsole命令提示符处运行以下命令: reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"。 |
| .NET Core 版本 | 在 https://<appname>.scm.azurewebsites.net/DebugConsole运行时 dotnet --version。 |
| PHP 版本 | 在 https://<appname>.scm.azurewebsites.net/DebugConsole运行时 php --version。 |
| 默认的 Node.js 版本 | 在 Cloud Shell 中运行以下命令:az webapp config appsettings list --resource-group <groupname> --name <appname> --query "[?name=='WEBSITE_NODE_DEFAULT_VERSION']"。 |
| Python 版本 | 在 https://<appname>.scm.azurewebsites.net/DebugConsole运行时 python --version。 |
| Java 版本 | 在 https://<appname>.scm.azurewebsites.net/DebugConsole运行时 java -version。 |
注意
对存储安全公告信息的注册表位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages的访问被锁定。