eb create - AWS Elastic Beanstalk

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

eb create

描述

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

注意
  • 要对 .NET 应用程序使用 eb create,您必须按创建 .NET 应用程序的源包中所述创建部署程序包,然后按部署构件而不是项目文件夹中所述设置 CLI 配置以将程序包部署为构件。

  • 使用 EB CLI 创建环境需要服务角色。您可以通过在 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)的操作。

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

Options

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

名称

描述

-d

--branch_default

将环境设置为当前存储库的默认环境。

--cfg config-name

使用保存的配置中的平台设置,保存的配置位于 .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 选项的命令,亦是如此。

类型:字符串

有效值:mysqloracle-se1postgressqlserver-exsqlserver-websqlserver-se

-db.i instance_type

--database.instance instance_type

要用于数据库的 Amazon EC2 实例的类型。如果您运行带此选项的 eb create,EB CLI 将启动附加了数据库的环境。即使您没有运行带 --database 选项的命令,亦是如此。

类型:字符串

有效值:

Amazon RDS 支持一组标准的数据库实例。要为数据库引擎选择合适的数据库实例,您必须考虑一些特定的注意事项。有关更多信息,请参阅《Amazon RDS 用户指南》中的数据库实例类

-db.pass password

--database.password password

数据库的密码。如果您运行带此选项的 eb create,EB CLI 将启动附加了数据库的环境。即使您没有运行带 --database 选项的命令,亦是如此。

-db.size number_of_gigabytes

--database.size number_of_gigabytes

要为数据库存储分配的 GB 数。如果您运行带此选项的 eb create,EB CLI 将启动附加了数据库的环境。即使您没有运行带 --database 选项的命令,亦是如此。

类型:数字

有效值:

  • MySQL51024。默认为 5

  • Postgres51024。默认为 5

  • Oracle101024。默认为 10

  • Microsoft SQL Server Express Edition30

  • Microsoft SQL Server Web Edition30

  • Microsoft SQL Server Standard Edition200

-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

负载均衡器类型

类型:字符串

有效值:classicapplicationnetwork

默认值:application

-es

--enable-spot

为您的环境启用 Spot 实例请求。有关更多信息,请参阅Auto Scaling 组

相关选项:

  • --instance-types

  • --on-demand-base-capacity

  • --on-demand-above-base-capacity

  • --spot-max-price

--env-group-suffix groupname 要附加到环境名的组名。只能与编写环境一起使用。

--envvars

逗号分隔列表中的环境属性,格式为 name=value。有关限制,请参阅配置环境属性(环境变量)

-ip profile_name

--instance_profile profile_name

带有 IAM 角色的实例配置文件,该角色具有您的应用程序访问 AWS 资源所需的临时安全凭证。

-it

--instance-types type1[,type2 ...]

您希望环境使用的 Amazon EC2 实例类型的逗号分隔列表。如果不指定此选项,则 Elastic Beanstalk 将提供默认实例类型。

有关更多信息,请参阅Amazon EC2 实例Auto Scaling 组

重要

EB CLI 仅将此选项应用于 Spot 实例。除非结合使用此选项和 --enable-spot 选项,EB CLI 才将忽略它。要为按需实例指定实例类型,请使用 --intance-type(无“s”)选项。

-i

--instance_type

您希望环境使用的 Amazon EC2 实例类型。如果不指定此选项,则 Elastic Beanstalk 将提供默认实例类型。

有关更多信息,请参阅Amazon EC2 实例

重要

EB CLI 仅将此选项应用于按需实例。不要将此选项与 --enable-spot 选项一同使用,因为当您执行此操作时,EB CLI 会忽略它。要为 Spot 实例指定实例类型,请使用 --intance-types(无“s”)选项。

-k key_name

--keyname key_name

与 Secure Shell(SSH)客户端结合使用以安全登录运行 Elastic Beanstalk 应用程序的 Amazon EC2 实例的 Amazon EC2 密钥对的名称。如果您将此选项与 eb create 命令一起包含,则提供的值将覆盖您可能已使用 eb init 指定的任何密钥名称。

有效值:向 Amazon EC2 注册的现有密钥名称

-im number-of-instances

--min-instances number-of-instances

您要求新环境拥有的最小 Amazon EC2 实例数。

类型:数字(整数)

默认值:1

有效值:110000

-ix number-of-instances

--max-instances number-of-instances

您允许环境拥有的最大 Amazon EC2 实例数。

类型:数字(整数)

默认值:4

有效值:110000

--modules component-a component-b

要创建的组件环境的列表。只能与编写环境一起使用。

-sb

--on-demand-base-capacity

扩展环境时,在考虑 Spot 实例之前,Auto Scaling 组预配置的最小按需实例数。

此选项只能使用 --enable-spot 选项指定。有关更多信息,请参阅Auto Scaling 组

类型:数字(整数)

默认值:0

有效值:0--max-instances(当不存在时:MaxSize aws:autoscaling:asg 命名空间中的 aws:autoscaling:asg 选项)

