

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Elastic Beanstalk 環境
<a name="using-features.environments"></a>

下列程序會啟動執行預設應用程式的新環境。這些步驟經過簡化，可使用預設選項值讓您的環境快速啟動並執行。

**許可的注意事項**  
建立環境需要在 Elastic Beanstalk 中完整存取受管政策的許可。如需詳細資訊，請參閱「[Elastic Beanstalk 使用者政策](concepts-roles-user.md)」。

**使用 應用程式啟動環境 （主控台）**

1. 開啟 [Elastic Beanstalk 主控台](https://console.aws.amazon.com/elasticbeanstalk)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇 **Applications (應用程式)**。在清單中選取現有的應用程式。您也可以依照 中的指示，選擇建立一個[管理 應用程式](applications.md)。

1. 在應用程式概觀頁面上，選擇**建立環境**。

   這會啟動 **Create environment** (建立環境) 精靈。精靈提供一組建立新環境的步驟。

1. 針對**環境層**，選擇 **Web 伺服器環境**或**工作者環境**[環境層](concepts.md#concepts-tier)。建立後您即無法變更環境層。
**注意**  
[Windows Server 平台上的 .NET](create_deploy_NET.md) 不支援工作者環境層。

   **應用程式資訊**欄位預設為根據您先前選擇的應用程式。

   在**環境資訊**中，根據應用程式**名稱將環境**名稱分組為預設值。如果您偏好不同的環境名稱，您可以在欄位中輸入另一個值。您可以選擇輸入**網域名稱**，否則 Elastic Beanstalk 會自動產生值。您也可以選擇性地輸入**環境描述。**

1. 在 **Platform (平台)**，選取符合您應用程式所使用語言的平台和平台分支。
**注意**  
Elastic Beanstalk 支援所列出大多數平台的多個[版本](concepts.platforms.md)。根據預設，主控台會針對您選擇的平台和平台分支，選取建議的版本。如果您的應用程式需要不同的版本，您可以在這裡選取。如需支援的平台版本的相關詳細資訊，請參閱 [支援 Elastic Beanstalk 的平台](concepts.platforms.md)。

1. 對於**應用程式碼**，您有幾個選擇可以繼續。
   + 若要啟動預設範例應用程式而不提供原始碼，請選擇**範例應用程式**。此動作會選擇 Elastic Beanstalk 為您先前選取的平台提供的單一頁面應用程式。
   + 如果您從本指南下載範例應用程式，或擁有自己的應用程式原始碼，請執行下列步驟。

     1. 選取**上傳您的程式碼**。

     1. 接著選擇**本機檔案**，然後在**上傳應用程式**下，選擇**選擇檔案**。

     1. 用戶端機器的作業系統會顯示 界面，以選取您下載的本機檔案。選取原始碼套件檔案並繼續。

1. 您對**預設**集的選擇取決於您對環境的目的。
   + 如果您要建立範例環境來了解 Elastic Beanstalk 或開發環境，請選擇**單一執行個體 （符合免費方案資格）**。
   + 如果您要建立生產環境或環境以進一步了解負載平衡，請選擇其中一個**高可用性**選項。

1. 選擇**下一步**。

**設定服務存取**  
接下來，您需要兩個角色。*服務角色*可讓 Elastic Beanstalk 監控您的 EC2 執行個體，並升級您環境的平台。*EC2 執行個體描述*檔角色允許寫入日誌和與其他 服務互動等任務。

**建立或選取服務角色**

1. 如果您先前已建立**服務角色**，並想要選擇現有的角色，請從**服務角色**下拉式清單中選取值，然後略過這些步驟的其餘部分來建立服務角色。

1. 如果您沒有看到針對**服務角色**列出的任何值，或者您想要建立新的值，請繼續執行後續步驟。

1. 針對**服務角色**，選擇**建立角色**。

1. 針對**信任的實體類型**，請選擇 **AWS 服務**。

1. 針對**使用案例**，選擇 **Elastic Beanstalk – 環境**。

1. 選擇**下一步**。

1. 確認**許可政策**包含下列項目，然後選擇**下一步**：
   + `AWSElasticBeanstalkEnhancedHealth`
   + `AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy`

1. 選擇建**立角色**。

1. 返回**設定服務存取**索引標籤，重新整理清單，然後選取新建立的服務角色。

**建立或選取 EC2 執行個體描述檔**

1. 如果您先前已建立 **EC2 執行個體描述檔**，並想要選擇現有的 EC2 執行個體描述檔，請從 **EC2 執行個體描述**檔下拉式清單中選取值，然後略過這些步驟的其餘部分來建立 EC2 執行個體描述檔。

1. 如果您沒有看到 **EC2 執行個體描述檔**列出的任何值，或想要建立新的值，請繼續執行後續步驟。

1. 選擇建**立角色**。

1. 針對**信任的實體類型**，請選擇 **AWS 服務**。

1. 針對**使用案例**，選擇** Elastic Beanstalk – Compute**。

1. 選擇**下一步**。

1. 確認**許可政策**包含下列項目，然後選擇**下一步**：
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

1. 選擇建**立角色**。

1. 返回**設定服務存取**索引標籤，重新整理清單，然後選取新建立的 EC2 執行個體描述檔。

**完成設定和建立您的應用程式**

1. （選用） 如果您先前已建立 EC2 金鑰對，您可以從 **EC2 金鑰對**欄位下拉式清單中選取。您可以使用它安全地登入 Elastic Beanstalk 為您的應用程式佈建的 Amazon EC2 執行個體。如果您略過此步驟，您可以隨時在環境建立後建立和指派 EC2 金鑰對。如需詳細資訊，請參閱[EC2 key pair (EC2 金鑰對)](using-features.managing.security.md#using-features.managing.security.keypair)。

1. 在 **Configure service access** (設定服務存取)頁面上選擇 **Skip to Review** (略過以檢閱)。

1. **Review** (檢閱)頁面會顯示您所有選擇的摘要。

   若要進一步自訂您的環境，請選擇步驟旁的 **Edit** (編輯)，其中包含您想要設定的任何項目。下列選項僅能於環境建立期間進行設定：
   + 環境名稱
   + 網域名稱
   + 平台版本
   + 處理器
   + 負載平衡器類型
   + 層

   下列設定可於環境建立後變更，但需要佈建新的執行個體或其他資源，且套用時間可能較長：
   + 執行個體類型、根磁碟區、金鑰對和 AWS Identity and Access Management (IAM) 角色
   + 內部 Amazon RDS 資料庫
   + VPC

   如需所有可用設定的詳細資訊，請參閱[建立新的環境精靈](environments-create-wizard.md)。

1. 選擇頁面底部的 **Submit** (提交)，以將建立的新環境初始化。

雖然 Elastic Beanstalk 會建立您的環境，您會被重新引導至 [Elastic Beanstalk 主控台](environments-console.md)。當環境運作狀態顯示綠色時，請選擇環境名稱旁的 URL 以檢視執行中的應用程式。此 URL 通常可從網際網路存取，除非您將環境設定為使用[內部負載平衡器的自訂 VPC](environments-create-wizard.md#environments-create-wizard-network)。

**Topics**
+ [

# 建立新的環境精靈
](environments-create-wizard.md)
+ [

# 複製 Elastic Beanstalk 環境
](using-features.managing.clone.md)
+ [

# 終止 Elastic Beanstalk 環境
](using-features.terminating.md)
+ [

# 使用 CLI 建立 Elastic Beanstalk AWS 環境
](environments-create-awscli.md)
+ [

# 使用 API 建立 Elastic Beanstalk 環境
](environments-create-api.md)
+ [

# 建構立即啟動 URL
](launch-now-url.md)
+ [

# 建立和更新 Elastic Beanstalk 環境的群組
](environment-mgmt-compose.md)

# 建立新的環境精靈
<a name="environments-create-wizard"></a>

此主題說明 **Create environment** (建立環境) 精靈，以及您能用來設定您要建立的環境的所有方式。

**注意**  
在 中，[建立 Elastic Beanstalk 環境](using-features.environments.md)我們示範如何啟動**建立環境**精靈，並快速建立具有預設值和建議設定的環境。本目前主題將引導您完成所有選項。

## 精靈頁面
<a name="environments-create-wizard-mainpage"></a>

**Create environment** (建立環境) 精靈提供一組建立新環境的步驟。

![\[Elastic Beanstalk 主控台的建立環境精靈\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/create-new-env-wizard-step01.png)




**環境層**  
關於 **environment tier** (環境階層)，選擇 **Web server environment** (Web 伺服器環境) 或 **Worker environmen**t (工作者環境) [環境階層](concepts.md#concepts-tier)。建立後您即無法變更環境層。

![\[環境精靈的環境階層區段。\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/step-01-environemnt-tier.png)


**注意**  
[Windows Server 平台上的 .NET](create_deploy_NET.md) 不支援工作者環境層。

**應用程式資訊**  
如果您是從 **Application overview** (應用程式概觀) 頁面選取 **Create new environment** (建立新環境) 來啟動精靈，則會預先填入 **Application name** (應用程式名稱)。否則，請輸入應用程式名稱。或者可以選擇新增 [application tags](applications-tagging.md) (應用程式索引標籤)。

![\[環境精靈的應用程式資訊區段。\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/step-01-application-information.png)


**環境資訊**  
設定環境的名稱和網域，並建立您環境的描述。請注意，這些環境設定無法變更建立後的環境。

![\[環境精靈的環境資訊區段。\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/step-01-environment-information.png)

+ **Name (名稱)** - 輸入環境的名稱。該表單會提供產生的名稱。
+ **Domain (網域)** - (Web 伺服器環境) 輸入您環境的唯一網域名稱。預設名稱是環境的名稱。您可以輸入不同的網域名稱。Elastic Beanstalk 會使用此名稱來建立環境的唯一 CNAME。若要檢查所需網域名稱是否可用，請選擇 **Check Availability (檢查可用性)**。
+ **Description (描述)** - 輸入此環境的描述。

### 選擇新環境的平台
<a name="environments-create-wizard-platform"></a>

您可自兩種平台類型建立新的環境：
+ 受管平台
+ 自訂平台

**受管平台**

在大多數情況下，您會針對新環境使用 Elastic Beanstalk 受管平台。當新的環境精靈啟動後，預設會選取 **Managed platform** (受管平台) 選項。

![\[在建立新環境精靈中的受管平台選項\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-defaultenvironment.png)


選取平台、該平台內的平台分支，以及分支中的特定平台版本。當您選取平台分支時，依預設會選取分支內的建議版本。此外，您可以選擇以前使用過的任何平台版本。

**注意**  
對於生產環境，建議您在支援的平台分支中選擇平台版本。如需有關平台分支狀態的詳細資訊，請參閱 [Elastic Beanstalk 平台詞彙表](platforms-glossary.md) 中的*平台分支定義*。

**自訂平台**

若立即可用的平台不符您的需求，您可以透過自訂平台建立新的環境。若要指定自訂平台，請選擇 **Custom platform (自訂平台)** 選項，然後選取其中一個可用的自訂平台。若沒有可用自訂平台，此選項會顯示為灰色。

### 提供應用程式的程式碼
<a name="environments-create-wizard-app-code"></a>

您現已選擇欲使用的平台，下一步是提供應用程式的程式碼。

![\[在 Elastic Beanstalk 主控台的建立新環境精靈中提供應用程式的程式碼\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-environment-appcode.png)


您有多種選擇：
+ 您可以使用 Elastic Beanstalk 為每個平台提供的範例應用程式。
+ 您可以使用已部署到 Elastic Beanstalk 的程式碼。選擇 **Existing version (現有的版本)** 和您在 **Application code (應用程式的程式)** 區段中的應用程式。
+ 您可以上傳新的程式碼。選擇 **Upload your code (上傳您的程式碼)**，然後選擇 **Upload (上傳)**。您可以從本機檔案上傳新的應用程式的程式碼，或您可以指定內含應用程式的程式碼的 Amazon S3 儲存貯體的 URL。
**注意**  
您可依據選取的平台版本，以 ZIP [來源套件](applications-sourcebundle.md)、[WAR 檔案](java-tomcat-platform.md)或[純文字 Docker 組態](docker.md)等格式上傳應用程式。檔案大小上限為 500 MB。

  選擇上傳新程式碼時，您也可以提供要與您的新程式碼關聯的標籤。若需有關標記應用程式版本的詳細資訊，請參閱 [標記應用程式版本](applications-versions-tagging.md)。  
![\[在 Elastic Beanstalk 主控台的建立新的環境精靈中更新新的應用程式碼\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-environment-appcode-upload.png)

若要使用預設組態選項快速建立環境，您現在可以選擇 **Create environment (建立環境)**。選擇 **Configure more options (設定多個選項)**，做額外的組態變更，如以下各節所示。

## 精靈組態頁面
<a name="environments-create-wizard-configure"></a>

當您選擇 **Configure more options (設定更多選項)** 時，精靈會顯示 **Configure (設定)** 頁面。您可以在此頁面選取組態預設集、變更您要環境使用的平台版本，或是針對新環境進行特定的組態選擇。

### 選擇預設集組態
<a name="environments-create-wizard-presets"></a>

在頁面的 **Presets (預設集)** 區段中，Elastic Beanstalk 會針對不同使用案例提供數個組態預設集。每種預設均包含數個[組態選項](command-options.md)的建議值。

![\[建立新環境精靈的組態頁面中的組態預設集區段\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-presets.png)


**高可用性**預設包含一個負載平衡器，建議用於生產環境。如果您想要可執行多個執行個體以達到高可用性並進行擴展以回應載入的環境，請使用這些預設。**Single instance (單一執行個體)** 預設主要建議用於開發。這些預設的其中兩個會啟用 Spot 執行個體請求。如需 Elastic Beanstalk 容量組態的詳細資訊，請參閱[Auto Scaling 群組](using-features.managing.as.md)。

最後一個預設為 **Custom configuration (自訂組態)**，會移除角色設定外的所有建議值，並使用 API 預設值。若您部署的原始碼套件具備設定組態選項的[組態檔案](ebextensions.md)，請選擇此選項。**Custom configuration (自訂組態)** 也會自動選定若您修改 **Low cost (低成本)** 或 **High availability (高可用性)** 組態預設。

### 自訂您的組態
<a name="environments-create-wizard-customize"></a>

除了 (或改為) 選擇組態預設，您可以微調環境中的[組態選項](command-options.md)。**Configure (組態)** 精靈會顯示數個組態類別。每個組態類別顯示一群組態設定值的摘要。選擇 **Edit (編輯)** 以編輯此組設定。

**Topics**
+ [

#### 軟體設定
](#environments-create-wizard-software)
+ [

#### 執行個體
](#environments-create-wizard-instances)
+ [

#### Capacity
](#environments-create-wizard-capacity)
+ [

#### 負載平衡器
](#environments-create-wizard-loadbalancer)
+ [

#### 滾動更新和部署
](#environments-create-wizard-deployment-settings)
+ [

#### 安全
](#environments-create-wizard-security)
+ [

#### 監控
](#environments-create-wizard-monitoring)
+ [

#### 受管更新
](#environments-create-wizard-managed)
+ [

#### 通知
](#environments-create-wizard-notifications)
+ [

#### 網路
](#environments-create-wizard-network)
+ [

#### 資料庫
](#environments-create-wizard-database)
+ [

#### Tags (標籤)
](#environments-create-wizard-tags)
+ [

#### 工作者環境
](#environments-create-wizard-worker)

#### 軟體設定
<a name="environments-create-wizard-software"></a>

使用 **Modify software (修改軟體)** 組態頁面可在執行應用程式的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上設定軟體。您可以設定環境屬性、 AWS X-Ray 偵錯、執行個體日誌儲存和串流，以及平台特定的設定。如需詳細資訊，請參閱[環境變數和其他軟體設定](environments-cfg-softwaresettings.md)。

![\[修改軟體組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-software.png)


#### 執行個體
<a name="environments-create-wizard-instances"></a>

您可以在 **Modify instances (修改執行個體)** 頁面設定執行您應用程式的 Amazon EC2 執行個體。如需詳細資訊，請參閱[您 Elastic Beanstalk 環境的 Amazon EC2 執行個體](using-features.managing.ec2.md)。

![\[修改執行個體組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-instances.png)


#### Capacity
<a name="environments-create-wizard-capacity"></a>

您可以使用 **Modify capacity (修改容量)** 組態頁面來設定環境的運算容量和 **Auto Scaling group (Auto Scaling 群組)** 設定，以最佳化您使用的執行個體數量和類型。您也可以根據觸發程序或排程變更環境容量。

負載平衡環境可執行多個執行個體，實現高可用性，並避免組態更新及部署期間停機。在負載平衡環境中，網域名稱會對應至負載平衡器。在單一執行個體環境中，網域名稱則會對應至執行個體上的彈性 IP 地址。

**警告**  
單一執行個體環境並非可立即生產。如果執行個體在部署期間變得不穩定，或者 Elastic Beanstalk 在組態更新期間終止並重新啟動執行個體，您的應用程式可能會有一段時間無法使用。使用單一執行個體環境來開發、測試或封測。使用負載平衡環境來生產。

如需環境容量設定的詳細資訊，請參閱[Auto Scaling 您的 Elastic Beanstalk 環境執行個體](using-features.managing.as.md)和[您 Elastic Beanstalk 環境的 Amazon EC2 執行個體](using-features.managing.ec2.md)。

![\[修改容量組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-capacity.png)


#### 負載平衡器
<a name="environments-create-wizard-loadbalancer"></a>

使用 **Modify load balancer (修改負載平衡器)** 組態頁面選取負載平衡器類型，並其配置設定。在負載平衡的環境中，您環境的負載平衡器是前往您應用程式的流量的進入點。Elastic Beanstalk 支援多種類型的負載平衡器。依預設，Elastic Beanstalk 主控台會建立 Application Load Balancer，並將其設定為在連接埠 80 上提供 HTTP 流量服務。

**注意**  
您只能在環境建立期間選取環境的負載平衡器類型。

如需負載平衡器類型和設定的詳細資訊，請參閱 [您的 Elastic Beanstalk 環境的負載平衡器](using-features.managing.elb.md) 和 [為您的 Elastic Beanstalk 環境設定 HTTPS](configuring-https.md)。

![\[環境建立期間的負載平衡器組態設定\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-elb.png)


**注意**  
**建立環境**主控台精靈上的 Classic Load Balancer (CLB) 選項已停用。如果您已使用 Classic Load Balancer 設定現有環境，則可以使用 Elastic Beanstalk 主控台或 [EB CLI](using-features.managing.clone.md#using-features.managing.clone.CLI) 來 [複製現有環境](using-features.managing.clone.md)以建立新的環境。您也可以選擇使用 EB CLI 或 [AWS CLI](environments-create-awscli.md)來建立使用 Classic Load Balancer 設定的新環境。這些命令列工具會建立具有 CLB 的新環境，即使您的帳戶中沒有環境存在亦然。

#### 滾動更新和部署
<a name="environments-create-wizard-deployment-settings"></a>

您可以使用 **Modify rolling updates and deployments (修改滾動更新和部署)** 組態頁面來設定 Elastic Beanstalk 如何處理環境的應用程式部署和組態更新。

當您上傳更新的應用程式原始碼套件，並將其部署到您的環境時，就會發生應用程式部署。如需有關設定部署的詳細資訊，請參閱 [部署政策和設定](using-features.rolling-version-deploy.md)。

![\[在修改滾動更新與部署組態頁面的應用程式部署區段\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/environment-cfg-rollingdeployments.png)


修改[啟動組態](command-options-general.md#command-options-general-autoscalinglaunchconfiguration)或 [VPC 設定](command-options-general.md#command-options-general-ec2vpc)的組態變更，需要終止環境中所有執行個體，並加以替換。如需設定更新類型和其他選項的詳細資訊，請參閱 [組態變更](environments-updating.md)。

![\[在修改滾動更新與部署組態頁面的組態更新區段\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/aeb-config-rolling-updates-health.png)


#### 安全
<a name="environments-create-wizard-security"></a>

使用 **Configure service access** (設定服務存取) 頁面來設定服務和執行個體安全性設定。

如需 Elastic Beanstalk 安全性概念的說明，請參閱[Elastic Beanstalk Service 角色、執行個體描述檔和使用者政策](concepts-roles.md)。

當您首次於 Elastic Beanstalk 主控台建立環境時，您必須建立具有一組預設許可的 EC2 執行個體設定檔。如果 **EC2 執行個體設定檔**下拉式清單未顯示任何可供選擇的值，請展開隨後的程序。它提供建立角色的步驟，接下來，您就可以為 **EC2 執行個體設定檔**選取角色。

##### 為 EC2 執行個體設定檔建立 IAM 角色
<a name="environments-create-wizard-security.create-instance-profile"></a>

**建立或選取 EC2 執行個體描述檔**

1. 如果您先前已建立 **EC2 執行個體描述檔**，並想要選擇現有的 EC2 執行個體描述檔，請從 **EC2 執行個體描述**檔下拉式清單中選取值，然後略過這些步驟的其餘部分來建立 EC2 執行個體描述檔。

1. 如果您沒有看到 **EC2 執行個體描述檔**列出的任何值，或想要建立新的值，請繼續執行後續步驟。

1. 選擇建**立角色**。

1. 針對**信任的實體類型**，請選擇 **AWS 服務**。

1. 針對**使用案例**，選擇** Elastic Beanstalk – 運算**。

1. 選擇**下一步**。

1. 確認**許可政策**包含下列項目，然後選擇**下一步**：
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

1. 選擇建**立角色**。

1. 返回**設定服務存取**索引標籤，重新整理清單，然後選取新建立的 EC2 執行個體描述檔。

![\[設定裝置存取\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/configure-service-access.png)


#### 監控
<a name="environments-create-wizard-monitoring"></a>

您可以使用 **Modify monitoring (修改監控)** 組態頁面來設定運作狀態報告、監控規則和運作狀態事件串流。如需詳細資訊，請參閱 [啟用 Elastic Beanstalk 增強型運作狀態報告](health-enhanced-enable.md)、[設定環境的增強型健康狀況規則](health-enhanced-rules.md) 和 [將 Elastic Beanstalk 環境運作狀態資訊串流至 Amazon CloudWatch Logs](AWSHowTo.cloudwatchlogs.envhealth.md)。

![\[修改監控組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-monitoring.png)


#### 受管更新
<a name="environments-create-wizard-managed"></a>

使用 **Modify managed updates (修改受管的更新)** 組態頁面來設定受管的平台更新。您可以決定是否要啟用它們、設定排程以及設定其他屬性。如需詳細資訊，請參閱[受管平台更新](environment-platform-update-managed.md)。

![\[修改受管更新組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-managed-updates.png)


#### 通知
<a name="environments-create-wizard-notifications"></a>

使用 **Modify notifications (修改通知)** 組態頁面指定電子郵件地址，以接收環境中重要事件的[電子郵件通知](using-features.managing.sns.md)。

![\[修改通知組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-notifications.png)


#### 網路
<a name="environments-create-wizard-network"></a>

如果您已建立[自訂 VPC](using-features.managing.vpc.md)，則 **Modify network (修改網路)** 組態頁面會設定您的環境以使用它。若您未選擇 VPC，Elastic Beanstalk 會使用預設的 VPC 和子網路。

![\[修改網路組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-network.png)


#### 資料庫
<a name="environments-create-wizard-database"></a>

使用 **Modify database (修改資料庫)** 組態頁面，可將 Amazon Relational Database Service (Amazon RDS) 資料庫新增至您的環境，以進行開發和測試。Elastic Beanstalk 會設定資料庫主機名稱、使用者名稱、密碼、資料表名稱和連接埠的環境屬性，藉此將連線資訊提供給您的執行個體。

如需詳細資訊，請參閱[將資料庫新增至您的 Elastic Beanstalk 環境](using-features.managing.db.md)。

![\[修改資料庫安全組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-database.png)


#### Tags (標籤)
<a name="environments-create-wizard-tags"></a>

使用 **Modify tags (修改標籤)** 組態頁面，以新增[標籤](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)至您環境中的資源。如需環境標記的詳細資訊，請參閱[在您的 Elastic Beanstalk 環境中標記資源](using-features.tagging.md)。

![\[修改標籤組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/environment-create-tags.png)


#### 工作者環境
<a name="environments-create-wizard-worker"></a>

如果您要建立*工作者層環境*，請使用 **Modify worker (修改工作者)** 組態頁面來設定工作者環境。您環境中執行個體上的工作者協助程式會從 Amazon Simple Queue Service (Amazon SQS) 佇列中提取項目，並將它們作為 POST 訊息轉傳到您的工作者應用程式。您可以選擇工作者協助程式讀取的 Amazon SQS 佇列 (自動產生或現有)。您也可以設定工作者協助程式傳送至應用程式的訊息。

如需更多詳細資訊，請參閱 [Elastic Beanstalk 工作者環境](using-features-managing-env-tiers.md)。

![\[修改工作者組態頁面\]](http://docs.aws.amazon.com/zh_tw/elasticbeanstalk/latest/dg/images/wizard-worker.png)


# 複製 Elastic Beanstalk 環境
<a name="using-features.managing.clone"></a>

您可以透過複製現有環境，使用現有 Elastic Beanstalk 環境做為新環境的基礎。例如，您可能會想要建立複製，以便使用原始環境平台所用的較新版本平台分支。Elastic Beanstalk 會使用原始環境所使用的環境設定來設定複製。透過複製現有環境，而不是建立新環境，您不需要手動設定選項設定、環境變數，以及使用 Elastic Beanstalk 服務進行的其他設定。Elastic Beanstalk 也會建立與原始環境關聯之任何 AWS 資源的副本。

請務必注意下列情況：
+ 在複製過程中，Elastic Beanstalk 不會將資料從 Amazon RDS 複製到複製。
+ Elastic Beanstalk 不會將未受管的資源變更納入複製環境。您使用 Elastic Beanstalk 主控台、命令列工具或 API 以外的工具變更 AWS 資源，均視為未受管的變更。
+ 輸入的安全群組會被視為未受管的變更。複製的 Elastic Beanstalk 環境不會轉移用於傳入的安全群組，讓環境開放給所有網際網路流量。您需要為複製的環境重新建立輸入安全群組。

您只能將環境複製到同一個平台分支的不同平台版本。不同的平台分支不保證相容。若要使用不同的平台分支，您必須手動建立新環境、部署應用程式程式碼，以及在程式碼和選項中進行任何必要的變更，以確保應用程式能夠在新平台分支上正確運作。

## AWS 管理主控台
<a name="using-features.managing.clone.CON"></a>

**重要**  
複製的 Elastic Beanstalk 環境不會轉移用於傳入的安全群組，讓環境開放給所有網際網路流量。您需要為複製的環境重新建立輸入安全群組。  
您可以檢查環境組態的偏離狀態，查看可能未複製的資源。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[在整個 CloudFormation 堆疊上偵測偏離](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/detect-drift-stack.html)。

**欲複製環境**

1. 開啟 [Elastic Beanstalk 主控台](https://console.aws.amazon.com/elasticbeanstalk)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

1. 在「環境概觀」頁面上，選擇**動作**。

1. 選擇**複製環境**。

1. 在 **Clone environment (複製環境)** 頁面，檢閱 **Original Environment (原始環境)** 區段的資訊，確認您已選擇欲建立複製的環境。

1. 在 **New Environment** (新環境) 區段，您可自由選擇是否變更 Elastic Beanstalk 根據原始環境自動設定的 **Environment name** (環境名稱)、**Environment URL** (環境 URL)、**Description** (描述)、**Platform version** (平台版本) 和 **Service role** (服務角色) 等值。
**注意**  
如果原始環境中使用的平台版本不是建議用於平台分支的版本，系統會警告您建議使用不同的平台版本。選擇 **Platform version (平台版本)**，您就可以在清單上看到建議的平台版本，例如 **3.3.2 (Recommended) (3.3.2 (建議使用))**。

1. 當您就緒後，選擇 **Clone (複製)**。

## Elastic Beanstalk 命令列界面 (EB CLI)
<a name="using-features.managing.clone.CLI"></a>

**重要**  
複製的 Elastic Beanstalk 環境不會轉移用於傳入的安全群組，讓環境開放給所有網際網路流量。您需要為複製的環境重新建立輸入安全群組。  
您可以檢查環境組態的偏離狀態，查看可能未複製的資源。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[在整個 CloudFormation 堆疊上偵測偏離](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/detect-drift-stack.html)。

使用 **eb clone** 命令來複製執行環境，如下所示。

```
~/workspace/my-app$ eb clone my-env1
Enter name for Environment Clone
(default is my-env1-clone): my-env2
Enter DNS CNAME prefix
(default is my-env1-clone): my-env2
```

您可於複製命令指定來源環境的名稱，或不指定以複製目前專案資料夾的預設環境。EB CLI 會提示您輸入新環境的名稱和 DNS 前綴字。

根據預設，**eb clone** 建立的新環境會使用來源環境平台的最新可用版本。即使有更新可用版本仍欲強制 EB CLI 使用相同版本，請使用 `--exact` 選項。

```
~/workspace/my-app$ eb clone --exact
```

如需此命令的詳細資訊，請參閱 [eb clone](eb3-clone.md)。

# 終止 Elastic Beanstalk 環境
<a name="using-features.terminating"></a>

您可以使用 Elastic Beanstalk 主控台終止執行 AWS Elastic Beanstalk 環境。透過這樣做，您可以避免未使用的 AWS 資源產生費用。

**注意**  
您稍後可隨時運用相同版本啟動新的環境。

如果您希望保留環境中的資料，請在終止環境之前，將資料庫刪除政策設定為 `Retain`。這可使資料庫在 Elastic Beanstalk 之外運作。在這項操作之後，任何 Elastic Beanstalk 環境都必須以外部資料庫的形式連接它。如果您想要在不保持資料庫運作的情況下備份資料，請將刪除政策設定為在終止環境之前建立資料庫的快照。如需詳細資訊，請參閱本指南的「設定環境」**一章中的 [資料庫生命週期](using-features.managing.db.md#environments-cfg-rds-lifecycle)。

Elastic Beanstalk 可能無法終止您的環境。一個常見的原因是，另一個環境的安全群組對您想要終止的環境安全群組具有相依性。如需如何避免此問題的說明，請參閱本指南的「EC2 執行個體」**頁面的 [EC2 安全群組](using-features.managing.ec2.console.md#using-features.managing.ec2.securitygroups)。

**重要**  
如果您終止環境，您也必須刪除您建立的任何 CNAME 映射，因為其他客戶可能重複使用可用的主機名稱。請務必刪除指向終止環境的 DNS 記錄，以防止*懸置 DNS 項目*。懸置的 DNS 項目可能會降低您網域的網際網路流量的安全性，使其暴露在易於攻擊的弱點中。另外，它還可能存在其他風險。  
如需詳細資訊，請參閱 *Amazon Route 53 開發人員指南*中的[在 Route 53 上防止懸置委派記錄](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/protection-from-dangling-dns.html)。您也可以在*AWS 安全部落格*中針對[適用於 Amazon CloudFront 請求的強化網域保護](https://aws.amazon.com/blogs/security/enhanced-domain-protections-for-amazon-cloudfront-requests/)來進一步了解懸置 DNS 項目的資訊。

## Elastic Beanstalk 主控台
<a name="using-features.terminating.CON"></a>

**終止環境**

1. 開啟 [Elastic Beanstalk 主控台](https://console.aws.amazon.com/elasticbeanstalk)，然後在**區域**清單中選取您的 AWS 區域。

1. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

1. 選擇 **Actions** (動作)，然後選擇 **Terminate Environment** (終止環境)。

1. 使用畫面顯示對話方塊來確認環境終止。
**注意**  
當您終止環境後，將釋出與該終止環境相關聯的 CNAME 供任何人使用。

   Elastic Beanstalk 需要幾分鐘的時間來終止環境中執行 AWS 的資源。

## AWS CLI
<a name="using-features.terminating.CLI"></a>

**終止環境**
+ 執行下列命令。

  ```
  $ aws elasticbeanstalk terminate-environment --environment-name my-env
  ```

## API
<a name="using-features.terminating.API"></a>

**終止環境**
+ 使用下列參數呼叫 `TerminateEnvironment`：

  `EnvironmentName` = `SampleAppEnv`

  ```
  1. https://elasticbeanstalk.us-west-2.amazon.com/?EnvironmentName=SampleAppEnv
  2. &Operation=TerminateEnvironment
  3. &AuthParams
  ```

# 使用 CLI 建立 Elastic Beanstalk AWS 環境
<a name="environments-create-awscli"></a>

如需 Elastic Beanstalk AWS CLI 命令的詳細資訊，請參閱 [AWS CLI 命令參考](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk)。

1. 檢查環境的 CNAME 是否可用。

   ```
   $ aws elasticbeanstalk check-dns-availability --cname-prefix my-cname
   {
       "Available": true,
       "FullyQualifiedCNAME": "my-cname.elasticbeanstalk.com"
   }
   ```

1. 確定您的應用程式版本存在。

   ```
   $ aws elasticbeanstalk describe-application-versions --application-name my-app --version-label v1
   ```

   如果您還沒有適用於您來源的應用程式版本，請建立一個。例如，以下命令會從 Amazon Simple Storage Service (Amazon S3) 中的來源套件建立應用程式版本。

   ```
   $ aws elasticbeanstalk create-application-version --application-name my-app --version-label v1 --source-bundle S3Bucket=amzn-s3-demo-bucket,S3Key=my-source-bundle.zip
   ```

1. 為應用程式建立組態範本。

   ```
   $ aws elasticbeanstalk create-configuration-template --application-name my-app --template-name v1 --solution-stack-name "64bit Amazon Linux 2015.03 v2.0.0 running Ruby 2.2 (Passenger Standalone)"
   ```

1. 建立環境。

   ```
   $ aws elasticbeanstalk create-environment --cname-prefix my-cname --application-name my-app --template-name v1 --version-label v1 --environment-name v1clone --option-settings file://options.txt
   ```

   在 **options.txt** 檔案中定義了選項設定：

   ```
   [
       {
           "Namespace": "aws:autoscaling:launchconfiguration",
           "OptionName": "IamInstanceProfile",
           "Value": "aws-elasticbeanstalk-ec2-role"
       }
   ]
   ```

   上述的選項設定定義了 IAM 執行個體描述檔。您可以指定 ARN 或設定檔名稱。

1. 判斷新的環境是否是已就緒可用。

   ```
   $ aws elasticbeanstalk describe-environments --environment-names my-env
   ```

   如果新環境啟動時並未就緒可用，則您應決定是否要嘗試操作，或是讓環境維持目前的狀態以進行調查。務必在完成後終止環境，並清除任何未使用的資源。
**注意**  
如果環境未在合理的時間啟動，您可以調整逾時的時間長度。

# 使用 API 建立 Elastic Beanstalk 環境
<a name="environments-create-api"></a>

1. 使用下列參數呼叫 `CheckDNSAvailability`：
   + `CNAMEPrefix` = `SampleApp`  
**Example**  

   ```
   1. https://elasticbeanstalk.us-east-2.amazonaws.com/?CNAMEPrefix=sampleapplication
   2. &Operation=CheckDNSAvailability
   3. &AuthParams
   ```

1. 使用下列參數來呼叫 `DescribeApplicationVersions`：
   + `ApplicationName` = `SampleApp`
   + `VersionLabel` = `Version2`  
**Example**  

   ```
   1. https://elasticbeanstalk.us-east-2.amazonaws.com/?ApplicationName=SampleApp
   2. &VersionLabel=Version2
   3. &Operation=DescribeApplicationVersions
   4. &AuthParams
   ```

1. 使用下列參數來呼叫 `CreateConfigurationTemplate`：
   + `ApplicationName` = `SampleApp`
   + `TemplateName` = `MyConfigTemplate`
   + `SolutionStackName` = `64bit%20Amazon%20Linux%202015.03%20v2.0.0%20running%20Ruby%202.2%20(Passenger%20Standalone)`  
**Example**  

   ```
   1. https://elasticbeanstalk.us-east-2.amazonaws.com/?ApplicationName=SampleApp
   2. &TemplateName=MyConfigTemplate
   3. &Operation=CreateConfigurationTemplate
   4. &SolutionStackName=64bit%20Amazon%20Linux%202015.03%20v2.0.0%20running%20Ruby%202.2%20(Passenger%20Standalone)
   5. &AuthParams
   ```

1. 使用下列其中一組參數來呼叫 `CreateEnvironment`。

   1. Web 伺服器環境層請使用下列參數：
      + `EnvironmentName` = `SampleAppEnv2`
      + `VersionLabel` = `Version2`
      + `Description` = `description`
      + `TemplateName` = `MyConfigTemplate`
      + `ApplicationName` = `SampleApp`
      + `CNAMEPrefix` = `sampleapplication`
      + `OptionSettings.member.1.Namespace` = `aws:autoscaling:launchconfiguration`
      + `OptionSettings.member.1.OptionName` = `IamInstanceProfile`
      + `OptionSettings.member.1.Value` = `aws-elasticbeanstalk-ec2-role`  
**Example**  

      ```
       1. https://elasticbeanstalk.us-east-2.amazonaws.com/?ApplicationName=SampleApp
       2. &VersionLabel=Version2
       3. &EnvironmentName=SampleAppEnv2
       4. &TemplateName=MyConfigTemplate
       5. &CNAMEPrefix=sampleapplication
       6. &Description=description
       7. &Operation=CreateEnvironment
       8. &OptionSettings.member.1.Namespace=aws%3Aautoscaling%3Alaunchconfiguration
       9. &OptionSettings.member.1.OptionName=IamInstanceProfile
      10. &OptionSettings.member.1.Value=aws-elasticbeanstalk-ec2-role
      11. &AuthParams
      ```

   1. 工作者環境層請使用下列參數：
      + `EnvironmentName` = `SampleAppEnv2`
      + `VersionLabel` = `Version2`
      + `Description` = `description`
      + `TemplateName` = `MyConfigTemplate`
      + `ApplicationName` = `SampleApp`
      + `Tier` = `Worker`
      + `OptionSettings.member.1.Namespace` = `aws:autoscaling:launchconfiguration`
      + `OptionSettings.member.1.OptionName` = `IamInstanceProfile`
      + `OptionSettings.member.1.Value` = `aws-elasticbeanstalk-ec2-role`
      + `OptionSettings.member.2.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.2.OptionName` = `WorkerQueueURL`
      + `OptionSettings.member.2.Value` = `sqsd.elasticbeanstalk.us-east-2.amazonaws.com`
      + `OptionSettings.member.3.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.3.OptionName` = `HttpPath`
      + `OptionSettings.member.3.Value` = `/`
      + `OptionSettings.member.4.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.4.OptionName` = `MimeType`
      + `OptionSettings.member.4.Value` = `application/json`
      + `OptionSettings.member.5.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.5.OptionName` = `HttpConnections`
      + `OptionSettings.member.5.Value` = `75`
      + `OptionSettings.member.6.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.6.OptionName` = `ConnectTimeout`
      + `OptionSettings.member.6.Value` = `10`
      + `OptionSettings.member.7.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.7.OptionName` = `InactivityTimeout`
      + `OptionSettings.member.7.Value` = `10`
      + `OptionSettings.member.8.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.8.OptionName` = `VisibilityTimeout`
      + `OptionSettings.member.8.Value` = `60`
      + `OptionSettings.member.9.Namespace` = `aws:elasticbeanstalk:sqsd`
      + `OptionSettings.member.9.OptionName` = `RetentionPeriod`
      + `OptionSettings.member.9.Value` = `345600`  
**Example**  

      ```
       1. https://elasticbeanstalk.us-east-2.amazonaws.com/?ApplicationName=SampleApp
       2. &VersionLabel=Version2
       3. &EnvironmentName=SampleAppEnv2
       4. &TemplateName=MyConfigTemplate
       5. &Description=description
       6. &Tier=Worker
       7. &Operation=CreateEnvironment
       8. &OptionSettings.member.1.Namespace=aws%3Aautoscaling%3Alaunchconfiguration
       9. &OptionSettings.member.1.OptionName=IamInstanceProfile
      10. &OptionSettings.member.1.Value=aws-elasticbeanstalk-ec2-role
      11. &OptionSettings.member.2.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      12. &OptionSettings.member.2.OptionName=WorkerQueueURL
      13. &OptionSettings.member.2.Value=sqsd.elasticbeanstalk.us-east-2.amazonaws.com
      14. &OptionSettings.member.3.Namespace=aws%3elasticbeanstalk%3sqsd
      15. &OptionSettings.member.3.OptionName=HttpPath
      16. &OptionSettings.member.3.Value=%2F
      17. &OptionSettings.member.4.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      18. &OptionSettings.member.4.OptionName=MimeType
      19. &OptionSettings.member.4.Value=application%2Fjson
      20. &OptionSettings.member.5.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      21. &OptionSettings.member.5.OptionName=HttpConnections
      22. &OptionSettings.member.5.Value=75
      23. &OptionSettings.member.6.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      24. &OptionSettings.member.6.OptionName=ConnectTimeout
      25. &OptionSettings.member.6.Value=10
      26. &OptionSettings.member.7.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      27. &OptionSettings.member.7.OptionName=InactivityTimeout
      28. &OptionSettings.member.7.Value=10
      29. &OptionSettings.member.8.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      30. &OptionSettings.member.8.OptionName=VisibilityTimeout
      31. &OptionSettings.member.8.Value=60
      32. &OptionSettings.member.9.Namespace=aws%3Aelasticbeanstalk%3Asqsd
      33. &OptionSettings.member.9.OptionName=RetentionPeriod
      34. &OptionSettings.member.9.Value=345600
      35. &AuthParams
      ```

# 建構立即啟動 URL
<a name="launch-now-url"></a>

您可建構自訂 URL，讓任何人都能夠在 AWS Elastic Beanstalk快速部署並執行預先決定的 Web 應用程式。此 URL 稱為立即啟動 URL。例如，為了示範專門於 Elastic Beanstalk 執行的 Web 應用程式，您可能就需要立即啟動 URL。透過立即啟動 URL，您可以使用參數，將所需資訊事先新增至建立應用程式精靈。在您將此資訊新增至精靈之後，任何人都只需要幾個步驟即可使用該 URL 連結，透過您的 Web 應用程式原始碼啟動 Elastic Beanstalk 環境。這表示使用者無須手動上傳或指定應用程式原始碼套件的位置。他們也不需要向精靈提供任何其他資訊。

立即啟動 URL 向 Elastic Beanstalk 提供建立應用程式所需要的最少資訊：應用程式名稱、解決方案堆疊、執行個體類型以及環境類型。對於在您的自訂立即啟動 URL 中未明確指定的組態詳細資訊，Elastic Beanstalk 會使用預設值。

立即啟動 URL 使用標準 URL 語法。如需詳細資訊，請參閱 [RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax](http://tools.ietf.org/html/rfc3986)。

## URL 參數
<a name="launch-now-url.params"></a>

URL 必須包含下列區分大小寫的參數：
+ **region** – 指定 AWS 區域。如需 Elastic Beanstalk 支援的區域清單，請參閱《*AWS 一般參考*》中的 [AWS Elastic Beanstalk 端點與配額](https://docs.aws.amazon.com/general/latest/gr/elasticbeanstalk.html)。
+ **applicationName** – 指定您應用程式的名稱。Elastic Beanstalk 會顯示應用程式在 Elastic Beanstalk 主控台內的名稱，以區別其他應用程式。根據預設，應用程式名稱亦是環境名稱及環境 URL 的組成基礎。
+ **platform (平台)** – 指定要針對環境使用的平台版本。使用以下其中一個方法，然後以 URL 編碼您的選擇：
  + 指定不具版本的平台 ARN。Elastic Beanstalk 會選取對應平台主要版本的最新平台版本。例如，若要選取最新的 Python 3.6 平台版本，請指定 `Python 3.6 running on 64bit Amazon Linux`。
  + 指定平台名稱。Elastic Beanstalk 會選取平台最新語言執行時間 (例如，`Python`) 的最新版本。

  如需所有可用平台及其版本的說明，請參閱[支援 Elastic Beanstalk 的平台](concepts.platforms.md)。

  您可以使用 [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/) (AWS CLI) 取得所有可用平台版本清單及其個別的 ARN。`list-platform-versions` 命令會列出所有可用平台版本的詳細資訊。使用 `--filters` 引數可縮小清單的範圍。例如，您可以將清單限制為僅顯示特定語言的平台版本。

  以下範例會查詢所有 Python 平台版本，並透過一系列的命令傳送輸出。其結果是一份平台版本 ARN 的清單 (不含 `/version` 結尾)，以可供人員閱讀的格式呈現，且不會進行 URL 編碼。

  ```
  $ aws elasticbeanstalk list-platform-versions --filters 'Type="PlatformName",Operator="contains",Values="Python"' | grep PlatformArn | awk -F '"' '{print $4}' | awk -F '/' '{print $2}'
  Preconfigured Docker - Python 3.4 running on 64bit Debian
  Preconfigured Docker - Python 3.4 running on 64bit Debian
  Python 2.6 running on 32bit Amazon Linux
  Python 2.6 running on 32bit Amazon Linux 2014.03
  ...
  Python 3.6 running on 64bit Amazon Linux
  ```

  以下範例將 Perl 命令加入到最後一個範例，以便對輸出進行 URL 編碼。

  ```
  $ aws elasticbeanstalk list-platform-versions --filters 'Type="PlatformName",Operator="contains",Values="Python"' | grep PlatformArn | awk -F '"' '{print $4}' | awk -F '/' '{print $2}' | perl -MURI::Escape -ne 'chomp;print uri_escape($_),"\n"'
  Preconfigured%20Docker%20-%20Python%203.4%20running%20on%2064bit%20Debian
  Preconfigured%20Docker%20-%20Python%203.4%20running%20on%2064bit%20Debian
  Python%202.6%20running%20on%2032bit%20Amazon%20Linux
  Python%202.6%20running%20on%2032bit%20Amazon%20Linux%202014.03
  ...
  Python%203.6%20running%20on%2064bit%20Amazon%20Linux
  ```

立即啟動 URL 可選擇性納入下列參數。若您的立即啟動 URL 不含選用參數，Elastic Beanstalk 會使用預設值來建立並執行您的應用程式。若您未納入 **sourceBundleUrl** 參數，Elastic Beanstalk 會將範例應用程式用於指定的 **platform (平台)**。
+ **sourceBundleUrl** – 指定 Web 應用程式原始碼套件的位置 (URL 格式)。例如，若您將原始碼套件上傳至 Amazon S3 儲存貯體，您可將 **sourceBundleUrl** 參數的值指定為 `https://amzn-s3-demo-bucket.s3.amazonaws.com/myobject`。
**注意**  
您可將 **sourceBundleUrl (sourceBundleUrl)** 參數的值指定為 HTTP URL，但使用者的 Web 瀏覽器會套用 HTML URL 編碼，藉此視需要轉換字元。
+ **environmentType** – 指定環境是否有負載平衡且可擴展，或為單一執行個體環境。如需更多詳細資訊，請參閱 [環境類型](using-features-managing-env-types.md)。參數值可指定為 `LoadBalancing` 或 `SingleInstance`。
+ **tierName** – 指定環境支援的 Web 應用程式，是否會處理 Web 請求或執行背景任務。如需更多詳細資訊，請參閱 [Elastic Beanstalk 工作者環境](using-features-managing-env-tiers.md)。您可指定為 `WebServer` 或 `Worker`。
+ **instanceType** – 指定具有最適合您應用程式之特性 (包含記憶體大小和 CPU 能力) 的伺服器。如需 Amazon EC2 執行個體系列和類型的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[執行個體類型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)。如需跨區域可用執行個體類型的詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[可用執行個體類型](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes)。
+ **withVpc** – 指定是否於 Amazon VPC 中建立環境。您可指定為 `true` 或 `false`。如需搭配 Amazon VPC 使用 Elastic Beanstalk 的詳細資訊，請參閱[搭配 Amazon VPC 使用 Elastic Beanstalk](vpc.md)。
+ **withRds** – 指定是否透過此環境建立 Amazon RDS 資料庫執行個體。如需更多詳細資訊，請參閱 [搭配 Amazon RDS 使用 Elastic Beanstalk](AWSHowTo.RDS.md)。您可指定為 `true` 或 `false`。
+ **rdsDBEngine** – 指定環境中 Amazon EC2 執行個體欲使用的資料庫引擎。您可指定為 `mysql`、`oracle-sel`、`sqlserver-ex`、`sqlserver-web` 或 `sqlserver-se`。預設值為 `mysql`。
+ **rdsDBAllocatedStorage** – 指定分配的資料庫儲存大小，以 GB 為單位。您可以指定下列值：
  + **MySQL** - `5` 至 `1024`。預設值為 `5`。
  + **Oracle** - `10` 至 `1024`。預設值為 `10`。
  + **Microsoft SQL Server Express 版本** - `30`。
  + **Microsoft SQL Server Web 版本** - `30`。
  + **Microsoft SQL Server Standard 版本** - `200`。
+ **rdsDBInstanceClass** – 指定資料庫執行個體類型。預設值為 `db.t2.micro` (非執行於 Amazon VPC 的環境則為 `db.m1.large`)。如需 Amazon RDS 支援的資料庫執行個體類別清單，請參閱《Amazon Relational Database Service 使用者指南》**中的[資料庫執行個體類別](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html)。
+ **rdsMultiAZDatabase** - 指定 Elastic Beanstalk 是否需要跨多個可用區域建立資料庫執行個體。您可指定為 `true` 或 `false`。如需使用 Amazon RDS 進行多個可用區域部署的詳細資訊，請參閱《Amazon Relational Database Service 使用者指南》**中的[區域與可用區域](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)。
+ **rdsDBDeletionPolicy** – 指定是否要在環境終止時刪除或快照資料庫執行個體。您可指定為 `Delete` 或 `Snapshot`。

## 範例
<a name="launch-now-url.example"></a>

下列是立即啟動 URL 的範例。建構自己的 URL 後，即可提供給您的使用者。例如，您可以在網頁或培訓教材中內嵌 URL。當使用者透過立即啟動 URL 建立應用程式時，Elastic Beanstalk 的建立應用程式精靈不需要其他輸入。

```
https://console.aws.amazon.com/elasticbeanstalk/home?region=us-west-2#/newApplication?applicationName=YourCompanySampleApp
      &platform=PHP%207.3%20running%20on%2064bit%20Amazon%20Linux&sourceBundleUrl=
        http://s3.amazonaws.com/amzn-s3-demo-bucket/myobject&environmentType=SingleInstance&tierName=WebServer
      &instanceType=m1.small&withVpc=true&withRds=true&rdsDBEngine=
        postgres&rdsDBAllocatedStorage=6&rdsDBInstanceClass=db.m1.small&rdsMultiAZDatabase=
          true&rdsDBDeletionPolicy=Snapshot
```

**欲使用立即啟動 URL**

1. 選擇立即啟動 URL。

1. 在 Elastic Beanstalk 主控台開啟後，請於 **Create a web app** (建立 Web 應用程式) 頁面選擇 **Review and launch (檢閱並發佈)**，即可檢視 Elastic Beanstalk 用於建立應用程式並啟動應用程式執行之環境所使用的設定。

1. 在 **Configure (設定)** 頁面中選擇 **Create app (建立應用程式)** 以建立應用程式。

# 建立和更新 Elastic Beanstalk 環境的群組
<a name="environment-mgmt-compose"></a>

使用 AWS Elastic Beanstalk [ComposeEnvironments](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ComposeEnvironments.html) API，您可以在單一應用程式中建立和更新 Elastic Beanstalk 環境群組。群組中的每個環境，皆可執行服務導向架構應用程式的不同元件。`Compose Environments` API 需要應用程式版本的清單和選用的群組名稱。Elastic Beanstalk 會針對每個應用程式版本建立環境，如果環境已存在，則會將應用程式版本部署到這些環境。

建立 Elastic Beanstalk 環境之間的連結，將一個環境指派為另一個環境的相依環境。當您使用 `Compose Environments` API 來建立一組環境時，Elastic Beanstalk 只會在其相依的環境開始正常運作之後，才會建立依賴的環境。如需關於環境連結的詳細資訊，請參閱[在 Elastic Beanstalk 環境之間建立連結](environment-cfg-links.md)。

`Compose Environments` API 會使用[環境資訊清單](environment-cfg-manifest.md)來儲存環境群組所共用的設定詳細資訊。每個元件應用程式的應用程式原始碼套件中，都必須具有 `env.yaml` 組態檔案，其中指定用來建立其環境的參數。

`Compose Environments` 需要在每個元件應用程式的環境資訊清單中，指定 `EnvironmentName` 和 `SolutionStack`。

您可以使用 `Compose Environments` API 搭配 Elastic Beanstalk 命令列界面 (EB CLI) AWS CLI、 或 SDK。如需 EB CLI 的說明，請參閱 [利用 EB CLI，以群組方式管理多個 Elastic Beanstalk 環境](ebcli-compose.md)。

## 使用 `Compose Environments` API
<a name="environment-mgmt-compose-example"></a>

例如，您可以建立名為 `Media Library` 的應用程式，來讓使用者上傳和管理儲存於 Amazon Simple Storage Service (Amazon S3) 中的影像和影片。這個應用程式具備前端環境 `front`，此環境會執行 Web 應用程式，來讓使用者上傳和下載個別檔案、檢視其程式庫和起始批次處理工作。

前端應用程式會將任務加入 Amazon SQS 佇列，而非直接處理任務。第二個環境中，`worker` 從佇列提取並處理任務。`worker` 使用具有高效能 GPU 的 G2 執行個體類型，同時 `front` 可執行於更具有成本效益的一般執行個體類型。

您可以將專案資料夾 (`Media Library`) 針對每個元件劃分為不同的目錄，而每個目錄包含環境定義檔案 (`env.yaml`) 和每個元件的原始程式碼：

```
~/workspace/media-library
|-- front
|   `-- env.yaml
`-- worker
    `-- env.yaml
```

下列的清單列出了每個元件應用程式的 `env.yaml`。

**`~/workspace/media-library/front/env.yaml`**

```
EnvironmentName: front+
EnvironmentLinks:
  "WORKERQUEUE" : "worker+"
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier: 
  Name: WebServer
  Type: Standard
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
  aws:autoscaling:launchconfiguration:
    InstanceType: m4.large
```

**`~/workspace/media-library/worker/env.yaml`**

```
EnvironmentName: worker+
AWSConfigurationTemplateVersion: 1.1.0.0
EnvironmentTier:
  Name: Worker
  Type: SQS/HTTP
SolutionStack: 64bit Amazon Linux 2015.09 v2.0.4 running Java 8
OptionSettings:
  aws:autoscaling:launchconfiguration:
    InstanceType: g2.2xlarge
```

在為前端 (`front-v1`) 與工作者 (`worker-v1`) 應用程式組件[建立應用程式版本](applications-versions.md)之後，您可以用該版本名稱來呼叫 `Compose Environments` API。在此範例中，我們使用 AWS CLI 來呼叫 API。

```
# Create application versions for each component: 
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label front-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="front-v1.zip"
  {
    "ApplicationVersion": {
        "ApplicationName": "media-library",
        "VersionLabel": "front-v1",
        "Description": "",
        "DateCreated": "2015-11-03T23:01:25.412Z",
        "DateUpdated": "2015-11-03T23:01:25.412Z",
        "SourceBundle": {
            "S3Bucket": "amzn-s3-demo-bucket",
            "S3Key": "front-v1.zip"
        }
    }
  }
~$ aws elasticbeanstalk create-application-version --application-name media-library --version-label worker-v1 --process --source-bundle S3Bucket="amzn-s3-demo-bucket",S3Key="worker-v1.zip"
  {
    "ApplicationVersion": {
        "ApplicationName": "media-library",
        "VersionLabel": "worker-v1",
        "Description": "",
        "DateCreated": "2015-11-03T23:01:48.151Z",
        "DateUpdated": "2015-11-03T23:01:48.151Z",
        "SourceBundle": {
            "S3Bucket": "amzn-s3-demo-bucket",
            "S3Key": "worker-v1.zip"
        }
    }
  }
# Create environments:
~$ aws elasticbeanstalk compose-environments --application-name media-library --group-name dev --version-labels front-v1 worker-v1
```

第三次呼叫會建立兩個環境：`front-dev` 與 `worker-dev`。API 會把 `EnvironmentName` 檔案中所指定的 `env.yaml` 和 `group name` 呼叫中所指定的 `Compose Environments` 選項串連在一起，中間以連字符號分隔，來做為環境的名稱。這兩個選項加上連字號的總長度，不得超過環境名稱長度的 23 個字元上限。

在 `front-dev` 環境中執行的應用程式，可以藉由讀取 `worker-dev` 變數，來取得連結至 `WORKERQUEUE` 環境的 Amazon SQS 佇列的名稱。如需關於環境連結的詳細資訊，請參閱[在 Elastic Beanstalk 環境之間建立連結](environment-cfg-links.md)。