如何使用 .ebextensions 自定义 Elastic Beanstalk 环境?

上次更新时间:2019 年 5 月 20 日

如何使用 .ebextensions 自定义 AWS Elastic Beanstalk 环境,以在 Amazon Elastic Compute Cloud (Amazon EC2) 实例上创建文件、安装软件包以及运行命令?

简短描述

使用 Elastic Beanstalk 配置文件 (.ebextensions) 在 Elastic Beanstalk 环境中配置您的 Amazon EC2 实例。

如果您使用以下配置方法,则对 Elastic Beanstalk 环境所做的更改将不会保留:

  • 直接在特定 AWS 服务的控制台中配置 Elastic Beanstalk 资源。
  • 直接在您的 Amazon EC2 实例中安装软件包、创建文件或运行命令。

解决方法

设置您的 .ebextensions 目录

1.    在应用程序包的根目录中,创建一个名为 .ebextensions 的隐藏目录。

2.    在 .ebextensions 目录中存储您的配置文件。

您的应用程序源包应类似以下示例:

~/workspace/my-application/
|-- .ebextensions
|   |-- 01-server-configuration.config
|   `-- 02-asg-healthcheck.config
|-- index.php
`-- styles.css

自定义您的 Elastic Beanstalk 环境

要自定义您的环境,请考虑以下操作:

  • 使用 option_settings 密钥来修改环境配置。您可以从面向所有环境的常规选项特定于平台的选项中选择。
    注意:当您通过客户端在 Elastic Beanstalk API 上创建或更新环境时,系统将应用推荐值。例如,客户端可以是 AWS 管理控制台、Elastic Beanstalk 命令行界面 (EB CLI)、AWS 命令行界面 (AWS CLI) 或开发工具包。推荐值直接在 API 级别设置,并且具有最高的优先级。在 API 级别应用的配置设置无法使用 option_settings 进行更改,因为 API 具有最高的优先级。
  • 优先级规则可能会导致您的 option_settings 修改无法应用到环境配置。要删除在环境创建期间直接应用的配置或者更新 Elastic Beanstalk API,请使用带 --options-to-remove 标记的 update-environment 命令。
  • 如果没有针对所需资源配置的选项设置,请在您的 Elastic Beanstalk 环境中使用 Resources 密钥来自定义资源
    注意:配置文件中定义的资源会添加到用于启动您的环境的 AWS CloudFormation 模板中。所有 AWS CloudFormation 资源类型均受支持。有关逻辑资源名称的更多信息,请参阅修改 Elastic Beanstalk 为您的环境创建的资源
  • 使用密钥自定义 LinuxWindows 服务器上的软件。
  • 有关配置文件示例,请参阅 AWS GitHub 存储库

将自定义设置应用于您的应用程序

1.   创建包含您的配置文件的应用程序源包

注意:以句点开头的文件夹(例如 .ebextensions)可能会被文件浏览器隐藏。要确保这些文件夹始终可见,请在创建应用程序源包时在应用程序包的根目录中包括 .ebextensions 文件夹。

2.    部署已更新的 Elastic Beanstalk 应用程序


这篇文章对您有帮助吗?

您觉得我们哪些地方需要改进?


需要更多帮助?