-sp

--on-demand-above-base-capacity

Auto Scaling 组在 --on-demand-base-capacity 选项指定的超过的实例数作为额外容量预配置的按需实例的百分比。

此选项只能使用 --enable-spot 选项指定。有关更多信息,请参阅Auto Scaling 组

类型:数字(整数)

默认值:0 用于单个实例环境; 70 用于负载均衡环境

有效值:0100

-p platform-version

--platform platform-version

要使用的平台版本。您可以指定平台、平台和版本、平台分支、解决方案堆栈名称或解决方案堆栈 ARN。例如:

  • phpPHPnode.js – 指定平台的最新平台版本

  • php-7.2"PHP 7.2" – 推荐的(通常是最新的)PHP 7.2 平台版本

  • "PHP 7.2 running on 64bit Amazon Linux" – 此平台分支中推荐的(通常是最新的)PHP 平台版本

  • "64bit Amazon Linux 2017.09 v2.6.3 running PHP 7.1" – 此解决方案堆栈名称指定的 PHP 平台版本

  • "arn:aws:elasticbeanstalk:us-east-2::platform/PHP 7.1 running on 64bit Amazon Linux/2.6.3" – 此解决方案堆栈 ARN 指定的 PHP 平台版本

使用 eb platform list 获取可用配置的列表。

如果您指定 --platform 选项,则它会覆盖 eb init 期间提供的值。

-pr

--process

预处理并验证源代码包中的环境清单和配置文件。通过验证配置文件,可以在将应用程序版本部署到环境之前发现问题。

-r region

--region region

您要在其中部署应用程序的 AWS 区域。

有关可以为此选项指定的值列表,请参阅 AWS 一般参考 中的 AWS Elastic Beanstalk 端点和配额

--sample

将示例应用程序部署到新环境,而不是您的存储库中的代码。

--scale number-of-instances

与指定数量的实例一起启动

--service-role servicerole 将非默认服务角色分配到环境。
注意

不要输入 ARN。仅输入角色名称。Elastic Beanstalk 会用正确的值为角色名称添加前缀,以在内部创建生成的 ARN。

-ls 负载均衡器

--shared-lb 负载均衡器

将环境配置为使用共享的负载均衡器。在您的账户中提供可共享的负载均衡器的名称或 ARN - 您显式创建而不是由其他 Elastic Beanstalk 环境创建的 Application Load Balancer。有关更多信息,请参阅共享 Application Load Balancer

参数示例:

  • FrontEndLB - 负载均衡器名称。

  • arn:aws:elasticloadbalancing:us-east-2:123456789012:loadbalancer/app/FrontEndLB/0dbf78d8ad96abbc – Application Load Balancer ARN。

您只能使用 --elb-type application 指定此选项。如果您指定了该选项但未指定 --shared-lb,则 Elastic Beanstalk 为环境创建一个专用的负载均衡器。

-lp 端口

--shared-lb-port 端口

此环境的共享负载均衡器的默认侦听器端口。Elastic Beanstalk 添加了一个侦听器规则,该规则将来自此侦听器的所有流量路由到默认环境进程。有关更多信息,请参阅共享 Application Load Balancer

类型:数字(整数)

默认值:80

有效值:表示共享的负载均衡器的侦听器端口的任何整数。

--single

创建具有单个 Amazon EC2 实例并且没有负载均衡器的环境。

警告

单实例环境不适用于生产。如果实例在部署期间变得不稳定,或者 Elastic Beanstalk 在配置更新期间终止并重新启动实例,则您的应用程序可能会在一段时间内不可用。可将单实例环境用于开发、测试或暂存。使用负载均衡环境进行生产。

-sm

--spot-max-price

您愿意为 Spot 实例支付的每单位小时的最高价(美元)。

此选项只能使用 --enable-spot 选项指定。有关更多信息,请参阅Auto Scaling 组

类型:数字(浮点数)

默认:每种实例类型的按需价格。在这种情况下,该选项的值为 null

有效值:0.00120.0

有关竞价型实例最高价格选项的建议,请参阅《Amazon EC2 用户指南》中的竞价型实例定价历史记录

--tags key1=value1[,key2=value2 ...]

在环境中标记资源。将标签指定为逗号分隔的 key=value 对的列表。

有关更多信息,请参阅 标记环境

-t worker

--tier worker

创建一个工作线程环境。忽略此选项,以创建 Web 服务器环境。

--timeout minutes

命令超时之前的设定分钟数。

--version version_label

指定要部署到环境中的应用程序版本,而不是本地项目目录中的应用程序员代码。

类型:字符串

有效值:现有的应用程序版本标签

--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

指定安全组 ID。在指定 --vpc.id 时是必需的。

常用选项

输出

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

如果您在应用程序中启用了 CodeBuild 支持,则 eb create 会在生成代码时显示 CodeBuild 中的信息。有关 Elastic Beanstalk 中的 CodeBuild 支持的信息,请参阅通过 AWS CodeBuild 使用 EB CLI

示例

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

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