

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

# 自訂選項
<a name="configuration-options-custom"></a>

使用 `aws:elasticbeanstalk:customoption` 命名空間來定義可於其他組態檔案 `Resources` 區塊讀取的選項與值。使用自訂選項來收集使用者於單一組態檔案中指定的設定。

例如，您可能有一個複雜的組態檔案，該檔案定義使用者能夠於啟動環境時設定的資源。若您使用 `Fn::GetOptionSetting` 來擷取自訂選項的數值，您可以將該選項的定義，放置於另一個使用者能夠更輕鬆探索並修改的組態檔案。

此外，由於自訂選項為組態選項，因此可於 API 層級設定，覆寫組態檔案設定的數值。如需詳細資訊，請參閱[優先順序](command-options.md#configuration-options-precedence)。

自訂選項的定義方式與其他選項類似：

```
option_settings:
  aws:elasticbeanstalk:customoption:
    {{option name}}: {{option value}}
```

例如，下列組態檔案會建立名為 `ELBAlarmEmail` 的選項，並將值設定為 `someone@example.com`：

```
option_settings:
  aws:elasticbeanstalk:customoption:
    ELBAlarmEmail: someone@example.com
```

在其他方面，組態檔案的定義的 SNS 主題，可透過 `Fn::GetOptionSetting` 讀取選項來填入 `Endpoint` 屬性的數值：

```
Resources:
  MySNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
        - Endpoint: 
            Fn::GetOptionSetting:
              OptionName: ELBAlarmEmail
              DefaultValue: nobody@example.com
          Protocol: email
```

您可在[新增和自訂 Elastic Beanstalk 環境資源](environment-resources.md)找到更多使用 `Fn::GetOptionSetting` 的範例程式碼片段。