AWS CodeDeploy
User Guide (API Version 2014-10-06)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

步骤 2:将应用程序部署到 Auto Scaling 组

在此步骤中,您将向 Auto Scaling 组中的单个 Amazon EC2 实例部署修订。

创建部署 (CLI)

  1. 调用 create-application 命令以创建一个名为 SimpleDemoApp 的应用程序:

    Copy
    aws deploy create-application --application-name SimpleDemoApp
  2. 您应该已经按照步骤 3:创建服务角色中的说明创建了一个服务角色。该服务角色将向 AWS CodeDeploy 授予访问 Amazon EC2 实例以展开(读取)其标签的权限。您将需要服务角色 ARN。要获取服务角色 ARN,请按照获取服务角色 ARN (CLI) 中的说明操作。

  3. 现在您已拥有一个服务角色 ARN,请调用 create-deployment-group 命令,使用名为 CodeDeployDemo-AS-Group 的 Auto Scaling 组和名为 CodeDeployDefault.OneAtATime 的部署配置创建一个与名为 SimpleDemoApp 的应用程序相关联的名为 SimpleDemoDG 的部署组(具有指定的服务角色 ARN)。

    注意

    create-deployment-group 命令支持创建触发器,这些触发器导致向主题订阅者发送有关部署和实例中的指定事件的 Amazon SNS 通知。此命令还支持下列选项:自动回滚部署和设置警报以在满足 Amazon CloudWatch 警报中的特定监控阈值时停止部署。本教程中的示例不包含适用于这些操作的命令。

    对于 Linux, OS X, or Unix:

    Copy
    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:

    Copy
    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, OS X, or Unix 调用:

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

    存储桶 为下列项之一:

    • aws-codedeploy-us-east-1(对于美国东部(弗吉尼亚北部)区域)

    • aws-codedeploy-us-east-2(对于美国东部(俄亥俄州)区域)

    • aws-codedeploy-us-west-1(对于美国西部(加利福尼亚北部)区域)

    • aws-codedeploy-us-west-2(对于美国西部(俄勒冈)区域)

    • aws-codedeploy-ca-central-1 (对于加拿大 (中部)区域)

    • aws-codedeploy-eu-west-1(对于欧洲(爱尔兰)区域)

    • aws-codedeploy-eu-west-2(对于欧洲 (伦敦)区域)

    • aws-codedeploy-eu-central-1(对于欧洲(法兰克福)区域)

    • aws-codedeploy-ap-northeast-1(对于亚太区域(东京)区域)

    • aws-codedeploy-ap-northeast-2(对于亚太区域(首尔)区域)

    • aws-codedeploy-ap-southeast-1(对于亚太区域(新加坡)区域)

    • aws-codedeploy-ap-southeast-2(对于亚太区域(悉尼)区域)

    • aws-codedeploy-ap-south-1(对于亚太地区(孟买)区域)

    • aws-codedeploy-sa-east-1(对于南美洲(圣保罗)区域)

    • aws-codedeploy-cn-north-1(对于中国(北京)区域)

    对于 Amazon Linux 和 RHEL Amazon EC2 实例,从 Windows 调用:

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

    对于 Windows Server Amazon EC2 实例,从 Linux, OS X, or Unix 调用:

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

    存储桶 为下列项之一:

    • aws-codedeploy-us-east-1(对于美国东部(弗吉尼亚北部)区域)

    • aws-codedeploy-us-east-2(对于美国东部(俄亥俄州)区域)

    • aws-codedeploy-us-west-1(对于美国西部(加利福尼亚北部)区域)

    • aws-codedeploy-us-west-2(对于美国西部(俄勒冈)区域)

    • aws-codedeploy-ca-central-1 (对于加拿大 (中部)区域)

    • aws-codedeploy-eu-west-1(对于欧洲(爱尔兰)区域)

    • aws-codedeploy-eu-west-2(对于欧洲 (伦敦)区域)

    • aws-codedeploy-eu-central-1(对于欧洲(法兰克福)区域)

    • aws-codedeploy-ap-northeast-1(对于亚太区域(东京)区域)

    • aws-codedeploy-ap-northeast-2(对于亚太区域(首尔)区域)

    • aws-codedeploy-ap-southeast-1(对于亚太区域(新加坡)区域)

    • aws-codedeploy-ap-southeast-2(对于亚太区域(悉尼)区域)

    • aws-codedeploy-ap-south-1(对于亚太地区(孟买)区域)

    • aws-codedeploy-sa-east-1(对于南美洲(圣保罗)区域)

    • aws-codedeploy-cn-north-1(对于中国(北京)区域)

    对于 Windows Server Amazon EC2 实例,从 Windows 调用:

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

    注意

    目前,AWS CodeDeploy 不提供要部署到 Ubuntu Server Amazon EC2 实例的示例修订。要自己创建修订,请参阅使用应用程序修订

  5. 调用 get-deployment 命令以确保部署已成功。

    在调用此命令之前,您需要应该已经通过调用 create-deployment 命令返回的部署 ID。如果您需要重新获取部署 ID,请对名为 SimpleDemoApp 的应用程序和名为 SimpleDemoDG 的部署组调用 list-deployments 命令:

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

    现在,请使用部署 ID 调用 get-deployment 命令:

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

    请在返回的值为 Succeeded 之后继续。

