

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

# 环境清单 (`env.yaml`)
<a name="environment-cfg-manifest"></a>

您可以在应用程序源包的根目录中包含一个 YAML 格式的环境清单，以配置在创建环境时使用的环境名称、解决方案堆栈和[环境链接](environment-cfg-links.md)。

此文件格式包含对环境组的支持。要使用组，请在清单中指定环境名称并在末尾添加一个 \$1 号。创建或更新环境时，请使用 `--group-name`（AWS CLI）或 `--env-group-suffix`（EB CLI）指定组名称。有关组的更多信息，请参阅[创建和更新 Elastic Beanstalk 环境组](environment-mgmt-compose.md)。

以下示例清单定义一个 Web 服务器环境，并包含一个指向它依赖的工作线程环境组件的链接。此清单使用组以允许使用相同的源包创建多个环境：

**`~/myapp/frontend/env.yaml`**

```
AWSConfigurationTemplateVersion: 1.1.0.0
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.6 running Multi-container Docker 1.7.1 (Generic)
OptionSettings:
  aws:elasticbeanstalk:command:
    BatchSize: '30'
    BatchSizeType: Percentage
  aws:elasticbeanstalk:sns:topics:
    Notification Endpoint: me@example.com
  aws:elb:policies:
    ConnectionDrainingEnabled: true
    ConnectionDrainingTimeout: '20'
  aws:elb:loadbalancer:
    CrossZone: true
  aws:elasticbeanstalk:environment:
    ServiceRole: aws-elasticbeanstalk-service-role
  aws:elasticbeanstalk:application:
    Application Healthcheck URL: /
  aws:elasticbeanstalk:healthreporting:system:
    SystemType: enhanced
  aws:autoscaling:launchconfiguration:
    IamInstanceProfile: aws-elasticbeanstalk-ec2-role
    InstanceType: t2.micro
    EC2KeyName: workstation-uswest2
  aws:autoscaling:updatepolicy:rollingupdate:
    RollingUpdateType: Health
    RollingUpdateEnabled: true
Tags:
  Cost Center: WebApp Dev
CName: front-A08G28LG+
EnvironmentName: front+
EnvironmentLinks:
  "WORKERQUEUE" : "worker+"
```

支持以下键。
+ **AWSConfigurationTemplateVersion**（必填）-配置模板版本 (1.1.0.0)。

  ```
  AWSConfigurationTemplateVersion: 1.1.0.0
  ```
+ **Platform** – 环境的平台版本的 Amazon 资源名称 (ARN)。您可以按 ARN 或解决方案堆栈名称指定平台。

  ```
  Platform:
    PlatformArn: arn:aws:elasticbeanstalk:us-east-2::platform/Java 8 running on 64bit Amazon Linux/2.5.0
  ```
+ **SolutionStack**— 用于创建环境的[解决方案堆栈](concepts.platforms.md)的全名。

  ```
  SolutionStack: 64bit Amazon Linux 2017.03 v2.5.0 running Java 8
  ```
+ **OptionSettings**— 要应用于环境的[配置选项](command-options.md)设置。例如，下面的条目将实例类型设为 t2.micro。

  ```
  OptionSettings:
    aws:autoscaling:launchconfiguration:
      InstanceType: t2.micro
  ```
+ **Tags** - 多达 47 个标签，应用于在环境中创建的资源。

  ```
  Tags:
    Cost Center: WebApp Dev
  ```
+ **EnvironmentTier**— 要创建的环境类型。对于 Web 服务器环境，您可不包含此部分 (Web 服务器为默认值)。对于工作线程环境，请使用以下设置。

  ```
  EnvironmentTier:
    Name: Worker
    Type: SQS/HTTP
  ```
+ **CName**— 环境的别名记录。在名称末尾包含一个 \$1 号以启用组。

  ```
  CName: front-A08G28LG+
  ```
+ **EnvironmentName**-要创建的环境的名称。在名称末尾包含一个 \$1 号以启用组。

  ```
  EnvironmentName: front+
  ```

  如果启用组，则在创建环境时必须指定组名称。Elastic Beanstalk 使用连字符将组名称追加到环境名称。例如，对于环境名称 `front+` 和组名称 `dev`，Elastic Beanstalk 会创建名为 `front-dev` 的环境。
+ **EnvironmentLinks**— 变量名和依赖关系环境名称的映射。下面的示例使 `worker+` 环境成为依赖项并告知 Elastic Beanstalk 将链接信息保存到名为 `WORKERQUEUE` 的变量。

  ```
  EnvironmentLinks:
    "WORKERQUEUE" : "worker+"
  ```

  链接变量的值因被链接环境的类型而异。对于 Web 服务器环境，链接为环境的别名记录。对于工作线程环境，链接为环境的 Amazon Simple Queue Service (Amazon SQS) 队列的名称。

**CName**、**EnvironmentName**和**EnvironmentLinks**密钥可用于创建[环境组](environment-mgmt-compose.md)和[指向其他环境的链接](environment-cfg-links.md)。当前，使用 EB CLI AWS CLI 或 SDK 时支持这些功能。