使用配置文件 (.ebextensions) 进行高级环境自定义 - AWS Elastic Beanstalk

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用配置文件 (.ebextensions) 进行高级环境自定义

您可以将 AWS Elastic Beanstalk 配置文件 (.ebextensions) 添加到 Web 应用程序的源代码中,从而配置环境并自定义其中包含的 AWS 资源。配置文件是 YAML 或 JSON 格式的文档,采用 .config 文件扩展名,您将其放在名为 .ebextensions 的文件夹中,并在应用程序源包中部署它们。

.ebextensions/network-load-balancer.config

此示例进行了简单的配置更改。它修改一个配置选项,以将环境的负载均衡器的类型设置为 Network Load Balancer。

option_settings: aws:elasticbeanstalk:environment: LoadBalancerType: network

我们建议对配置文件使用 YAML,因为它比 JSON 更可读。YAML 支持注释、多行命令、针对使用引号的多个备选项等。但是,您可以使用 YAML 或 JSON 在 Elastic Beanstalk 配置文件中以相同的方式进行任何配置更改。

提示

当您开发或测试新的配置文件时,启动运行默认应用程序的干净环境并部署到此环境。格式不正确的配置文件将导致新环境启动失败,并且错误不可恢复。

配置文件的 option_settings 部分定义配置选项的值。配置选项允许您配置 Elastic Beanstalk 环境、其中的 AWS 资源以及运行您的应用程序的软件。设置配置选项有几种方法,配置文件只是其中之一。

Resources 部分允许您进一步自定义应用程序环境中的资源,定义配置选项所提供功能之外的其他 AWS 资源。您可以添加和配置 AWS CloudFormation 支持的任何资源,Elastic Beanstalk 使用这些资源创建环境。

配置文件的其他部分 (packagessourcesfilesusersgroupscommandscontainer_commandsservices) 可配置在您的环境中启动的 EC2 实例。只要您的环境中有服务器启动,Elastic Beanstalk 就会运行这些部分中定义的操作,为您的应用程序准备操作系统和存储系统。

有关常用 .ebextensions 的示例,请参阅 Elastic Beanstalk 配置文件存储库

要求
  • 位置 — Elastic Beanstalk 将处理部署中存在的所有 .ebextensions 文件夹。但是,我们建议您将所有配置文件放在源包根目录中名为 .ebextensions 的文件夹中。以点开头的文件夹可被文件浏览器隐藏,因此请确保在创建源包时添加文件夹。有关更多信息,请参阅 创建 Elastic Beanstalk 应用程序源包

  • 命名 – 配置文件必须具有 .config 文件扩展名。

  • 格式 – 配置文件必须符合 YAML 或 JSON 规范。

    当使用 YAML 时,请始终使用空格以不同的嵌套级别缩进键。有关 YAML 的更多信息,请参阅 YAML Ain't 标记语言 (YAML™) 版本 1.1

  • 唯一性 – 在每个配置文件中使用每个键一次。

    Warning

    如果您在同一个配置文件中两次使用同一个键 (例如 option_settings),则会删除两个部分之一。将重复的部分组合为单个部分,或将其放在不同的配置文件中。

根据您用来管理环境的客户端,部署过程可能略有不同。有关详细信息,请参阅下面几节: