本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 4:部署 Hello World 應用程式
現在您部署上傳到 Amazon S3 的 Hello World 應用程式修訂範例。您可以使用 AWS CLI 或 CodeDeploy 主控台部署修訂版本,並監控部署進度。成功部署應用程式修訂版之後,您要檢查結果。
使用 部署您的應用程式修訂版 CodeDeploy
您可以使用 CLI或 主控台部署應用程式。
部署應用程式修訂版 (CLI)
-
首先,部署需要部署群組。不過,在建立部署群組之前,您需要服務角色 ARN。服務角色是授予服務許可,以代表您行事IAM的角色。在此情況下,服務角色會 CodeDeploy 授予許可,以存取您的 Amazon EC2執行個體,以展開 (讀取) 其 Amazon EC2執行個體標籤。
您應該已經遵循建立服務角色 (CLI) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (CLI) 。
-
現在您已擁有 ARN,請呼叫 create-deployment-group命令來建立名為 的部署群組
HelloWorld_DepGroup
,該群組與名為 的應用程式相關聯HelloWorld_App
,並使用名為 的 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命令支援建立觸發程序,導致將部署和執行個體中指定事件的 Amazon SNS通知傳送給主題訂閱者。此命令也支援自動復原部署和設定警示的選項,以在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。
-
建立部署之前,部署群組中的執行個體必須安裝 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 客服人員 。如需 Systems Manager 的詳細資訊,請參閱什麼是 AWS Systems Manager。
-
現在,請在名為
amzn-s3-demo-bucket
的儲存貯體中使用名為HelloWorld_App.zip
的應用程式修訂,呼叫 create-deployment 命令來建立與名為HelloWorld_App
之應用程式、名為CodeDeployDefault.OneAtATime
之部署組態和名為HelloWorld_DepGroup
之部署群組建立關聯的部署: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
部署應用程式修訂 (主控台)
-
在使用 CodeDeploy 主控台部署應用程式修訂版之前,您需要服務角色 ARN。服務角色是授予服務許可,以代表您行事IAM的角色。在此情況下,服務角色會 CodeDeploy 授予許可,以存取您的 Amazon EC2執行個體,以展開 (讀取) 其 Amazon EC2執行個體標籤。
您應該已經遵循建立服務角色 (主控台) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (主控台) 。
-
現在您已擁有 ARN,您可以使用 CodeDeploy 主控台來部署應用程式修訂版。
登入 AWS Management Console 並在 https://console.aws.amazon.com/codedeploy
開啟 CodeDeploy 主控台。 注意
使用您在 中設定的相同使用者登入入門 CodeDeploy。
在導覽窗格中,展開部署 ,然後選擇應用程式 。
-
選擇 HelloWorld_App 。
-
在 Deployment groups (部署群組) 標籤中,選擇 Create deployment group (建立部署群組)。
-
在 Deployment group name (部署群組名稱) 中,輸入
HelloWorld_DepGroup
。 -
在 Service Role (服務角色) 中,選擇服務角色的名稱。
-
在 Deployment type (部署類型) 中,選擇 In-place (就地)。
-
在環境組態 中,選取 Amazon EC2執行個體 。
-
在具有 的客服人員組態 AWS Systems Manager中,保留預設值。
-
在 Key (金鑰) 中,輸入
Name
。 -
在 Value (值) 中輸入
CodeDeployDemo
。 -
在部署組態 中,選擇 CodeDeployDefault。OneAtATime
-
在 Load Balancer (負載平衡器) 中,清除 Enable load balancing (啟用負載平衡)。
-
選擇 Create deployment group (建立部署群組)。
-
選擇 Create deployment (建立部署)。
-
在部署群組 中,選擇 HelloWorld_DepGroup
-
在修訂類型 中,選擇我的應用程式存放在 Amazon S3,然後在修訂位置 中輸入您先前上傳至 Amazon S3 的範例 Hello World 應用程式修訂版本的位置。取得位置:
在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 -
在儲存貯體清單中,選擇 amzn-s3-demo-bucket (或您上傳應用程式修訂版的儲存貯體名稱)。
-
在物件清單中,選擇 HelloWorld_App.zip 。
-
在 Overview (概觀) 標籤上,選擇 Copy path (複製路徑)。
-
返回 CodeDeploy 主控台,並在修訂位置 中貼上連結欄位值。
-
針對 Revision file type (修訂檔案類型),選擇 .zip。
-
(選用) 在 Deployment description (部署描述) 中輸入註解。
-
選擇 Create deployment (建立部署)。新建立部署的相關資訊會顯示在 Deployments (部署) 頁面上。
監控和疑難排解您的部署
使用 AWS CLI 或 主控台來監控和疑難排解您的部署。
若要監控和疑難排解您的部署 (CLI)
-
針對名為
HelloWorld_App
的應用程式和名為HelloWorld_DepGroup
的部署群組呼叫 list-deployments 命令,來取得部署 ID:aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
-
使用部署 ID,呼叫 get-deployment 命令:
aws deploy get-deployment --deployment-id
deploymentID
--query "deploymentInfo.status" --output text -
此命令傳回部署的整體狀態。如果成功,值為
Succeeded
。如果整體狀態為
Failed
,您可以呼叫 list-deployment-instances和 等命令get-deployment-instance進行疑難排解。如需其他故障診斷選項,請參閱分析日誌檔案以調查執行個體的部署失敗。
監控和故障診斷部署 (主控台)
在 CodeDeploy 主控台的部署頁面上,您可以在狀態欄中監控部署的狀態。
若要取得部署的詳細資訊,特別是在 Status (狀態) 欄位中,有任何數值不是 Succeeded (成功) 的情況下,則可執行以下動作:
-
在 Deployments (部署) 資料表中,選擇部署 ID。在部署失敗之後,說明失敗原因的訊息會顯示在部署的詳細資訊頁面中。
-
。 隨即顯示部署執行個體的詳細資訊。部署失敗後,您可能可以判斷部署失敗的 Amazon EC2執行個體和步驟。
-
您可以使用View Instance Details中所述的這類技術,藉此執行其他疑難排解。您也可以分析 Amazon EC2執行個體上的部署日誌檔案。如需詳細資訊,請參閱分析日誌檔案以調查執行個體的部署失敗。
驗證您的部署
在您的部署成功之後,請驗證安裝運作中。使用 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 網頁。