

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

# **eb create**


## 说明


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

**注意**  
要对 .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` 选项时：从环境平台特定的示例应用程序中部署。

## 语法


**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，则不会显示此提示。

## 选项


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


****  

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

## Output


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

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

## 示例


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

```
$ 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:
...
```