Azure 应用服务的语言运行时支持策略

本文介绍用于更新现有堆栈和停用 Azure 应用服务中终止支持堆栈的语言运行时支持策略。 此策略旨在阐明现有做法,并不代表对客户承诺的更改。

对现有堆栈进行更新

应用服务将在每个社区拥有现有堆栈后对其进行更新。 应用服务更新堆栈的主要版本,但不能保证任何特定的次要版本或修补程序版本。 平台控制次要版本和修补程序版本。 例如,应用服务会更新 Node 18,但不保证更新特定的 Node 18.x.x 版本。 如果需要特定的次要版本或修补程序版本,请使用 自定义容器

停用

应用服务遵循运行时生命周期的社区支持时间线。 在社区对语言的支持达到支持终止之后,应用程序将继续运行,不再改变。 但是,应用服务无法在运行时版本终止支持日期之后为其提供安全修补程序或相关的客户支持。 如果应用程序在该版本的终止支持日期之后遇到任何问题,则应转到受支持的版本,以获取最新的安全修补程序和功能。

重要

如果运行的是使用不受支持的语言版本的应用,则需要升级到受支持的语言版本,然后才能获得对这些应用的支持。

通知

运行时版本的终止支持日期由各自的堆栈独立确定,不受应用服务的控制。 应用服务将在每个语言可用时向订阅所有者发送提醒通知,告知即将终止支持的运行时版本。

接收通知的人员包括帐户管理员、服务管理员和共同管理员。 参与者、读者或其他角色不会直接接收通知,除非他们选择使用 服务运行状况警报接收通知电子邮件。

语言运行时版本支持时间线

若要详细了解语言支持策略的特定时间线,请参阅以下资源:

支持状态

应用服务支持 Linux 和 Windows 操作系统上的语言。 请参阅以下资源,获取操作系统支持的每种语言的列表:

配置语言版本

若要详细了解如何更新应用服务应用程序语言版本,请参阅以下资源:

特定于 Java 的支持运行时语句

JDK 版本和维护

Microsoft 和 Adoptium 构建的 OpenJDK 版本适用于 Java 21、17、11 和 8,并在 Microsoft 的 App Service 上提供支持。 这些二进制文件是为 Azure 提供的免费、多平台、适合生产使用的 OpenJDK 分发版本。 二进制文件包含用于生成和运行 Java SE 应用程序的所有组件。 对于本地开发或测试,可以 下载 OpenJDK 的Microsoft版本

Java 堆栈名称 Linux 发行版 Java 发行版
Java 8 Alpine 3.16* Adoptium Temurin 8 (MUSL)
Java 11 Alpine 3.16* MSFT OpenJDK 11 (MUSL)
Java 17 Ubuntu MSFT OpenJDK 17
Java 21 Ubuntu MSFT OpenJDK 21
Tomcat 8.5 Java 8 Alpine 3.16* Adoptium Temurin 8 (MUSL)
Tomcat 8.5 Java 11 Alpine 3.16* MSFT OpenJDK 11 (MUSL)
Tomcat 9.0 Java 8 Alpine 3.16* Adoptium Temurin 8 (MUSL)
Tomcat 9.0 Java 11 Alpine 3.16* MSFT OpenJDK 11 (MUSL)
Tomcat 9.0 Java 17 Ubuntu MSFT OpenJDK 17
Tomcat 9.0 Java 21 Ubuntu MSFT OpenJDK 21
Tomcat 10.0 Java 8 Ubuntu Adoptium Temurin 8
Tomcat 10.0 Java 11 Ubuntu MSFT OpenJDK 11
Tomcat 10.0 Java 17 Ubuntu MSFT OpenJDK 17
Tomcat 10.0 Java 21 Ubuntu MSFT OpenJDK 21
Tomcat 10.1 Java 11 Ubuntu MSFT OpenJDK 11
Tomcat 10.1 Java 17 Ubuntu MSFT OpenJDK 17
Tomcat 10.1 Java 21 Ubuntu MSFT OpenJDK 21
JBoss 7.3 Java 8 Ubuntu Adoptium Temurin 8
JBoss 7.3 Java 11 Ubuntu MSFT OpenJDK 11
JBoss 7.4 Java 8 Ubuntu Adoptium Temurin 8
JBoss 7.4 Java 11 Ubuntu MSFT OpenJDK 11
JBoss 7.4 Java 17 Ubuntu MSFT OpenJDK 17

* Alpine 3.16 是应用服务中支持的最后一个 Alpine 发行版。 应固定到某个版本,以避免自动切换到 Ubuntu。 确保尽可能测试和切换到基于 Ubuntu 的分发支持的 Java 产品/服务。

如果你固定为 Java 的早期次要版本,应用可能正在使用通过 Azul Systems 提供的已弃用 Azul Zulu for Azure 二进制文件。 你可以继续将这些二进制文件用于应用,但任何安全修补程序或改进仅在较新版本的 OpenJDK 中可用。 在此方案中,建议定期将 Web 应用更新为最新版本的 Java。

主版本更新是通过 Azure 应用服务中新的运行时选项提供的。 通过配置应用服务部署来更新到这些更高版本的 Java。 你负责测试和确保主要更新满足你的需求。

支持的 JDK 将在每年的 1 月、4 月、7 月和 10 月按季度自动修补。 有关详细信息,请参阅 Azure 上的 Java

安全更新

主要安全漏洞的修补程序和修复程序在 OpenJDK 的 Microsoft 版本中可用后,便会立即发布。 主要漏洞NIST 通用漏洞评分系统版本 2 的基础分数为 9.0 或更高版本的漏洞。

截至 2024 年 3 月 31 日,Tomcat 8.5 已终止支持,Tomcat 10.0 截至 2022 年 10 月 31 日终止支持

尽管运行时仍可用于 Azure 应用服务,但 Tomcat 10 和 Tomcat 8.5 不会收到安全更新。

如果可能,请将你的应用程序迁移到 Tomcat 9.0 或 Tomcat 10.1。 Tomcat 9.0 和 Tomcat 10.1 在 Azure 应用服务上都可用。 有关详细信息,请参阅 Apache Tomcat 文档

社区对 Java 7 的支持于 2022 年 7 月 29 日结束,Java 7 已从应用服务停用。 如果 Web 应用在 Java 7 上运行,请立即升级到 Java 8 或 Java 11。

弃用和停用

如果支持的 Java 运行时已停用,则使用受影响运行时的 Azure 开发人员在停用运行时前至少六个月会收到弃用通知。

本地开发

开发人员可以 下载 OpenJDK 的 Microsoft 内部版本进行本地开发。

使用合格的 Azure 支持计划为 Azure 或 Azure Stack 开发时,可通过 Microsoft 提供对 OpenJDK Microsoft版本的产品支持。