步驟 4:部署 Hello World 應用程式 - AWS CodeDeploy

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

步驟 4:部署 Hello World 應用程式

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

使用 部署您的應用程式修訂版 CodeDeploy

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

部署應用程式修訂版 (CLI)

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

    您應該已經遵循建立服務角色 (CLI) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (CLI)

  2. 現在您已擁有 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 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。

  3. 建立部署之前,部署群組中的執行個體必須安裝 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

  4. 現在,請在名為 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

部署應用程式修訂 (主控台)

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

    您應該已經遵循建立服務角色 (主控台) 中的說明,來建立服務角色。若要取得服務角色ARN的 ,請參閱 取得服務角色 ARN (主控台)

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

    登入 AWS Management Console 並在 https://console.aws.amazon.com/codedeploy 開啟 CodeDeploy 主控台。

    注意

    使用您在 中設定的相同使用者登入入門 CodeDeploy

  3. 在導覽窗格中,展開部署 ,然後選擇應用程式

  4. 選擇 HelloWorld_App

  5. Deployment groups (部署群組) 標籤中,選擇 Create deployment group (建立部署群組)

  6. Deployment group name (部署群組名稱) 中,輸入 HelloWorld_DepGroup

  7. Service Role (服務角色) 中,選擇服務角色的名稱。

  8. Deployment type (部署類型) 中,選擇 In-place (就地)

  9. 環境組態 中,選取 Amazon EC2執行個體

  10. 具有 的客服人員組態 AWS Systems Manager中,保留預設值。

  11. Key (金鑰) 中,輸入 Name

  12. Value (值) 中輸入 CodeDeployDemo

  13. 部署組態 中,選擇 CodeDeployDefault。OneAtATime

  14. Load Balancer (負載平衡器) 中,清除 Enable load balancing (啟用負載平衡)

  15. 選擇 Create deployment group (建立部署群組)

  16. 選擇 Create deployment (建立部署)

  17. 部署群組 中,選擇 HelloWorld_DepGroup

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

    1. 在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

    2. 在儲存貯體清單中,選擇 amzn-s3-demo-bucket (或您上傳應用程式修訂版的儲存貯體名稱)。

    3. 在物件清單中,選擇 HelloWorld_App.zip

    4. Overview (概觀) 標籤上,選擇 Copy path (複製路徑)

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

  19. 針對 Revision file type (修訂檔案類型),選擇 .zip

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

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

監控和疑難排解您的部署

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

若要監控和疑難排解您的部署 (CLI)

  1. 針對名為 HelloWorld_App 的應用程式和名為 HelloWorld_DepGroup 的部署群組呼叫 list-deployments 命令,來取得部署 ID:

    aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query "deployments" --output text
  2. 使用部署 ID,呼叫 get-deployment 命令:

    aws deploy get-deployment --deployment-id deploymentID --query "deploymentInfo.status" --output text
  3. 此命令傳回部署的整體狀態。如果成功,值為 Succeeded

    如果整體狀態為 Failed,您可以呼叫 list-deployment-instances和 等命令get-deployment-instance進行疑難排解。如需其他故障診斷選項,請參閱分析日誌檔案以調查執行個體的部署失敗

監控和故障診斷部署 (主控台)

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

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

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

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

  3. 您可以使用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 網頁。