

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

# 使用配置文件 (`.ebextensions`) 进行高级环境自定义
<a name="ebextensions"></a>

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

**Example .ebextensions/ .config network-load-balancer**  
此示例进行了简单的配置更改。它修改一个配置选项，以将环境的负载均衡器的类型设置为 Network Load Balancer。  

```
option_settings:
  aws:elasticbeanstalk:environment:
    LoadBalancerType: network
```

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

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

配置文件的 `option_settings` 部分定义[配置选项](command-options.md)的值。配置选项允许您配置 Elastic Beanstalk 环境 Amazon 、其中的资源以及运行应用程序的软件。设置配置选项有几种方法，配置文件只是其中之一。

该[`Resources`部分](environment-resources.md)允许您进一步自定义应用程序环境中的资源，并定义配置选项提供的功能之外的其他 Amazon 资源。您可以添加和配置支持的任何资源 Amazon CloudFormation，Elastic Beanstalk 使用这些资源来创建环境。

配置文件的其他部分（`packages`、、、`sources`、`files`、`users`、`groups``commands``container_commands`、和`services`）允许您配置在您的环境中启动的 EC2 实例。只要您的环境中有服务器启动，Elastic Beanstalk 就会运行这些部分中定义的操作，为您的应用程序准备操作系统和存储系统。

有关常用 .ebextensions 的示例，请参阅 [Elastic Beanstalk 配置文件存储库](https://github.com/awsdocs/elastic-beanstalk-samples/tree/master/configuration-files)。

**要求**
+ **位置** — Elastic Beanstalk 将处理部署中存在的所有 `.ebextensions` 文件夹。但是，我们建议您将所有配置文件放在源包根目录中名为 `.ebextensions` 的文件夹中。以点开头的文件夹可被文件浏览器隐藏，因此请确保在创建源包时添加文件夹。有关更多信息，请参阅 [创建 Elastic Beanstalk 应用程序源包](applications-sourcebundle.md)。
+ **命名** – 配置文件必须具有 `.config` 文件扩展名。
+ **格式** – 配置文件必须符合 YAML 或 JSON 规范。

  当使用 YAML 时，请始终使用空格以不同的嵌套级别缩进键。有关 YAML 的更多信息，请参阅 [YAML Ain't 标记语言 (YAML™) 版本 1.1](http://yaml.org/spec/current.html)。
+ **唯一性** – 在每个配置文件中使用每个键一次。
**警告**  
如果您在同一个配置文件中两次使用同一个键 (例如 `option_settings`)，则会删除两个部分之一。将重复的部分组合为单个部分，或将其放在不同的配置文件中。

根据您用来管理环境的客户端，部署过程可能略有不同。有关详细信息，请参阅下面几节：
+ [Elastic Beanstalk 控制台](environment-configuration-methods-during.md#configuration-options-during-console-ebextensions)
+ [EB CLI](environment-configuration-methods-during.md#configuration-options-during-ebcli-ebextensions)
+ [Amazon CLI](environment-configuration-methods-during.md#configuration-options-during-awscli-ebextensions)

**Topics**
+ [选项设置](ebextensions-optionsettings.md)
+ [自定义 Linux 服务器上的软件](customize-containers-ec2.md)
+ [自定义 Windows Server 上的软件](customize-containers-windows-ec2.md)
+ [添加和自定义 Elastic Beanstalk 环境资源](environment-resources.md)