

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用組態檔案 (`.ebextensions`) 來進行進階的環境自訂
<a name="ebextensions"></a>

您可以將 AWS Elastic Beanstalk 組態檔案 (`.ebextensions`) 新增至 Web 應用程式的原始程式碼，以設定您的環境並自訂其中包含 AWS 的資源。組態檔案是 YAML 或 JSON 格式的文件，副`.config`檔名是您放在名為 的資料夾中，`.ebextensions`並在應用程式[原始碼套件](applications-sourcebundle.md)中部署。

**Example .ebextensions/network-load-balancer.config**  
此範例會進行簡單的組態變更。它會修改組態選項，以將環境負載平衡器的類型設定為 Network Load Balancer。  

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

我們建議對組態檔案使用 YAML，因為與 JSON 相較，此格式可讀性較高。YAML 支援評論、多列命令、使用引號的數個替代選項等等。不過，您可以在 Elastic Beanstalk 組態檔案中以完全相同的方法使用 YAML 或 JSON 來進行任何組態變更。

**秘訣**  
在您開發或測試新的組態檔案時，請啟動執行預設應用程式的空白環境，然後將組態檔案部署到此環境。不當格式的組態檔案，將會導致新環境啟動失敗而無法回復。

組態檔案的 `option_settings` 區段定義了[組態選項](command-options.md)的值。組態選項可讓您設定 Elastic Beanstalk 環境、其中 AWS 的資源，以及執行您應用程式的軟體。組態檔案只是設定組態選項的幾種方式其中一種。

[`Resources` 本節](environment-resources.md)可讓您進一步自訂應用程式環境中的資源，並定義組態選項所提供功能以外的其他 AWS 資源。您可以新增和設定 AWS 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 不是標記語言 (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)
+ [AWS 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)