你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍 Azure 应用服务如何更新操作系统 (OS) 和运行时软件、你可如何获取版本信息,以及如何手动升级到新版本。
应用服务是一项平台即服务 (PaaS),因此 Azure 会为你管理操作系统和应用程序堆栈。 你只需管理应用程序及其数据。 如果需要对操作系统和应用程序堆栈进行更多控制,可以使用 Azure 虚拟机。
作为应用服务用户,了解以下信息对你仍有帮助,例如:
本文清晰呈现相关流程,并帮助你及时了解与安全相关的公告和运行时更新。 出于安全原因,不会发布某些特定的安全信息。
如何以及何时应用 OS 更新?
Azure 管理运行应用服务资源的物理服务器和来宾虚拟机 (VM) 的操作系统修补。 两个计算机层均每月更新,与每月星期二修补日计划保持一致。
这些更新会自动应用,同时保证 Azure 服务的可用性服务级别协议 (SLA)。 Azure 应用服务操作系统修补遵循安全部署做法 (SDP) 和可用性优先方法。 尽快应用最新补丁,但操作系统修补有时可能会变慢或暂停,以避免应用影响和中断。
有关如何应用更新的详细信息,请参阅揭示应用服务 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=~24 --resource-group <groupname> --name <appname>
az webapp config set --python-version 3.14 --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 24 运行时的最新可用版本。
如何在实例中查询 OS 和运行时更新状态?
通过 Kudu 控制台,可查询应用服务实例的操作系统版本和运行时版本。 关键操作系统信息被限制访问。 有关详细信息,请参阅 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 的访问被限制。