应用服务语言运行时支持策略
本文介绍用于更新现有堆栈和停用 Azure 应用服务中终止支持堆栈的语言运行时支持策略。 此策略旨在阐明现有做法,并不代表对客户承诺的更改。
对现有堆栈进行更新
应用服务将在每个社区拥有现有堆栈后对其进行更新。 应用服务将更新堆栈的主要版本,但不能保证更新任何特定的次要版本或修补程序版本。 平台控制次要版本和修补程序版本。 例如,应用服务会更新 Node 18,但不保证更新特定的 Node 18.x.x 版本。 如果需要特定的次要版本或修补程序版本,可以使用自定义容器。
停用
应用服务遵循运行时生命周期的社区支持时间线。 在社区对语言的支持达到支持终止之后,应用程序将继续运行,不再改变。 但是,应用服务无法在运行时版本终止支持日期之后为其提供安全修补程序或相关的客户支持。 如果应用程序在该版本的终止支持日期之后遇到任何问题,则应转到受支持的版本,以获取最新的安全修补程序和功能。
重要
如果运行的是使用不受支持的语言版本的应用,则需要升级到受支持的语言版本,然后才能获得对这些应用的支持。
通知
运行时版本的终止支持日期由各自的堆栈独立确定,不受应用服务的控制。 应用服务将在每个语言可用时向订阅所有者发送提醒通知,告知即将终止支持的运行时版本。
接收通知的人员包括帐户管理员、服务管理员和共同管理员。 参与者、读者或其他角色不会直接接收通知,除非他们选择使用服务运行状况警报接收通知电子邮件。
语言运行时版本支持时间线
若要详细了解语言支持策略的特定时间线,请参阅以下资源:
支持状态
应用服务支持 Linux 和 Windows 操作系统上的语言。 请参阅以下资源,获取操作系统支持的每种语言的列表:
配置语言版本
若要详细了解如何更新应用服务应用程序语言版本,请参阅以下资源:
特定于 Java 的支持运行时语句
JDK 版本和维护
适用于 Java 8、11、17 和 21 的应用服务提供并支持 Microsoft 和 Adoptium 版本的 OpenJDK。 这些二进制文件作为 OpenJDK for Azure 的无成本、多平台、生产就绪分发提供。 这些版本包含构建和运行 Java SE 应用程序所需的所有组件。 对于本地开发或测试,可以从下载页面安装 Microsoft 版本的 OpenJDK。
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 系统提供的 Azul Zulu for Azure 二进制文件(这些文件已被弃用)。 可以继续为应用使用这些二进制文件,但所有安全修补程序或改进仅在新版本的 OpenJDK 中提供,因此,建议定期将 Web 应用更新到较新版本的 Java。
主版本更新是通过 Azure 应用服务中新的运行时选项提供的。 客户可以通过配置应用服务部署来更新到这些较新的 Java 版本,他们需要负责测试和确保重大更新符合其需求。
支持的 JDK 将在每年的 1 月、4 月、7 月和 10 月按季度自动修补。 有关 Azure 上的 Java 的详细信息,请参阅此支持文档。
安全更新
主要安全漏洞的补丁和修复程序在 OpenJDK 的 Microsoft 版本中可用后,便会立即发布。 根据 NIST 常见漏洞评分系统版本 2,“重大”漏洞基本评分在 9.0 或以上。
Tomcat 8.5 已于 2024 年3 月 31 日达到生命周期结束,Tomcat 10.0 已于 2022 年 10 月 31 日达到生命周期结束。
尽管这些运行时在 Azure 应用服务上仍然可用,但 Tomcat 8.5 或 10.0 不会接收到安全更新。
如果可能,请将你的应用程序迁移到 Tomcat 9.0 或 Tomcat 10.1。 Tomcat 9.0 和 Tomcat 10.1 在 Azure 应用服务上都可用。 有关详细信息,请查看 Tomcat 官方网站。
社区对 Java 7 的支持于 2022 年 7 月 29 日结束,Java 7 已从应用服务停用。 如果你的 Web 应用在 Java 7 上运行,请立即升级到 Java 8 或 11。
弃用和停用
如果即将停用某个受支持的 Java 运行时,则使用受影响运行时的 Azure 开发人员会在停用前,至少提前六个月收到通知。
本地开发
开发人员可以从我们的下载站点下载 Microsoft 内部版本的 OpenJDK 以进行本地开发。
使用符合条件的 Azure 支持计划进行 Azure 或 Azure Stack 方面的开发时,可以通过 Microsoft 获得对 Microsoft 版本的 OpenJDK 的产品支持。