你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 应用服务中的 OS 和运行时修补
本文介绍如何有关应用服务中的 OS 或软件的特定版本信息。
应用服务是一种平台即服务,这意味着,Azure 会自行管理 OS 和应用程序堆栈,而你只需管理自己的应用程序及其数据。 在 Azure 虚拟机中,你能够以更高的力度控制 OS 和应用程序堆栈。 考虑到这一点,应用服务用户了解以下方面的详细信息总会有好处:
- 如何以及何时应用 OS 更新?
- 应用服务如何修补重大漏洞(例如零日漏洞)?
- 应用运行哪些 OS 和运行时版本?
出于安全原因,有些具体的安全信息不会公布。 但是,文章旨在缓解安全忧虑,它会最大程度地将该过程透明化,并介绍如何获取最新的安全相关公告或运行时更新。
如何以及何时应用 OS 更新?
Azure 管理两个级别的 OS 修补:运行应用服务资源的物理服务器和来宾虚拟机 (VM)。 这两种方案会根据每月的周二修补计划更新。 这些更新会自动应用,保证达到 Azure 服务的高可用性 SLA。
有关如何应用更新的详细信息,请参阅揭示应用服务 OS 背后的秘密。
Azure 如何处理重大漏洞?
严重的漏洞(例如零日漏洞)需要立即修补,将会根据案例以高优先级处理更新。
访问 Azure 安全博客,及时了解 Azure 中的关键安全公告。
何时更新、添加或弃用受支持的语言运行时?
受支持语言运行时的新稳定版本(主要、次要或修补版本)会定期添加到应用服务实例。 一些更新会覆盖现有的安装,还有一些更新会连同现有的版本一并安装。 覆盖安装意味着应用自动在更新的运行时上运行。 并列安装意味着必须手动迁移应用才能利用新的运行时版本。 有关详细信息,请参阅以下小节之一。
注意
此处的信息适用于应用服务应用中内置的语言运行时。 例如,上传到应用服务的自定义运行时将保持不变,除非手动升级。
新的修补更新
对 .NET、PHP、Java SDK 或 Tomcat 版本所做的修补更新会通过将现有安装覆盖为最新版本来自动应用。 Node.js 修补更新将与现有版本一并安装(类似于下一部分中的主要版本和次要版本)。 新的 Python 修补程序版本可以通过站点扩展,与内置的 Python 安装一起手动安装。
新的主要版本和次要版本
添加新的主要版本或次要版本后,该版本与现有版本一并安装。 可将应用手动升级到新版本。 如果在配置文件(例如 web.config
和 package.json
)中配置了运行时版本,则需要使用相同的方法升级。 如果使用应用服务设置配置了运行时版本,则可以在 Azure 门户中或者在 Cloud Shell 中运行 Azure CLI 命令来更改此版本,如以下示例所示:
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=~14 --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>
注意
此示例使用建议的“波浪号语法”来定位 Windows 应用服务上 Node.js 16 运行时的最新可用版本。
如何在实例中查询 OS 和运行时更新状态?
尽管关键的 OS 信息已被限制访问(请参阅 Azure 应用服务中的操作系统功能),但可以使用 Kudu 控制台在应用服务实例中查询有关 OS 版本和运行时版本的信息。
下表显示了应用中运行的 Windows 和语言运行时版本:
信息 | 查找位置 |
---|---|
Windows 版本 | 查看 https://<appname>.scm.azurewebsites.net/Env.cshtml (在“系统信息”下) |
.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
,其中存储了有关“KB”修补的信息。该位置已被锁定。