

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

# **eb create**
<a name="eb3-create"></a>

## 说明
<a name="eb3-createdescription"></a>

创建新环境并将应用程序版本部署到新环境。

**注意**  
要对 .NET 应用程序使用 **eb create**，您必须按[创建 .NET 应用程序的源包](applications-sourcebundle.md#using-features.deployment.source.dotnet)中所述创建部署程序包，然后按[部署构件而不是项目文件夹](eb-cli3-configuration.md#eb-cli3-artifact)中所述设置 CLI 配置以将程序包部署为构件。
使用 EB CLI 创建环境需要[服务角色](concepts-roles-service.md)。您可以通过在 Elastic Beanstalk 控制台中创建环境来创建服务角色。如果您没有服务角色，EB CLI 会尝试在您运行 `eb create` 时创建一个。

您可以从几个来源部署应用程序版本：
+ 默认情况下：从本地项目目录中的应用程序源代码。
+ 使用 `--version` 选项：从您的应用程序中已存在的应用程序版本。
+ 当您的项目目录不具有应用程序代码时或使用 `--sample` 选项时：从环境平台特定的示例应用程序中部署。

## 语法
<a name="eb3-createsyntax"></a>

**eb create**

**eb create {{environment-name}}**

环境名称长度必须在 4 到 40 个字符之间。名称只能包含字母、数字和连字符（-）。环境名称不能以连字符开头或结尾。

如果您在命令中包括了某个环境名称，EB CLI 不会提示您做出任何选择或创建服务角色。

如果您运行不带环境名称参数的命令，该命令将在交互流中运行，并提示您输入或选择一些设置的值。在此交互流中，如果您要部署示例应用程序，EB CLI 还会询问您是否要将此示例应用程序下载到本地项目目录。下载 EB CLI，您稍后便可以将 EB CLI 用于新环境，以运行需要应用程序代码（如 [**eb deploy**](eb3-deploy.md)）的操作。

某些交互式流提示仅在特定条件下显示。例如，如果您选择使用 Application Load Balancer，并且您的账户至少有一个可共享的 Application Load Balancer，则 Elastic Beanstalk 会显示一条提示，询问您是否要使用共享的负载均衡器。如果您的账户中不存在可共享的 Application Load Balancer，则不会显示此提示。

## 选项
<a name="eb3-createoptions"></a>

这些选项都不是必需的。如果您运行 **eb create** 时不指定任何选项，EB CLI 会提示您为每个设置输入或选择值。


****  

|  名称  |  描述  | 
| --- | --- | 
| `-d`<br />或<br />`--branch_default` | 将环境设置为当前存储库的默认环境。 | 
| `--cfg` {{config-name}} | [使用保存的配置中的平台设置](environment-configuration-methods-during.md#configuration-options-during-ebcli-savedconfig)，保存的配置位于 `.elasticbeanstalk/saved_configs/` 或您的 Amazon S3 存储桶中。仅指定文件的名称，无需 `.cfg.yml` 扩展名。 | 
| `-c` {{subdomain-name}}<br />或者<br />`--cname` {{subdomain-name}} | 要为路由到您的网站的 CNAME DNS 条目添加前缀的子域名。<br />类型：字符串<br />默认值：环境名称 | 
| `-db`<br />或<br />`--database` | 将数据库附加到环境。如果您运行带 **eb create** 选项（而不带 `--database` 和 `--database.username` 选项）的 `--database.password`，EB CLI 将提示您输入主数据库的用户名和密码。 | 
| `-db.engine` {{engine}}<br />或者<br />`--database.engine` {{engine}} | 数据库引擎类型。如果您运行带此选项的 **eb create**，EB CLI 将启动附加了数据库的环境。即使您没有运行带 `--database` 选项的命令，亦是如此。<br />类型：字符串<br />有效值：`mysql`、`oracle-se1`、`postgres`、`sqlserver-ex`、`sqlserver-web`、`sqlserver-se` | 
| `-db.i` {{instance\_type}}<br />或者<br />`--database.instance` {{instance\_type}} | 用于数据库的 Amazon EC2 实例的类型。如果您运行带此选项的 **eb create**，EB CLI 将启动附加了数据库的环境。即使您没有运行带 `--database` 选项的命令，亦是如此。<br />类型：字符串<br />有效值：<br />Amazon RDS 支持一组标准的数据库实例。要为数据库引擎选择合适的数据库实例，您必须考虑一些特定的注意事项。有关更多信息，请参阅《Amazon RDS 用户指南》**中的[数据库实例类](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)。 | 
| `-db.pass` {{password}}<br />或者<br />`--database.password` {{password}} | 数据库的密码。如果您运行带此选项的 **eb create**，EB CLI 将启动附加了数据库的环境。即使您没有运行带 `--database` 选项的命令，亦是如此。 | 
| `-db.size` {{number\_of\_gigabytes}}<br />或者<br />`--database.size` {{number\_of\_gigabytes}} | 要为数据库存储分配的 GB 数。如果您运行带此选项的 **eb create**，EB CLI 将启动附加了数据库的环境。即使您没有运行带 `--database` 选项的命令，亦是如此。<br />类型：数字<br />有效值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/eb3-create.html) | 
| `-db.user` {{username}}<br />或者<br />`--database.username` {{username}} | 数据库的用户名。如果您运行带此选项的 **eb create**，EB CLI 将启动附加了数据库的环境（即使您没有运行带 `--database` 选项的命令）。如果您运行带 **eb create** 选项（而不带 `--database` 和 `--database.username` 选项）的 `--database.password`，EB CLI 将提示您输入主数据库用户名和密码。 | 
| `-db.version` {{version}}<br />或者<br />`--database.version` {{version}} | 可用于指定数据库引擎版本。如果此标志存在，环境将随带指定版本号的数据库一起启动（即使 `--database` 标志不存在）。 | 
| `--elb-type` {{type}} | [负载均衡器类型](using-features.managing.elb.md)。<br />类型：字符串<br />有效值：`classic`、`application`、`network`<br />默认值：`application` | 
| `-es`<br />或<br />`--enable-spot` | 为您的环境启用 Spot 实例请求。有关更多信息，请参阅[自动扩缩组](using-features.managing.as.md)。<br />相关选项：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/eb3-create.html) | 
| --env-group-suffix {{groupname}} | 要附加到环境名的组名。只能与[编写环境](ebcli-compose.md)一起使用。 | 
| `--envvars` | 以逗号分隔的列表中的@@ [环境属性](environments-cfg-softwaresettings.md)，格式{{name}}为 =。{{value}}有关限制，请参阅[配置环境属性（环境变量）](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console)。 | 
| `-ip` {{profile\_name}}<br />或者<br />`--instance_profile` {{profile\_name}} | 具有 IAM 角色的实例配置文件，其中包含您的应用程序访问 AWS 资源所需的临时安全证书。 | 
| `-it`<br />或者<br />`-﻿-﻿instance-types {{type1}}[,{{type2}} ...]` | 您希望您的环境使用的 Amazon EC2 实例类型列表，以逗号分隔。如果不指定此选项，则 Elastic Beanstalk 将提供默认实例类型。<br />有关更多信息，请参阅[亚马逊 EC2 实例](using-features.managing.ec2.md)和[自动扩缩组](using-features.managing.as.md)。 EB CLI 仅将此选项应用于 Spot 实例。除非结合使用此选项和 `--enable-spot` 选项，EB CLI 才将忽略它。要为按需实例指定实例类型，请使用 `--intance-type`（无“s”）选项。  | 
| `-i`<br />或者<br />`--instance_type` | 您希望您的环境使用的 Amazon EC2 实例类型。如果不指定此选项，则 Elastic Beanstalk 将提供默认实例类型。<br />有关更多信息，请参阅[亚马逊 EC2 实例](using-features.managing.ec2.md)。 EB CLI 仅将此选项应用于按需实例。不要将此选项与 `--enable-spot` 选项一同使用，因为当您执行此操作时，EB CLI 会忽略它。要为 Spot 实例指定实例类型，请使用 `--intance-types`（无“s”）选项。  | 
| `-k` {{key\_name}}<br />或者<br />`--keyname` {{key\_name}} | 用于安全外壳 (SSH) 客户端的亚马逊 EC2 密钥对的名称，用于安全登录运行 Elastic Beanstalk 应用程序的亚马逊 EC2 实例。如果您将此选项与 **eb create** 命令一起包含，则提供的值将覆盖您可能已使用 **eb init** 指定的任何密钥名称。<br />有效值：已在 Amazon 注册的现有密钥名称 EC2 | 
| `-im` {{number-of-instances}}<br />或者<br />`--min-instances` {{number-of-instances}} | 您的环境需要拥有的最少数量的 Amazon EC2 实例。<br />类型：数字（整数）<br />默认值：`1`<br />有效值：`1` 到 `10000` | 
| `-ix` {{number-of-instances}}<br />或者<br />`--max-instances` {{number-of-instances}} | 您允许您的环境拥有的最大 Amazon EC2 实例数量。<br />类型：数字（整数）<br />默认值：`4`<br />有效值：`1` 到 `10000` | 
| `--modules` {{component-a component-b}} | 要创建的组件环境的列表。只能与[编写环境](ebcli-compose.md)一起使用。 | 
| `-sb`<br />或<br />`--on-demand-base-capacity` | 扩展环境时，在考虑 Spot 实例之前，Auto Scaling 组预配置的最小按需实例数。<br />此选项只能使用 `--enable-spot` 选项指定。有关更多信息，请参阅[自动扩缩组](using-features.managing.as.md)。<br />类型：数字（整数）<br />默认值：`0`<br />有效值：`0` 至 `--max-instances`（当不存在时：`MaxSize` [aws:autoscaling:asg](command-options-general.md#command-options-general-autoscalingasg) 命名空间中的 `aws:autoscaling:asg` 选项） | 
| `-sp`<br />或<br />`--on-demand-above-base-capacity` | Auto Scaling 组在 `--on-demand-base-capacity` 选项指定的超过的实例数作为额外容量预配置的按需实例的百分比。<br />此选项只能使用 `--enable-spot` 选项指定。有关更多信息，请参阅[自动扩缩组](using-features.managing.as.md)。<br />类型：数字（整数）<br />默认值：`0` 用于单个实例环境； `70` 用于负载均衡环境<br />有效值：`0` 到 `100` | 
| `-p` {{platform-version}}<br />或者<br />`--platform` {{platform-version}} | 要使用的[平台版本](concepts.platforms.md)。您可以指定平台、平台和版本、平台分支、解决方案堆栈名称或解决方案堆栈 ARN。例如：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/eb3-create.html)<br />使用 [`eb platform list`](eb3-platform.md) 获取可用配置的列表。<br />如果您指定 `--platform` 选项，则它会覆盖 `eb init` 期间提供的值。 | 
| `-pr`<br />或<br />`--process` | 预处理并验证源代码包中的环境清单和配置文件。通过验证配置文件，可以在将应用程序版本部署到环境之前发现问题。 | 
| `-r` {{region}}<br />或者<br />`--region` {{region}} | 您要部署应用程序的 AWS 区域。<br />有关可以为此选项指定的值列表，请参阅 *AWS 一般参考* 中的 [AWS Elastic Beanstalk 端点和配额](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html)。 | 
| `--sample` | 将示例应用程序部署到新环境，而不是您的存储库中的代码。 | 
| `--scale` {{number-of-instances}} | 与指定数量的实例一起启动 | 
| --service-role {{servicerole}} | 将非默认服务角色分配到环境。 不要输入 ARN。仅输入角色名称。Elastic Beanstalk 会用正确的值为角色名称添加前缀，以在内部创建生成的 ARN。  | 
| `-ls` {{load-balancer}}<br />或者<br />`--shared-lb` {{load-balancer}} | 将环境配置为使用共享的负载均衡器。在您的账户中提供可共享的负载均衡器的名称或 ARN - 您显式创建而不是由其他 Elastic Beanstalk 环境创建的 Application Load Balancer。有关更多信息，请参阅[共享 Application Load Balancer](environments-cfg-alb-shared.md)。<br />参数示例：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/eb3-create.html)<br />您只能使用 `--elb-type application` 指定此选项。如果您指定了该选项但未指定 `--shared-lb`，则 Elastic Beanstalk 为环境创建一个专用的负载均衡器。 | 
| `-lp` {{port}}<br />或者<br />`--shared-lb-port` {{port}} | 此环境的共享负载均衡器的默认侦听器端口。Elastic Beanstalk 添加了一个侦听器规则，该规则将来自此侦听器的所有流量路由到默认环境进程。有关更多信息，请参阅[共享 Application Load Balancer](environments-cfg-alb-shared.md)。<br />类型：数字（整数）<br />默认值：`80`<br />有效值：表示共享的负载均衡器的侦听器端口的任何整数。 | 
| `--single` | 使用单个 Amazon EC2 实例且不使用负载均衡器创建环境。 单实例环境不适用于生产。如果实例在部署期间变得不稳定，或者 Elastic Beanstalk 在配置更新期间终止并重新启动实例，则您的应用程序可能会在一段时间内不可用。可将单实例环境用于开发、测试或暂存。使用负载均衡环境进行生产。  | 
| `-sm`<br />或<br />`--spot-max-price` | 您愿意为 Spot 实例支付的每单位小时的最高价（美元）。<br />此选项只能使用 `--enable-spot` 选项指定。有关更多信息，请参阅[自动扩缩组](using-features.managing.as.md)。<br />类型：数字（浮点数）<br />默认：每种实例类型的按需价格。在这种情况下，该选项的值为 `null`。<br />有效值：`0.001` 到 `20.0`<br />有关竞价型实例最高价格选项的建议，请参阅 *Amazon EC2 用户指南*中的[竞价型实例定价历史记录](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances-history.html)。 | 
| `-﻿-﻿tags {{key1}}={{value1}}[,{{key2}}={{value2}} ...]` | 在环境中标记资源。将标签指定为逗号分隔的 `key=value` 对的列表。<br />有关更多信息，请参阅 [为环境添加标签](using-features.tagging.md)。 | 
| `-t worker`<br />或<br />`--tier worker` | 创建一个工作线程环境。忽略此选项，以创建 Web 服务器环境。 | 
| `--timeout` {{minutes}} | 命令超时之前的设定分钟数。 | 
| `--version` {{version\_label}} | 指定要部署到环境中的应用程序版本，而不是本地项目目录中的应用程序员代码。<br />类型：字符串<br />有效值：现有的应用程序版本标签 | 
| `--vpc` | 为您的环境配置 VPC。当您包含此选项时，EB CLI 会提示您在启动环境之前输入所有必需的设置。 | 
| `--vpc.dbsubnets {{subnet1,subnet2}}` | 在 VPC 中指定数据库实例的子网。在指定 `--vpc.id` 时是必需的。 | 
| `--vpc.ec2subnets {{subnet1,subnet2}}` | 为 VPC 中的 Amazon EC2 实例指定子网。在指定 `--vpc.id` 时是必需的。 | 
| `--vpc.elbpublic` | 在 VPC 的公有子网中启动 Elastic Load Balancing 负载均衡器。<br />您无法使用 `--tier worker` 或 `--single` 选项指定此选项。 | 
| `--vpc.elbsubnets {{subnet1,subnet2}}` | 在 VPC 中指定 Elastic Load Balancing 负载均衡器的子网。<br />您无法使用 `--tier worker` 或 `--single` 选项指定此选项。 | 
| `--vpc.id {{ID}}` | 在指定的 VPC 中启动您的环境。 | 
| `--vpc.publicip` | 在您的 VPC 的公有子网中启动您的 Amazon EC2 实例。<br />您无法使用 `--tier worker` 选项指定此选项。 | 
| `--vpc.securitygroups {{securitygroup1,securitygroup2}}` | 指定安全组 IDs。在指定 `--vpc.id` 时是必需的。 | 
| [常用选项](eb3-cmd-options.md) |  | 

