

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

# 步驟 4：部署您的 Hello World 應用程式
<a name="tutorials-windows-deploy-application"></a>

現在您已部署上傳到 Amazon S3 的範例 Hello World 應用程式修訂版。您可以使用 AWS CLI 或 CodeDeploy 主控台來部署修訂並監控部署進度。成功部署應用程式修訂版之後，您要檢查結果。

**Topics**
+ [使用 CodeDeploy 部署您的應用程式修訂版](#tutorials-windows-deploy-application-create-deployment)
+ [監控您的部署並進行疑難排解](#tutorials-windows-deploy-application-monitor)
+ [驗證您的部署](#tutorials-windows-deploy-application-verify)

## 使用 CodeDeploy 部署您的應用程式修訂版
<a name="tutorials-windows-deploy-application-create-deployment"></a>

 您可以使用 CLI 或主控台部署您的應用程式。

**Topics**
+ [部署應用程式修訂 (CLI)](#tutorials-windows-deploy-application-create-deployment-cli)
+ [部署應用程式修訂 (主控台)](#tutorials-windows-deploy-application-create-deployment-console)

### 部署應用程式修訂 (CLI)
<a name="tutorials-windows-deploy-application-create-deployment-cli"></a>

1. 首先，部署需要部署群組。不過，在您建立部署群組之前，需要服務角色 ARN。服務角色是 IAM 角色，提供服務代表您採取行動的許可。在此情況下，服務角色會授予 CodeDeploy 存取 Amazon EC2 執行個體的許可，以展開 （讀取） 其 Amazon EC2 執行個體標籤。

   您應該已經遵循[建立服務角色 (CLI)](getting-started-create-service-role.md#getting-started-create-service-role-cli) 中的說明，來建立服務角色。若要取得服務角色的 ARN，請參閱[取得服務角色 ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)。

1. 現在您已擁有 ARN，請呼叫 **create-deployment-group**命令來建立名為 的部署群組**HelloWorld\$1DepGroup**，此群組與名為 的應用程式相關聯**HelloWorld\$1App**，並使用名為 的 Amazon EC2 執行個體標籤**CodeDeployDemo**和名為 的部署組態**CodeDeployDefault.OneAtATime**，以及服務角色 ARN：

   ```
   aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefault.OneAtATime --ec2-tag-filters Key=Name,Value=CodeDeployDemo,Type=KEY_AND_VALUE --service-role-arn serviceRoleARN
   ```
**注意**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 命令支援建立觸發，導致將部署和執行個體中指定事件的相關 Amazon SNS 通知傳送給主題訂閱者。命令也支援自動轉返部署和設定警示的選項，以在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。

1. 建立部署之前，部署群組中的執行個體必須安裝 CodeDeploy 代理程式。您可以使用 AWS Systems Manager 與下列命令，從命令列安裝代理程式：

   ```
   aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tag:Name,Values=CodeDeployDemo --parameters action=Install,name=AWSCodeDeployAgent --schedule-expression "cron(0 2 ? * SUN *)" 
   ```

   此命令會在 Systems Manager State Manager 中建立關聯，以安裝 CodeDeploy 代理程式，然後嘗試在每週日上午 2：00 進行更新。如需 CodeDeploy 代理程式的詳細資訊，請參閱[使用 CodeDeploy 代理程式](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent.html)。如需 Systems Manager 的詳細資訊，請參閱[什麼是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 。

1. 現在，請在名為 **amzn-s3-demo-bucket** 的儲存貯體中使用名為 **HelloWorld\$1App.zip** 的應用程式修訂，呼叫 **create-deployment** 命令來建立與名為 **HelloWorld\$1App** 之應用程式、名為 **CodeDeployDefault.OneAtATime** 之部署組態和名為 **HelloWorld\$1DepGroup** 之部署群組建立關聯的部署：

   ```
   aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=amzn-s3-demo-bucket,bundleType=zip,key=HelloWorld_App.zip
   ```

### 部署應用程式修訂 (主控台)
<a name="tutorials-windows-deploy-application-create-deployment-console"></a>

1. 在使用 CodeDeploy 主控台部署應用程式修訂版之前，您需要服務角色 ARN。服務角色是 IAM 角色，提供服務代表您採取行動的許可。在此情況下，服務角色會授予 CodeDeploy 存取 Amazon EC2 執行個體的許可，以展開 （讀取） 其 Amazon EC2 執行個體標籤。

   您應該已經遵循[建立服務角色 （主控台）](getting-started-create-service-role.md#getting-started-create-service-role-console) 中的說明，來建立服務角色。若要取得服務角色的 ARN，請參閱[取得服務角色 ARN （主控台）](getting-started-create-service-role.md#getting-started-get-service-role-console)。

1. 現在您已擁有 ARN，您可以使用 CodeDeploy 主控台來部署應用程式修訂版。

   登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) 開啟 CodeDeploy 主控台。
**注意**  
使用您在 中設定的相同使用者登入[CodeDeploy 入門](getting-started-codedeploy.md)。

1. 在導覽窗格中，展開**部署**，然後選擇**應用程式**。

1. 選擇 **HelloWorld\$1App**。

1. 在 **Deployment groups (部署群組)** 標籤中，選擇 **Create deployment group (建立部署群組)**。

1. 在 **Deployment group name (部署群組名稱)** 中，輸入 **HelloWorld\$1DepGroup**。

1. 在 **Service Role (服務角色)** 中，選擇服務角色的名稱。

1. 在 **Deployment type (部署類型)** 中，選擇 **In-place (就地)**。

1. 在**環境組態**中，選取 **Amazon EC2 執行個體**。

1. 在**具有 的客服人員組態 AWS Systems Manager**中，保留預設值。

1. 在 **Key (金鑰)** 中，輸入 **Name**。

1. 在 **Value (值)** 中輸入 **CodeDeployDemo**。

1. 在**部署組態**中，選擇 **CodeDeployDefault.OneAtATime**。

1. 在 **Load Balancer (負載平衡器)** 中，清除 **Enable load balancing (啟用負載平衡)**。

1. 選擇 **Create deployment group (建立部署群組)**。

1. 選擇 **Create deployment (建立部署)**。

1. 在 **Deployment group (部署群組)** 中，選擇 **HelloWorld\$1DepGroup**

1. 在**修訂類型**中，選擇**我的應用程式存放在 Amazon S3** 中，然後在**修訂位置**中輸入您先前上傳至 Amazon S3 的範例 Hello World 應用程式修訂的位置。取得位置：

   1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

   1. 在儲存貯體清單中，選擇 **amzn-s3-demo-bucket** （或您上傳應用程式修訂版的儲存貯體名稱）。

   1. 在物件清單中，選擇 **HelloWorld\$1App.zip**。

   1. 在 **Overview (概觀) **標籤上，選擇 **Copy path (複製路徑)**。

   1. 返回 CodeDeploy 主控台，並在**修訂位置**中貼上**連結**欄位值。

1. 針對 **Revision file type (修訂檔案類型)**，選擇 **.zip**。

1. (選用) 在 **Deployment description (部署描述)** 中輸入註解。

1. 選擇 **Create deployment (建立部署)**。新建立部署的相關資訊會顯示在 **Deployments (部署)** 頁面上。

## 監控您的部署並進行疑難排解
<a name="tutorials-windows-deploy-application-monitor"></a>

使用 AWS CLI 或 主控台來監控和疑難排解您的部署。

**Topics**
+ [監控部署並進行疑難排解 (CLI)](#tutorials-windows-deploy-application-monitor-cli)
+ [監控和故障診斷部署 (主控台)](#tutorials-windows-deploy-application-monitor-console)

### 監控部署並進行疑難排解 (CLI)
<a name="tutorials-windows-deploy-application-monitor-cli"></a>

1. 針對名為 **HelloWorld\$1App** 的應用程式和名為 **HelloWorld\$1DepGroup** 的部署群組呼叫 **list-deployments** 命令，來取得部署 ID：

   ```
   aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
   ```

1. 使用部署 ID，呼叫 **get-deployment** 命令：

   ```
   aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
   ```

1. 此命令傳回部署的整體狀態。如果成功，值為 `Succeeded`。

   如果整體狀態為 `Failed`，您可以呼叫 [list-deployment-instances](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-instances.html) 和 [get-deployment-instance](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-instance.html) 等命令進行故障診斷。如需其他故障診斷選項，請參閱[分析日誌檔案以調查執行個體的部署失敗](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)。

### 監控和故障診斷部署 (主控台)
<a name="tutorials-windows-deploy-application-monitor-console"></a>

在 CodeDeploy 主控台的**部署**頁面上，您可以在狀態欄中監控部署**的狀態**。

若要取得部署的詳細資訊，特別是在 **Status (狀態)** 欄位中，有任何數值不是 **Succeeded (成功)** 的情況下，則可執行以下動作：

1. 在 **Deployments (部署)** 資料表中，選擇部署 ID。在部署失敗之後，說明失敗原因的訊息會顯示在部署的詳細資訊頁面中。

1. 。 隨即顯示部署執行個體的詳細資訊。部署失敗後，您可能可以判斷部署失敗的 Amazon EC2 執行個體和步驟。

1. 您可以使用[使用 CodeDeploy 檢視執行個體詳細資訊](instances-view-details.md)中所述的這類技術，藉此執行其他疑難排解。您也可以分析 Amazon EC2 執行個體上的部署日誌檔案。如需詳細資訊，請參閱[分析日誌檔案以調查執行個體的部署失敗](troubleshooting-ec2-instances.md#troubleshooting-deploy-failures)。

## 驗證您的部署
<a name="tutorials-windows-deploy-application-verify"></a>

在您的部署成功之後，請驗證安裝運作中。使用 Amazon EC2 執行個體的公有 DNS 地址，在 Web 瀏覽器中檢視網頁。（若要取得公有 DNS 值，請在 Amazon EC2 主控台中選擇 Amazon EC2 執行個體，然後在**描述**索引標籤上尋找**公有 DNS** 中的值。)

例如，如果 Amazon EC2 執行個體的公有 DNS 地址為 **ec2-01-234-567-890.compute-1.amazonaws.com**，您可以使用下列 URL：

```
http://ec2-01-234-567-890.compute-1.amazonaws.com
```

如果成功，您應該會看到 Hello World 網頁。