AWS Elastic Beanstalk
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

更新 Elastic Beanstalk 环境的平台版本

针对在 Elastic Beanstalk 环境上运行应用程序的基于 Linux 和基于 Windows Server 的平台,Elastic Beanstalk 会定期发布更新。平台由软件组件(运行操作系统 (OS) 特定版本、工具和 Elastic Beanstalk 特定脚本的 AMI)和配置组件(应用到使用平台创建的环境的默认设置)组成。新平台版本提供对现有软件组件的更新,并支持新功能和配置选项。

对于支持多个所含 Web 容器、编程语言或框架的不兼容主版本的平台,同时支持单独的平台分支,每个分支具有其自己的一系列平台版本。例如,Java with Tomcat 平台对于 Tomcat 7 和 Tomcat 8 支持单独的平台版本。通常,同时针对给定平台的所有分支发布更新。

Elastic Beanstalk 平台使用三个数字从语义上说明版本:主版本号、次版本号和修补版本号。例如,Java 8 with Tomcat 8 版本 2.1.0 的主版本为 2,次版本为 1,修补版本为 0。主版本仅用于表示向后不兼容的更改。次版本添加对新 Elastic Beanstalk 功能的支持,修补版本则修复错误、更新操作系统和软件组件,以及提供对 Amazon Linux yum 存储库中更新后程序包的访问。

您可以将您环境的平台版本更新到另一个具有相同主版本号的平台版本(次要或修补程序更新)。您不能跨主要平台版本执行平台更新。

注意

使用早于 IIS 8.5 的 IIS 版本的 Windows Server 平台版本不进行语义版本控制,且不支持托管平台更新。您只能启动其中每个 Windows Server 主要平台版本的最新版本,在升级之后无法回退。

警告

在启用了实例替换的托管平台更新期间、不可变更新期间以及启用了不可变更新的部署期间,将替换所有实例。这会导致丢失所有累积的 Amazon EC2 突发余额

更新环境的平台版本

当您环境的平台有新版本可用时,Elastic Beanstalk 会在环境管理控制台中显示一条消息,并使 Change (更改) 按钮变成可用状态。如果您的环境是用旧平台版本创建的,或是从旧版本升级而来,则您也可以使用 Change (更改) 按钮恢复到先前的平台版本。

更新环境的平台

  1. 导航到您的环境的管理页

  2. Overview (概述) 部分,在 Configuration (配置) 下单击 Change (更改)

    
            Elastic Beanstalk 更新版本的平台可用
  3. 选择 Platform Version (平台版本)。系统自动选择最新的平台版本,但您可以选择更新到以前使用过的任何版本。

    
            Elastic Beanstalk 更新平台版本确认
  4. 选择 Save

在可配置的每周维护时段内,您可以使用托管平台更新将环境配置为自动应用次版本和修补版本更新。Elastic Beanstalk 在应用托管更新时,不会导致停机时间或容量减少,并且当在新版本上运行您的应用程序的实例未能通过运行状况检查时,会立即取消更新。

将环境迁移到其他平台分支

您可能需要将应用程序迁移到其他平台分支。一种常见的原因是切换到最新语言版本。例如,您可能需要将 PHP 应用程序从版本 7.0 迁移到版本 7.1。或者,将 Java with Tomcat 平台上的应用程序从 Java 7 with Tomcat 7 迁移到 Java 8 with Tomcat 8.5

Elastic Beanstalk 不支持跨平台分支的自动平台更新。当您想要将环境的平台版本更改为不同分支的版本时,您无法使用上一部分中所示的过程。以下过程说明如何将您的环境迁移到不同分支的平台版本。

将环境的平台迁移到不同的平台分支

  1. 创建新环境,使用新的目标平台版本,并将应用程序代码部署到其中。新环境应该在包含您要迁移的环境的 Elastic Beanstalk 应用程序中。此时不要终止现有环境。

  2. 使用新环境迁移应用程序代码。查找并修复由于迁移到新语言版本导致的任何应用程序兼容性问题。迭代测试并部署修复,直至对新环境上的应用程序满意。

  3. 通过将新环境的别名记录与现有生产环境的别名记录交换,将新环境转换为生产环境。有关详细信息,请参阅 使用 Elastic Beanstalk 进行蓝/绿部署

  4. 当您对处于生产模式的新环境状态感到满意之后,终止旧环境。有关详细信息,请参阅 终止 Elastic Beanstalk 环境