## Output
<a name="eb3-createoutput"></a>

如果成功，则命令将通过问题来提示您，然后返回创建操作的状态。如果在启动期间发生问题，则可以使用 [**eb events**](eb3-events.md) 操作获取更多详细信息。

如果您在应用程序中启用了 CodeBuild 支持，则会在生成代码 CodeBuild 时**eb create**显示来自的信息。有关 Elastic Beanstalk 中 CodeBuild 支持的信息，请参阅。[将 EB CLI 与 AWS CodeBuild](eb-cli-codebuild.md)

## 示例
<a name="eb3-createexample1"></a>

下面的示例以交互模式创建环境。

```
$ eb create
Enter Environment Name
(default is tmp-dev): {{ENTER}}
Enter DNS CNAME prefix
(default is tmp-dev): {{ENTER}}
Select a load balancer type
1) classic
2) application
3) network
(default is 2): {{ENTER}}
Environment details for: tmp-dev
  Application name: tmp
  Region: us-east-2
  Deployed Version: app-141029_145448
  Environment ID: e-um3yfrzq22
  Platform: 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5
  Tier: WebServer-Standard-1.0
  CNAME: tmp-dev.elasticbeanstalk.com
  Updated: 2014-10-29 21:54:51.063000+00:00
Printing Status:
...
```

