我想使用 .ebextensions 来自定义我的 AWS Elastic Beanstalk 环境。
解决方法
注意: 如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,请确保您使用的是最新版本的 AWS CLI。
设置您的 .ebextensions 目录
完成以下步骤:
- 在应用程序捆绑包的根目录中,创建名为 .ebextensions 的隐藏目录。
- 将您的配置文件存储在此目录中。您的应用程序源包与以下示例类似:
~/workspace/my-application/
|-- .ebextensions
| |-- 01-server-configuration.config
| `-- 02-asg-healthcheck.config
|-- index.php
`-- styles.css
注意: Elastic Beanstalk 按字母顺序处理 .ebextensions 目录中的配置文件。在文件名中使用数字前缀来控制配置的顺序。
自定义您的 Elastic Beanstalk 环境
要修改环境配置,请使用 option_settings 键。
如果您使用 Elastic Beanstalk 控制台或 Elastic Beanstalk Command Line Interface(EB CLI)创建或更新环境,则这些客户端会应用推荐值。推荐值在 API 级别设置,优先级最高。您不能使用 option_settings 来更改配置设置。
优先级规则可能会阻止您的 option_settings 修改应用到环境配置。要移除 Elastic Beanstalk 在环境创建期间直接应用于环境的设置,请使用 UpdateEnvironment Elastic Beanstalk API 操作。或者,您可以使用以下 update-environment AWS CLI 命令:
aws elasticbeanstalk update-environment --application-name applicationname --environment-name environmentnamename --options-to-remove Namespace=aws:elasticbeanstalk:application:environment,OptionName==yourpropertyname
注意: 将应用程序名称替换为您的应用程序名称,将环境名称替换为您的环境名称,将您的属性名称替换为您的属性名称。
如果您无法使用 option_settings 来更改配置,请使用 Resources 键来自定义 Elastic Beanstalk 环境中的资源。
Elastic Beanstalk 将您在配置文件中定义的资源添加到启动环境的 AWS CloudFormation 模板中。CloudFormation 模板支持每个 CloudFormation 资源类型。有关逻辑资源名称的详细信息,请参阅修改 Elastic Beanstalk 为环境创建的资源。
配置文件必须具有 .config 文件扩展名,并且必须使用 YAML 或 JSON 格式。
如果您的配置文件使用 YAML 格式,请确保文件使用一致的空格进行缩进。不正确的缩进可能导致部署失败。
使用键在 Linux 或 Windows 服务器上自定义软件。在每个配置文件中,每个键只能使用一次。
对于基于 Amazon Linux 2 和 Amazon Linux 2023 的平台,最佳实践是使用 Buildfile、Procfile 和 平台钩子在实例预置期间运行自定义代码。您仍然可以在配置文件中使用 commands 和 container_commands。有关更多信息,请参阅如何使用平台钩子自定义我的 Elastic Beanstalk 环境?
当您将应用程序部署到 Elastic Beanstalk 时,请使用 .ebextensions 配置文件来自定义 Amazon Elastic Compute Cloud(Amazon EC2)实例。有关配置文件示例,请参阅 GitHub 网站上的 elastic-beanstalk-samples。
要使用 .ebextensions 为您的环境配置 HTTPS,请参阅为您的 Elastic Beanstalk 环境配置 HTTPS。
将您的自定义设置应用于您的应用程序
创建包含您的配置文件的应用程序源包,然后部署更新后的应用程序。
注意: 在创建 ZIP 文件时,文件归档工具可能不会包含隐藏目录。文件浏览器可能会隐藏以句点开头的文件夹,例如 .ebextensions。请在创建应用程序源包时在应用程序包的根目录中加入 .ebextensions 文件夹。
排查 .ebextensions 配置问题
如果 Elastic Beanstalk 在部署后未应用您的 .ebextensions 配置,请执行以下操作:
检查目录位置和文件扩展名
在 Elastic Beanstalk 控制台中查看最近的环境事件。来自 Elastic Beanstalk 的部署和配置消息会显示在事件页面上。确认您已在源包的根目录中配置了 .ebextensions 目录,并且配置文件使用了 .config 文件扩展名。
查看部署日志
连接到您的 Amazon EC2 实例,检查 /var/log/eb-engine.log 中与配置文件相关的错误、启动失败或部署问题。同时检查 /var/log/cfn-init.log 和 /var/log/cfn-init-cmd.log 以获取部署结果。
要查看部署日志,请参阅在控制台中查看部署日志。
要检索日志,请参阅在 Elastic Beanstalk 环境中查看来自 Amazon EC2 实例的日志中的检索实例日志。
撤销最近的配置更改
如果您的 .ebextensions 配置更改导致了部署失败,请重新部署您的应用程序版本。
相关信息
排查您的 Elastic Beanstalk 环境问题