本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 4:部署 Hello World 应用程序
现在,您将部署已上传到 Amazon S3 的示例 Hello World 应用程序修订。您可以使用 AWS CLI 或 CodeDeploy 控制台来部署修订版并监控部署进度。成功部署应用程序修订之后,可以检查结果。
使用部署您的应用程序修订版 CodeDeploy
您可以使用CLI或控制台部署应用程序。
部署您的应用程序修订版 (CLI)
-
首先,部署需要部署组。但是,在创建部署组之前,您需要一个服务角色ARN。服务IAM角色是一种向服务授予代表您执行操作的权限的角色。在这种情况下,服务角色授予访问您的亚马逊EC2实例以扩展(读取)其亚马逊EC2实例标签的 CodeDeploy 权限。
您应该已经按照创建服务角色(CLI) 中的说明创建了服务角色。要获取服务角色ARN的,请参阅获取服务角色 ARN(CLI) 。
-
现在您已经拥有了ARN,使用名为的 Amazon EC2 实例标签和名为的部署配置
HelloWorld_DepGroup
,调用create-deployment-group命令创建一个名为的部署组HelloWorld_App
,该部署组与名为的应用程序关联CodeDeployDefault.OneAtATime
,CodeDeployDemo
并使用服务角色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 状态管理器中创建关联,该关联将安装 CodeDeploy 代理,然后在每个星期日凌晨 2:00 尝试对其进行更新。有关 CodeDeploy 代理的更多信息,请参阅使用代 CodeDeploy 理。有关 Systems Manager 的详细信息,请参阅什么是 AWS Systems Manager。
-
现在调用 create-deployment 命令,使用名为
amzn-s3-demo-bucket
的存储桶中名为HelloWorld_App.zip
的应用程序修订,创建一个与名为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角色是一种向服务授予代表您执行操作的权限的角色。在这种情况下,服务角色授予访问您的亚马逊EC2实例以扩展(读取)其亚马逊EC2实例标签的 CodeDeploy 权限。
您应该已经按照创建服务角色(控制台) 中的说明创建了服务角色。要获取服务角色ARN的,请参阅获取服务角色 ARN(控制台) 。
-
现在您已经拥有了ARN,您可以使用 CodeDeploy 控制台来部署您的应用程序修订版。
登录 AWS Management Console 并在 https://console.aws.amazon.com/codede
ploy 上打开 CodeDeploy 控制台。 注意
使用您在入门 CodeDeploy中设置的同一用户登录。
在导航窗格中,展开部署,然后选择应用程序。
-
选择 HelloWorld_App。
-
在部署组选项卡中,选择创建部署组。
-
在 Deployment group name(部署组名称)中,输入
HelloWorld_DepGroup
。 -
在服务角色中,选择服务角色的名称。
-
在部署类型中,选择就地。
-
在环境配置中,选择 Amazon EC2 实例。
-
在使用的 Agent 配置中 AWS Systems Manager,保留默认值。
-
在键中,输入
Name
。 -
在值中,输入
CodeDeployDemo
。 -
在部署配置中,选择CodeDeployDefault。 OneAtATime。
-
在负载均衡器中,清除启用负载均衡。
-
选择 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 之外的任何值的情况下),请执行以下操作:
-
在部署表中,选择您的部署 ID。部署失败后,部署的详细信息页中将显示描述失败原因的消息。
-
将显示有关部署实例的更多信息。部署失败后,您可以确定在哪些 Amazon EC2 实例上以及在哪个步骤上部署失败。
-
如果您需要执行进一步的故障排除,可以使用类似于 View Instance Details 的技巧。您还可以分析 Amazon EC2 实例上的部署日志文件。有关更多信息,请参阅 分析日志文件以调查针对实例的部署失败。
验证您的部署
部署成功后,请验证您的安装是否正常工作。使用 Amazon EC2 实例的公共DNS地址在网络浏览器中查看网页。(要获取公开DNS值,请在亚马逊EC2控制台中选择亚马逊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! 网页。