步驟 2:將應用程式部署到「Auto Scaling」群組 - AWS CodeDeploy

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

步驟 2:將應用程式部署到「Auto Scaling」群組

在此步驟中,您將會將修訂部署到 Auto Scaling 群組中的單一 Amazon EC2 執行個體。

建立部署 (CLI)

  1. 呼叫 create-application 命令以建立名為 SimpleDemoApp 的應用程式:

    aws deploy create-application --application-name SimpleDemoApp
  2. 您應該已經遵循以下步驟 2:建立服務角色 CodeDeploy的說明建立服務角色。服務角色將 CodeDeploy 授予存取 Amazon EC2 執行個體的權限,以擴充 (讀取) 其標籤。您需要服務角色 ARN。若要取得服務角色 ARN,請遵循 取得服務角色 ARN (CLI) 中的指示。

  3. 現在您已經擁有服務角色 ARN,請呼叫create-deployment-group命令,以指定的服務角色 ARN 使用名為SimpleDemoDG的 Auto Scaling 群組CodeDeployDemo-AS-Group和名為SimpleDemoApp的部署組態來建立名為CodeDeployDefault.OneAtATime的應用程式相關聯的部署群組。

    注意

    create-deployment-group命令支援建立觸發器,以便將 Amazon SNS 通知傳送給主題訂閱者有關部署和執行個體中指定事件的主題訂閱者。該命令還支援自動復原部署和設定警示以停止部署的選項,以便在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。這些動作的指令不包括在本教學課程中。

    在本地 Linux、macOS 電腦或 Unix 機器上:

    aws deploy create-deployment-group \ --application-name SimpleDemoApp \ --auto-scaling-groups CodeDeployDemo-AS-Group \ --deployment-group-name SimpleDemoDG \ --deployment-config-name CodeDeployDefault.OneAtATime \ --service-role-arn service-role-arn

    在本機 Windows 電腦上:

    aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefault.OneAtATime --service-role-arn service-role-arn
  4. ​使用指定位置的修訂版,呼叫 create-deployment 命令以建立與名為 SimpleDemoApp 的應用程式關聯的部署、名為 CodeDeployDefault.OneAtATime 的部署組態、名為 SimpleDemoDG 的部署群組。

    對於 Amazon Linux 和 RHEL Amazon EC2 執行個體,從本機 Linux、macOS 或 Unix 機器呼叫

    aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip

    儲存貯體名稱是 Amazon S3 儲存貯體的名稱,該儲存貯體包含您所在地區的 CodeDeploy 資源套件檔案。例如,對於美國東部 (俄亥俄) 區域,請將值區名稱取代為。 aws-codedeploy-us-east-2如需值區名稱清單,請參閱依區域的資源套件時段名稱

    對於 Amazon Linux 和 RHEL Amazon EC2 執行個體,從本機視窗機器呼叫

    aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Linux.zip

    儲存貯體名稱是 Amazon S3 儲存貯體的名稱,該儲存貯體包含您所在地區的 CodeDeploy 資源套件檔案。例如,對於美國東部 (俄亥俄) 區域,請將值區名稱取代為。 aws-codedeploy-us-east-2如需值區名稱清單,請參閱依區域的資源套件時段名稱

    適用於視窗伺服器 Amazon EC2 執行個體,從本機 Linux、macOS 或 Unix 機器呼叫

    aws deploy create-deployment \ --application-name SimpleDemoApp \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name SimpleDemoDG \ --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip

    儲存貯體名稱是 Amazon S3 儲存貯體的名稱,該儲存貯體包含您所在地區的 CodeDeploy 資源套件檔案。例如,對於美國東部 (俄亥俄) 區域,請將值區名稱取代為。 aws-codedeploy-us-east-2如需值區名稱清單,請參閱依區域的資源套件時段名稱

    對於視窗伺服器 Amazon EC2 執行個體,從本機視窗電腦呼叫

    aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-name,bundleType=zip,key=samples/latest/SampleApp_Windows.zip

    儲存貯體名稱是 Amazon S3 儲存貯體的名稱,該儲存貯體包含您所在地區的 CodeDeploy 資源套件檔案。例如,對於美國東部 (俄亥俄) 區域,請將值區名稱取代為。 aws-codedeploy-us-east-2如需值區名稱清單,請參閱依區域的資源套件時段名稱

    注意

    目前,尚 CodeDeploy 未提供範例修訂版來部署到 Ubuntu 伺服器的 Amazon EC2 執行個體。若要自行建立修訂版,請參閱使用的應用程式修訂 CodeDeploy

  5. 呼叫 get-deployment 命令,確保部署成功。

    呼叫此命令之前,您需要部署的 ID,其應該已由呼叫傳回 create-deployment 命令。 如果您需要再次取得部署 ID,請針對名為 SimpleDemoApp 的應用程式與名為 SimpleDemoDG 的部署群組 呼叫 list-deployments 命令。

    aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query "deployments" --output text

    現在,利用部署 ID 呼叫 get-deployment 命令。

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

    在傳回的值為 Succeeded 之前不要繼續。

