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 deploy)。

某些互動式流程提示只會在特定情況下顯示。例如,如果您選擇使用 Application Load Balancer (而您的帳戶至少有一個可共享的 Application Load Balancer,則 Elastic Beanstalk 會顯示提示,詢問您是否要使用共享負載平衡器。如果您的帳戶中沒有可共享的 Application Load Balancer,則不會顯示此提示。

選項

這些選項均非必要。若您不帶選項執行 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 引擎

--database.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 密碼

--database.password 密碼

資料庫的密碼。若您搭配此選項執行 eb create,EB CLI 會啟動連接至資料庫的環境。即使您沒有透過 --database 選項執行此命令也是。

-db.size number_of_gigabytes

--database.size number_of_gigabytes

為資料庫儲存配置的 GB 數。若您搭配此選項執行 eb create,EB CLI 會啟動連接至資料庫的環境。即使您沒有透過 --database 選項執行此命令也是。

類型:數字

有效值:

  • MySQL - 51024。預設值為 5

  • Postgres - 51024。預設值為 5

  • Oracle - 101024。預設值為 10

  • Microsoft SQL Server Express 版本 - 30

  • Microsoft SQL Server Web 版本 - 30

  • Microsoft SQL Server Standard 版本 - 200

-db.user 使用者名稱

--database.username 使用者名稱

資料庫的使用者名稱。若您搭配此選項執行 eb create,EB CLI 會啟動連接至資料庫的環境,即使此命令未納入 --database 選項。若您執行的 eb create 具備 --database 選項,但沒有 --database.username--database.password 選項,則 EB CLI 會提示您輸入主要資料庫的使用者名稱及密碼。

-db.version 版本

--database.version version

用於指定資料庫引擎版本。若此旗標已存在,環境將搭配指定版本編號的資料庫啟動,即使 --database 旗標不存在。

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

要搭配安全殼層 (SSH) 用戶端使用的 Amazon EC2 金鑰對名稱,以安全登入執行 Elastic Beanstalk 應用程式的 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

隨著環境擴展,Auto Scaling 群組在考量 Spot 執行個體前佈建的最小隨需執行個體數量。

此選項只能搭配 --enable-spot 選項一起指定。如需更多詳細資訊,請參閱 Auto Scaling 群組

類型:數值 (整數)

預設:0

有效值:0--max-instances (缺少時:MaxSize 命名空間中的 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 區域

您要 AWS 部署應用程式的區域。

如需可以為此選項指定的值之清單,請參閱《AWS 一般參考》中的AWS Elastic Beanstalk 端點與配額

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

參數範例:

  • 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 分鐘

設定命令逾時前的分鐘數。

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