本文介绍了 Azure 应用服务 如何更新作系统(OS)和运行时软件、如何获取版本信息以及如何手动升级到新版本。
应用服务是平台即服务(PaaS),因此 Azure 会为你管理 OS 和应用程序堆栈。 仅管理应用程序及其数据。 如果需要对 OS 和应用程序堆栈进行更多控制,可以使用 Azure 虚拟机。
作为应用服务用户,你仍有助于了解以下信息,例如:
本文提供流程的透明度,并帮助你随时了解与安全相关的公告和运行时更新。 出于安全原因,不会发布某些特定的安全信息。
如何以及何时应用 OS 更新?
Azure 管理两个级别的 OS 修补:运行应用服务资源的物理服务器和来宾虚拟机 (VM)。 这两者都是每月更新的,这与每月补丁星期二计划一致。 这些更新会自动应用,保证达到 Azure 服务的高可用性 SLA。 Azure 应用服务 OS 修补遵循安全部署做法和 Availability-First 方法。 因此,虽然我们努力确保尽快应用最新的修补程序,但 OS 修补可能会缓慢或暂停,以避免应用影响和中断
有关如何应用更新的详细信息,请参阅揭示应用服务 OS 背后的秘密。
Azure 如何处理重大漏洞?
当高优先级问题(如零日漏洞)需要立即修补时,会逐个逐个处理更新。
何时更新、添加或弃用受支持的语言运行时?
新的稳定主要、次要或修补程序版本的受支持语言运行时会定期添加到应用服务实例。 某些更新会覆盖现有安装,而另一些更新则与现有版本并排安装。
覆盖安装意味着应用自动在更新的运行时上运行。 并列安装意味着必须手动迁移应用才能利用新的运行时版本。 有关详细信息,请参阅以下部分。
注释
此信息适用于内置于应用服务应用中的语言运行时。 例如,上传到应用服务的自定义运行时将保持不变,除非手动升级。
新的修补更新
对 .NET、PHP、Java SDK 或 Tomcat 版本所做的修补更新会通过将现有安装覆盖为最新版本来自动应用。 Node.js 修补程序更新与现有版本并行安装,类似于主要版本和次要版本。 可以通过 站点扩展手动安装新的 Python 修补程序版本,并排安装内置 Python。
新的主要版本和次要版本
如果在配置文件(如 web.config 或 package.json) 中配置了运行时版本,则需要使用相同的方法进行升级。 如果使用应用服务设置来配置运行时版本,可以在 Azure 门户中 或通过在 Azure Cli 中运行 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.chinacloudsites.cn/Env#sysinfo 。 |
.NET 版本 | 在 https://<appname>.scm.chinacloudsites.cn/DebugConsole 命令提示符处运行以下命令: reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" 。 |
.NET Core 版本 | 在 https://<appname>.scm.chinacloudsites.cn/DebugConsole 运行时 dotnet --version 。 |
PHP 版本 | 在 https://<appname>.scm.chinacloudsites.cn/DebugConsole 运行时 php --version 。 |
默认的 Node.js 版本 | 在 Azure Cli 中运行以下命令: az webapp config appsettings list --resource-group <groupname> --name <appname> --query "[?name=='WEBSITE_NODE_DEFAULT_VERSION']" |
Python 版本 | 在 https://<appname>.scm.chinacloudsites.cn/DebugConsole 运行时 python --version 。 |
Java 版本 | 在 https://<appname>.scm.chinacloudsites.cn/DebugConsole 运行时 java -version 。 |
注释
锁定对注册表位置 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages
的访问,其中存储了有关“KB”修补程序的信息。
相关内容
信任中心:安全性