步骤 4:部署您的您的账户中执行您的操作 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

步骤 4:部署您的您的账户中执行您的操作

现在,您可以部署上传到 Amazon S3 的 Hello World 应用程序修订版示例。您可以使用Amazon CLI或 CodeDeploy 控制台部署修订版并监控部署进度。成功部署应用程序修订之后,可以检查结果。

使用您的账户中部署您的您的您的您的您的账户 CodeDeploy

您可以使用 CLI 或控制台部署应用程序。

部署您的应用程序修订 (CLI)

  1. 首先,部署需要部署组。不过,在创建部署组之前,您需要服务角色 ARN。服务角色是一个 IAM 角色,它向您的账户中执行操作。在这种情况下,服务角色授予访问您的 Amazon EC2 实例以扩展(读取)其 Amazon EC2 实例标签的 CodeDeploy 权限。

    您应该已经按照创建服务角色 (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 理。您可以使用以下命令通过 Amazon 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 的更多信息,请参阅 “什么是”Amazon Systems Manager。

  4. 现在调用 create-deployment 命令,使用名为 codedeploydemobucket 的存储桶中名为 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=codedeploydemobucket,bundleType=zip,key=HelloWorld_App.zip

部署应用程序修订(控制台)

  1. 在使用 CodeDeploy 控制台部署应用程序修订版之前,您需要服务角色 ARN。服务角色是一个 IAM 角色,它向您的账户中执行操作。在这种情况下,服务角色授予访问您的 Amazon EC2 实例以扩展(读取)其 Amazon EC2 实例标签的 CodeDeploy 权限。

    您应该已经按照创建服务角色(控制台) 中的说明创建了服务角色。要获取服务角色的 ARN,请参阅获取服务角色 ARN(控制台)

  2. 现在您已获得 ARN,您可以使用 CodeDeploy 控制台部署应用程序修订版。

    登录Amazon Web Services Management Console并打开 CodeDeploy 主机,网址为 https://console.aws.amazon.com/codedeploy

    注意

    使用您设置的同一用户登录CodeDeploy 入门

  3. 在导航窗格中,展开 “部署”,然后选择 “应用程序”。

  4. 选择 HelloWorld_App

  5. 部署组选项卡中,选择创建部署组

  6. Deployment group name (部署组名称) 中,输入 HelloWorld_DepGroup

  7. 服务角色中,选择服务角色的名称。

  8. 部署类型中,选择就地

  9. 环境配置中,选择 Amazon EC2 实例

  10. 在的代理配置中Amazon Systems Manager,保留默认值。

  11. 中,输入 Name

  12. 中,输入 CodeDeployDemo

  13. 部署配置中,选择CodeDeployDefault。 OneAtTaime

  14. 负载均衡器中,清除启用负载均衡

  15. 选择 Create deployment group (创建部署组)

  16. 选择 Create deployment (创建部署)

  17. 部署组中,选择 HelloWorld_DepGroup

  18. 修订类型中,选择我的应用程序存储在 Amazon S3 中,然后在修订位置中输入您之前上传到 Amazon S3 的示例 Hello World 应用程序修订版本的位置。获取位置:

    1. 通过以下网址打开 Simple Storage Service(Amazon S3)控制台:https://console.aws.amazon.com/s3/

    2. 在存储桶列表中,选择 codeploydemo bucket(或您在您的账户中执行操作)。

    3. 在对象列表中,选择 HelloWorld_App.zip

    4. Overview (概述) 选项卡上,选择 Copy path (复制路径)

    5. 返回 CodeDeploy 控制台,然后在 “修订位置” 中粘贴 “链接” 字段值。

  19. 对于 Revision file type (修订文件类型),选择 .zip

  20. (可选)在 Deployment description (部署描述) 中输入注释。

  21. 选择 Create deployment (创建部署)。有关您新创建的部署的信息将显示在 Deployments 页上。

监控您的部署并进行故障排除

使用 Amazon 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-instancesget-deployment-instance 这样的命令来排除故障。有关更多故障排除选项,请参阅分析日志文件以调查针对实例的部署失败

监视您的部署和故障排除(控制台)

在 CodeDeploy 控制台的 “部署” 页面上,您可以在 “状态” 列中监控部署的状态

要获取有关部署的详细信息(特别是在 Status 列值为 Succeeded 之外的任何值的情况下),请执行以下操作:

  1. 部署表中,选择您的部署 ID。部署失败后,部署的详细信息页中将显示描述失败原因的消息。

  2. 。 将显示有关部署实例的更多信息。部署失败后,您也许能够确定哪些 Amazon EC2 实例以及部署在哪个步骤失败。

  3. 如果您需要执行进一步的故障排除,可以使用类似于 View Instance Details 的技巧。您还可以分析 Amazon EC2 实例上的部署日志文件。有关更多信息,请参阅分析日志文件以调查针对实例的部署失败

验证您的部署

部署成功后,请验证您的 安装是否正常工作。使用 Amazon EC2 实例的公有 DNS 地址在网络浏览器中查看网页。(要获取公有 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! 网页。