建立部署 (主控台)

  1. 您應該已經遵循以下步驟 2:建立服務角色 CodeDeploy的說明建立服務角色。服務角色將 CodeDeploy 授予存取執行個體以擴充 (讀取) 其標記的權限。使用 CodeDeploy 主控台部署應用程式修訂版本之前,您將需要服務角色 ARN。若要取得服務角色 ARN,請遵循 取得服務角色 ARN (主控台) 中的指示。

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

    請登入 AWS Management Console 並開啟 CodeDeploy 主控台,網址為 https://console.aws.amazon.com/codedeploy

    注意

    使用您設定的相同使用者登入開始使用 CodeDeploy

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

  4. 選擇建立應用程式

  5. 選擇 Custom application (自訂應用程式)

  6. Application name (應用程式名稱) 中,輸入 SimpleDemoApp

  7. Compute Platform (運算平台) 中,選擇 EC2/On-premises (EC2/現場部署)

  8. 選擇建立應用程式

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

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

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

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

  13. 在 [環境設定] 中,選取 [Auto Scaling] 群組,然後選擇CodeDeployDemo-AS-Group

  14. 在 [部署組態] 中,選擇CodeDeployDefault。 OneAtA 時間

  15. 清除 Enable load balancing (啟用負載平衡)

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

  17. 在部署群組標籤中,選擇 Create deployment (建立部署)

  18. 在 [修訂版本類型] 中,選擇 [我的應用程式存放在 Amazon S3]。

  19. Revision location (修訂版位置),輸入作業系統和區域的範例應用程式的位置。

    適用於 Amazon Linux 和 RHEL Amazon EC2 執行個體

    區域 範例應用程式的位置
    美國東部 (俄亥俄) 區域 http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip
    美國東部 (維吉尼亞北部) 區域 http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip
    美國西部 (加利佛尼亞北部) 區域 http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip
    美國西部 (奧勒岡) 區域 http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip
    加拿大 (中部) 區域 http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip
    歐洲 (愛爾蘭) 區域 http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip
    歐洲 (倫敦) 區域 http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip
    歐洲 (巴黎) 區域 http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip
    歐洲 (法蘭克福) 區域 http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip
    以色列 (特拉維夫) 區域 https://aws-codedeploy-il-central-1.s3.il-central-1.amazonaws.com/samples/latest/SampleApp_Linux.zip
    亞太區域 (香港) 區域 https://aws-codedeploy-ap-east-1.s3.ap-east-1.amazonaws.com/samples/latest/SampleApp_Linux.zip
    亞太區域 (東京) 區域 http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip
    亞太區域 (首爾) 區域 http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip
    亞太區域 (新加坡) 區域 http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip
    亞太區域 (雪梨) 區域 http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip
    亞太區域 (墨爾本) 區域 https://aws-codedeploy-ap-southeast-4.s3.ap-southeast-4.amazonaws.com/samples/latest/SampleApp_Linux.zip
    亞太 (孟買) 區域 http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip
    南美洲 (聖保羅) 區域 http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip

    對於視窗服務器 Amazon EC2 實例

    區域 範例應用程式的位置
    美國東部 (俄亥俄) 區域 http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip
    美國東部 (維吉尼亞北部) 區域 http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip
    美國西部 (加利佛尼亞北部) 區域 http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip
    美國西部 (奧勒岡) 區域 http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip
    加拿大 (中部) 區域 http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip
    歐洲 (愛爾蘭) 區域 http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip
    歐洲 (倫敦) 區域 http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip
    歐洲 (巴黎) 區域 http://s3-eu-west-3.amazonaws.com/aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip
    歐洲 (法蘭克福) 區域 http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip
    以色列 (特拉維夫) 區域 https://aws-codedeploy-il-central-1.s3.il-central-1.amazonaws.com/samples/latest/SampleApp_Windows.zip
    亞太區域 (香港) 區域 https://aws-codedeploy-ap-east-1.s3.ap-east-1.amazonaws.com/samples/latest/SampleApp_Windows.zip
    亞太 (首爾) 區域 http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip
    亞太區域 (新加坡) 區域 http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip
    亞太區域 (雪梨) 區域 http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip
    亞太區域 (墨爾本) 區域 https://aws-codedeploy-ap-southeast-4.s3.ap-southeast-4.amazonaws.com/samples/latest/SampleApp_Windows.zip
    亞太 (孟買) 區域 http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip
    南美洲 (聖保羅) 區域 http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip

    對於 Ubuntu 服務器 Amazon EC2 實例

    輸入存放在 Amazon S3 中的自訂應用程式修訂版本的位置。

  20. Deployment description (部署描述) 空白。

  21. 展開 Advanced (進階)

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

    注意

    如果狀態出現 Failed (失敗),而非 Succeeded (成功),則可嘗試監控和疑難排解您的部署中的某些技術 (使用 SimpleDemoApp 應用程式名稱,以及 SimpleDemoDG 部署群組名稱)。