创建部署(控制台)

  1. 您应该已经按照步骤 3:创建服务角色中的说明创建了一个服务角色。该服务角色将向 AWS CodeDeploy 授予访问您的实例以展开(读取)其标签的权限。在使用 AWS CodeDeploy 控制台部署应用程序修订之前,您需要服务角色 ARN。要获取服务角色 ARN,请按照获取服务角色 ARN(控制台) 中的说明操作。

  2. 现在您已拥有服务角色 ARN,可以开始使用 AWS CodeDeploy 控制台部署您的应用程序修订。

    登录 AWS 管理控制台并通过以下网址打开 AWS CodeDeploy 控制台:https://console.www.amazonaws.cn/codedeploy

    注意

    使用您在入门中使用的相同账户或 IAM 用户信息进行登录。

  3. 如果未显示 Applications 页,请在 AWS CodeDeploy 菜单上选择 Applications

  4. 选择 Create application

  5. Application name 框中,键入 SimpleDemoApp

  6. Deployment group name 框中,键入 SimpleDemoDG

  7. Tag type 下拉列表中选择 Auto Scaling group

  8. Auto Scaling group 旁的框中,键入 CodeDeployDemo-AS-Group

  9. Deployment configuration 下拉列表中,选择 CodeDeployDefault.OneAtATime

  10. Service role ARN 下拉列表中,选择服务角色 ARN。

  11. 选择 Create application

  12. Application details 页上的 Deployment groups 区域中,选择 SimpleDemoDG 旁的箭头以查看部署组详细信息。

  13. 选择 SimpleDemoDG 旁的按钮。在 Actions 菜单中,选择 Deploy new revision

  14. Repository type 区域中选择 My application is stored in Amazon S3,然后在 Revision location 框中键入以下位置之一:

    对于 Amazon Linux 和 RHEL Amazon EC2 实例:

    对于在美国东部(弗吉尼亚北部)地区中启动的 Amazon EC2 实例 http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip
    对于在美国东部(俄亥俄)区域中启动的 Amazon EC2 实例 http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip
    对于在美国西部(加利福利亚北部)区域中启动的 Amazon EC2 实例 http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip
    对于在美国西部(俄勒冈)区域中启动的 Amazon EC2 实例 http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip
    对于在加拿大 (中部) 区域中启动的 Amazon EC2 实例 http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip
    对于在欧洲(爱尔兰)区域中启动的 Amazon EC2 实例 http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip
    对于在欧洲 (伦敦) 区域中启动的 Amazon EC2 实例 http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip
    对于在欧洲(法兰克福)区域中启动的 Amazon EC2 实例 http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip
    对于在亚太区域(东京)中启动的 Amazon EC2 实例 http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip
    对于在亚太区域(首尔)中启动的 Amazon EC2 实例 http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip
    对于在亚太区域(新加坡)中启动的 Amazon EC2 实例 http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip
    对于在亚太区域(悉尼)中启动的 Amazon EC2 实例 http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip
    对于在亚太地区(孟买)区域中启动的 Amazon EC2 实例 http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip
    对于在南美洲(圣保罗)区域中启动的 Amazon EC2 实例 http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip
    对于在 中国(北京)区域 中启动的 Amazon EC2 实例 https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/samples/latest/SampleApp_Linux.zip

    对于 Windows Server Amazon EC2 实例:

    对于在美国东部(弗吉尼亚北部)地区中启动的 Amazon EC2 实例 http://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip
    对于在美国东部(俄亥俄)区域中启动的 Amazon EC2 实例 http://s3-us-east-2.amazonaws.com/aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip
    对于在美国西部(加利福利亚北部)区域中启动的 Amazon EC2 实例 http://s3-us-west-1.amazonaws.com/aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip
    对于在美国西部(俄勒冈)区域中启动的 Amazon EC2 实例 http://s3-us-west-2.amazonaws.com/aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip
    对于在加拿大 (中部) 区域中启动的 Amazon EC2 实例 http://s3-ca-central-1.amazonaws.com/aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip
    对于在欧洲(爱尔兰)区域中启动的 Amazon EC2 实例 http://s3-eu-west-1.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip
    对于在欧洲 (伦敦) 区域中启动的 Amazon EC2 实例 http://s3-eu-west-2.amazonaws.com/aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip
    对于在欧洲(法兰克福)区域中启动的 Amazon EC2 实例 http://s3-eu-central-1.amazonaws.com/aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip
    对于在亚太区域(东京)中启动的 Amazon EC2 实例 http://s3-ap-northeast-1.amazonaws.com/aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Windows.zip
    对于在亚太区域(首尔)中启动的 Amazon EC2 实例 http://s3-ap-northeast-2.amazonaws.com/aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip
    对于在亚太区域(新加坡)中启动的 Amazon EC2 实例 http://s3-ap-southeast-1.amazonaws.com/aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip
    对于在亚太区域(悉尼)中启动的 Amazon EC2 实例 http://s3-ap-southeast-2.amazonaws.com/aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip
    对于在亚太地区(孟买)区域中启动的 Amazon EC2 实例 http://s3-ap-south-1.amazonaws.com/aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip
    对于在南美洲(圣保罗)区域中启动的 Amazon EC2 实例 http://s3-sa-east-1.amazonaws.com/aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip
    对于在 中国(北京)区域 中启动的 Amazon EC2 实例 https://s3.cn-north-1.amazonaws.com.cn/aws-codedeploy-cn-north-1/samples/latest/SampleApp_Windows.zip

    对于 Ubuntu Server Amazon EC2 实例,键入存储在 Amazon S3 中的自定义应用程序修订的位置。

  15. Deployment description 框留空。

  16. Deployment configuration 下拉列表中选定 CodeDeployDefault.OneAtATime 的情况下,选择 Deploy

    注意

    要更新部署的当前状态,请刷新浏览器中的页面。

    如果显示 Failed 而非 Succeeded,则您可能需要尝试监控您的部署并排除故障(使用应用程序名称 SimpleDemoApp 和部署组名称 SimpleDemoDG)中的一些技术。