本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Elastic Beanstalk Linux 平台
Elastic Beanstalk Linux 平台提供了大量开箱即用的功能。您可以通过多种方式扩展平台以支持您的应用程序。有关更多信息,请参阅 扩展 Elastic Beanstalk Linux 平台。
Elastic Beanstalk 支持的大多数平台都基于 Linux 操作系统。具体而言,这些平台基于亚马逊Linux,这是由提供的Linux发行版 AWS。Elastic Beanstalk Linux 平台使用 Amazon Elastic Compute Cloud(Amazon EC2)实例,这些实例运行 Amazon Linux。
主题
受支持的 Amazon Linux 版本
AWS Elastic Beanstalk 支持基于亚马逊 Linux 2 和亚马逊 Linux 2023 的平台。
有关 Amazon Linux 2 和 Amazon Linux 2023 的更多信息,请参阅以下文件:
-
Amazon Linux 2 –《Amazon EC2 用户指南》中的 Amazon Linux。
-
Amazon Linux 2023 – Amazon Linux 2023 用户指南中的什么是 Amazon Linux 2023?。
有关支持的平台版本的更多信息,请参阅 Elastic Beanstalk 支持的平台。
注意
您可以将应用程序从 Elastic Beanstalk AL1 或 AL2 平台分支迁移到等效的 AL2023 平台分支。有关更多信息,请参阅 将 Elastic Beanstalk Linux 应用程序迁移到 Amazon Linux 2023 或 Amazon Linux 2。
Amazon Linux 2023
AWS 2023 年 3 月宣布亚马逊 Linux 2023 正式上市。
Elastic Beanstalk Amazon Linux 2 和 Amazon Linux 2023 平台之间具有高度的兼容性。尽管还有一些差异需要注意:
-
实例元数据服务版本 1(IMDSv1)– DisableIMDSv1 选项设置在 AL2023 平台上默认为
true。在 AL2 平台上默认为false。 -
pkg-repo 实例工具 – pkg-repo 工具不适用于在 AL2023 平台上运行的环境。但是,您仍然可以手动将软件包和操作系统更新应用到 AL2023 实例。有关更多信息,请参阅 Amazon Linux 2023 用户指南中的管理软件包和操作系统更新。
-
Apache HTTPd 配置 – AL2023 平台的 Apache
httpd.conf文件中的一些配置设置与 AL2 的配置设置不同:-
默认情况下,拒绝访问服务器的整个文件系统。这些设置在 Apache 网站安全提示
页面上的默认保护服务器文件中进行了描述。 -
拒绝访问所有目录
.htaccess中的设置,特别启用的目录除外。此设置在 Apache 网站安全提示页面上的保护系统设置中进行了描述。Apache HTTP 服务器教程:.htaccess 文件 页面指出,此设置可能有助于提高性能。 -
拒绝访问带有名称模式
.ht*的文件。此设置阻止 Web 客户端查看.htaccess和.htpasswd文件。
您可以更改您的环境的上述任何配置设置。有关更多信息,请参阅 配置 Apache HTTPD。
-
-
多行环境变量支持 — AL2023 平台支持 systemd 服务配置中环境变量和密钥的多行值。亚马逊 Linux 2 平台不支持多行环境变量值。此增强功能允许您在 AL2023 平台上使用多行密钥和配置值。有关使用环境变量和密钥的更多信息,请参阅Amazon Linux 2 环境变量中的多行值。
-
CloudWatch 自定义日志转发 -已弃用的 CloudWatch 日志代理(
awslogs软件包)在 AL2023 平台上不可用。如果您有安装和使用过时awslogs代理的自定义日志转发配置,则必须更新配置文件才能在从 Amazon Linux 2 迁移到 AL2023 时使用统一 CloudWatch 代理。有关更多信息,请参阅 自定义日志文件流式传输。
Platform-specific 差异
除了基本操作系统的差异外,Amazon Linux 2 和 AL2023 运行时平台之间还有平台特定的差异:
-
.NET 平台分支 — 亚马逊 Linux 2 和 AL2023 的.NET 平台分支策略有所不同。在亚马逊 Linux 2 上,.NET Core 平台在单个平台分支内维护.NET 主要版本的轮换窗口。在 AL2023 上,每个平台分支都固定到特定的.NET 主要版本(例如,.NET 9、.NET 10)。
如果您部署依赖于框架的应用程序(依赖于平台安装的.NET 运行时的应用程序),则必须选择与应用程序的目标 .NET 版本相匹配的平台分支。如果您部署自包含应用程序(捆绑其自己的.NET 运行时的应用程序),则无论应用程序的.NET 版本如何,都可以使用任何 AL2023 .NET 平台分支,因为您的应用程序不依赖于该平台安装的运行时。有关更多信息,请参阅 捆绑适用于 .NET Core on Linux Elastic Beanstalk 平台的应用程序。
-
Node.js 版本选择 — Amazon Linux 2 上的 Node.js 平台支持在应用程序
package.json文件中指定 Node.js 版本。AL2023 上的 Node.js 平台不支持此功能。您必须使用平台分支提供的默认 Node.js 版本。有关 Node.js 版本管理的更多信息,请参阅配置您的应用程序对 Elastic Beanstalk 的依赖项。 -
Ruby Puma 服务器版本 — 亚马逊 Linux 2 上的 Ruby 平台会忽略应用程序
Gemfile.lock文件中指定的 Puma 版本,并使用平台默认 Puma 版本。AL2023 上的 Ruby 平台支持中指定的 Puma 版本(Gemfile.lock如果存在)。如果未指定版本,则平台将安装平台默认 Puma 版本。 -
PHP 软件包的可用性 — 亚马逊 Linux 2 PHP 平台上可用的某些软件包在 AL2023 PHP 平台上不可用:
-
MySQL 客户端软件包 —
mysql和mysql-devel命令行客户端软件包未安装在 AL2023 PHP 平台上。如果您的应用程序需要 MySQL 数据库连接,请使用 PHPmysqli或pdo_mysql扩展,这两个平台均可用。 -
Compass 和 Ruby 工具 — 支持 Compass CSS 框架的
ruby-devel和rubygems软件包未安装在 AL2023 PHP 平台上。指南针已被弃用。考虑使用现代 CSS 预处理工具作为替代方案。
-
-
Go 版本控制工具 — Bazaar 版本控制系统 (
bzr) 在 AL2023 Go 平台上不可用。Bazaar 已过时,未包含在 AL2023 软件包存储库中。改用 Git、Mercurial 或 Subversion 进行版本控制,所有这些都在 AL2023 Go 平台上可用。
Elastic Beanstalk Linux 平台列表
下面的列表提供了 Elastic Beanstalk 针对不同编程语言和 Docker 容器支持的 Linux 平台。Elastic Beanstalk 为所有平台提供基于 Amazon Linux 2 和 Amazon Linux 2023 的平台。要了解有关平台的更多信息,请选择对应的链接。