

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

# 自定义选项
<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
```

在其他某个位置，配置文件定义了一个可读取包含 `Fn::GetOptionSetting` 的选项的 SNS 主题以填充 `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` 的示例代码段。