下面的示例还在交互模式下创建环境。在此示例中，您的项目目录没有应用程序代码。该命令将部署一个示例应用程序，然后将其下载到您的本地项目目录中。

```
$ eb create
Enter Environment Name
(default is tmp-dev): {{ENTER}}
Enter DNS CNAME prefix
(default is tmp-dev): {{ENTER}}
Select a load balancer type
1) classic
2) application
3) network
(default is 2): {{ENTER}}
NOTE: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Do you want to download the sample application into the current directory?
(Y/n): {{ENTER}}
INFO: Downloading sample application to the current directory.
INFO: Download complete.
Environment details for: tmp-dev
  Application name: tmp
  Region: us-east-2
  Deployed Version: Sample Application
  Environment ID: e-um3yfrzq22
  Platform: 64bit Amazon Linux 2014.09 v1.0.9 running PHP 5.5
  Tier: WebServer-Standard-1.0
  CNAME: tmp-dev.elasticbeanstalk.com
  Updated: 2017-11-08 21:54:51.063000+00:00
Printing Status:
...
```

下面的命令创建一个环境但不显示任何提示。

```
$ eb create dev-env
Creating application version archive "app-160312_014028".
Uploading test/app-160312_014028.zip to S3. This may take a while.
Upload Complete.
Application test has been created.
Environment details for: dev-env
  Application name: test
  Region: us-east-2
  Deployed Version: app-160312_014028
  Environment ID: e-6fgpkjxyyi
  Platform: 64bit Amazon Linux 2015.09 v2.0.8 running PHP 5.6
  Tier: WebServer-Standard
  CNAME: UNKNOWN
  Updated: 2016-03-12 01:40:33.614000+00:00
Printing Status:
...
```

下面的命令在自定义 VPC 中创建一个环境。

```
$ eb create dev-vpc --vpc.id vpc-0ce8dd99 --vpc.elbsubnets subnet-b356d7c6,subnet-02f74b0c --vpc.ec2subnets subnet-0bb7f0cd,subnet-3b6697c1 --vpc.securitygroup sg-70cff265
Creating application version archive "app-160312_014309".
Uploading test/app-160312_014309.zip to S3. This may take a while.
Upload Complete.
Environment details for: dev-vpc
  Application name: test
  Region: us-east-2
  Deployed Version: app-160312_014309
  Environment ID: e-pqkcip3mns
  Platform: 64bit Amazon Linux 2015.09 v2.0.8 running Java 8
  Tier: WebServer-Standard
  CNAME: UNKNOWN
  Updated: 2016-03-12 01:43:14.057000+00:00
Printing Status:
...
```