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.

步骤 5:将应用程序部署到实例

在此步骤中,您将使用 AWS CodeDeploy 控制台或 AWS CLI 将示例修订从 GitHub 存储库部署到实例。如果您要使用我们的某个示例修订来部署到运行 Amazon Linux、RHEL 或 Windows Server 的 Amazon EC2 实例,则我们的示例修订为已部署到实例的单个网页。

部署修订(控制台)

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

    注意

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

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

  3. 选择 Create application

  4. Application name 框中,键入 CodeDeployGitHubDemo-App

  5. Deployment group name 框中,键入 CodeDeployGitHubDemo-DepGrp

  6. 选择实例的标签类型。

    如果您要部署到 Amazon EC2 实例,请从 Tag type 下拉列表中选择 Amazon EC2。在 KeyValue 框中,键入作为步骤 4:预置实例的一部分应用于 Amazon EC2 实例的 Amazon EC2 实例标签密钥和值。

    如果您要部署到本地实例,请从 Tag type 下拉列表中选择 On-premises instance。在 KeyValue 框中,键入作为步骤 4:预置实例的一部分应用于本地实例的本地实例标签密钥和值。

  7. Deployment configuration 下拉列表中,保留默认值 CodeDeployDefault.OneAtATime

  8. Service role ARN 下拉列表中,选择服务角色 ARN。(按照获取服务角色 ARN(控制台) 中的说明执行操作可查找服务角色 ARN。)

  9. 选择 Create application

  10. Application details 页上的 Deployment groups 中,选择 CodeDeployGitHubDemo-DepGrp 旁边的按钮。

  11. Actions 菜单中,选择 Deploy new revision

  12. Create deployment 页上的 Revision type 区域中,选择 My application is stored in GitHub

  13. 选择 Connect with GitHub。出现的网页将提示您授权 AWS CodeDeploy 与名为 CodeDeployGitHubDemo-App 的应用程序的 GitHub 进行交互。

    注意

    如果您看到的是 Reconnect with GitHub 链接而不是 Connect with GitHub 按钮,这是预期行为。请不要选择此链接。继续下一步。有关出现这种情况的原因的信息,请参阅 GitHub 对 AWS CodeDeploy 中的应用程序进行的身份验证

    如果您看到一个短暂显示并随即消失的空白网页,并且没有看到 Reconnect with GitHub 链接或 Connect with GitHub 按钮,这也是预期行为。继续下一步。有关出现这种情况的原因的信息,请参阅 GitHub 对 AWS CodeDeploy 中的应用程序进行的身份验证

  14. 按照 Sign in 页上的说明执行操作以使用您的 GitHub 账户进行登录。

  15. Authorize application 页上,选择 Authorize application

  16. 在 AWS CodeDeploy Create deployment 页上的 Repository name 框中,键入用于登录的 GitHub 用户名,并且后跟正斜杠 (/) 和已在其中推送应用程序修订的存储库的名称 (例如,my-github-user-name/CodeDeployGitHubDemo)。

    如果您不确定要键入的值,或者需要指定其他存储库,请执行以下步骤:

    1. 在单独的 Web 浏览器选项卡中,转到您的 GitHub 仪表板

    2. Your repositories 中,将鼠标指针悬停在目标存储库名称的上方。此时将显示工具提示,其中显示 GitHub 用户或组织名,依次后跟正斜杠字符 (/) 和存储库的名称。将此显示的值键入 Repository Name 框中。

      注意

      如果目标存储库名称未显示在 Your repositories 中,请使用 Search GitHub 框查找目标存储库和对应的 GitHub 用户或组织名。

  17. Commit ID 框中,键入与将应用程序修订推送到 GitHub 这一操作关联的提交的 ID。

    如果您不确定要键入的值,请执行以下步骤:

    1. 在单独的 Web 浏览器选项卡中,转到您的 GitHub 仪表板

    2. Your repositories 中,选择 CodeDeployGitHubDemo

    3. 在提交列表中,查找并复制与将应用程序修订推送到 GitHub 这一操作关联的提交 ID。此 ID 的长度通常为 40 个字符并包含字母和数字。(请不要使用提交 ID 的较短版本,它通常是较长版本的前 10 个字符。)

    4. 将提交 ID 粘贴到 Commit ID 框中。

  18. Deployment description 框留空。

  19. 保留 Deployment configuration 下拉列表中的默认值 CodeDeployDefault.OneAtATime,然后选择 Deploy

现在,您已使用 AWS CodeDeploy 控制台将修订部署到实例,可向前跳至步骤 6:监控和验证部署

部署修订 (CLI)

  1. 调用 create-application 命令以在 AWS CodeDeploy 中创建一个名为 CodeDeployGitHubDemo-App 的应用程序:

    Copy
    aws deploy create-application --application-name CodeDeployGitHubDemo-App
  2. 调用 create-deployment-group 命令以创建一个名为 CodeDeployGitHubDemo-DepGrp 的部署组:

    • 如果您要部署到 Amazon EC2 实例,则 ec2-tag-key 是作为步骤 4:预置实例的一部分应用于您的 Amazon EC2 实例的 Amazon EC2 实例标签密钥。

    • 如果您要部署到 Amazon EC2 实例,则 ec2-tag-value 是作为步骤 4:预置实例的一部分应用于您的 Amazon EC2 实例的 Amazon EC2 实例标签值。

    • 如果您要部署到本地实例,则 on-premises-tag-key 是作为步骤 4:预置实例的一部分应用于本地实例的本地实例标签密钥。

    • 如果您要部署到本地实例,则 on-premises-tag-value 是作为步骤 4:预置实例的一部分应用于本地实例的本地实例标签值。

    • service-role-arn 为服务角色 ARN。(按照获取服务角色 ARN (CLI) 中的说明执行操作可查找服务角色 ARN。)

    Copy
    aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --on-premises-tag-filters Key=on-premises-tag-key,Type=KEY_AND_VALUE,Value=on-premises-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn

    注意

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

  3. 您必须先为 AWS CodeDeploy 提供权限以使用您的 GitHub 用户账户与 CodeDeployGitHubDemo-App 应用程序的 GitHub 进行交互,然后才能调用任何与 GitHub 交互的 AWS CLI 命令(例如,您接下来将调用的 create-deployment 命令)。当前,您必须使用 AWS CodeDeploy 控制台执行此操作。

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

    注意

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

  4. 在 AWS CodeDeploy 菜单上,选择 Deployments

  5. 选择 Create deployment

    注意

    您不会创建新的部署。这是当前授权 AWS CodeDeploy 代表您的 GitHub 用户账户与 GitHub 交互的唯一方式。

  6. Application 下拉列表中,选择 CodeDeployGitHubDemo-App

  7. Deployment group 下拉列表中,选择 CodeDeployGitHubDemo-DepGrp

  8. Revision type 区域中,选择 My application is stored in GitHub

  9. 选择 Connect With GitHub

    注意

    如果您看到的是 Reconnect with GitHub 链接而不是 Connect with GitHub 按钮,这是预期行为。请不要选择此链接。继续下一步。有关出现这种情况的原因的信息,请参阅 GitHub 对 AWS CodeDeploy 中的应用程序进行的身份验证

    如果您看到一个短暂显示并随即消失的空白网页,并且没有看到 Reconnect with GitHub 链接或 Connect with GitHub 按钮,这也是预期行为。继续下一步。有关出现这种情况的原因的信息,请参阅 GitHub 对 AWS CodeDeploy 中的应用程序进行的身份验证

  10. 按照 Sign in 页上的说明执行操作以使用您的 GitHub 用户名或电子邮件和密码进行登录。

  11. Authorize application 页上,选择 Authorize application

  12. 在 AWS CodeDeploy Create deployment 页上,选择 Cancel

  13. 调用 create-deployment 命令以将修订从您的 GitHub 存储库部署到实例,其中:

    • repository 是您的 GitHub 账户名,依次后跟正斜杠 (/) 和存储库名称 (CodeDeployGitHubDemo),例如 MyGitHubUserName/CodeDeployGitHubDemo

      如果您不确定要使用的值,或者需要指定其他存储库,请执行以下步骤:

      1. 在单独的 Web 浏览器选项卡中,转到您的 GitHub 仪表板

      2. Your repositories 中,将鼠标指针悬停在目标存储库名称的上方。此时将显示工具提示,其中显示 GitHub 用户或组织名,依次后跟正斜杠 (/) 和存储库的名称。这是要使用的值。

        注意

        如果目标存储库名称未显示在 Your repositories 中,请使用 Search GitHub 框查找目标存储库和对应的 GitHub 用户或组织名。

    • commit-id 是与您已推送到存储库的应用程序修订的版本关联的提交 (例如,f835159a...528eb76f)。

      如果您不确定要使用的值,请执行以下步骤:

      1. 在单独的 Web 浏览器选项卡中,转到您的 GitHub 仪表板

      2. Your repositories 中,选择 CodeDeployGitHubDemo

      3. 在提交列表中,查找与将应用程序修订推送到 GitHub 这一操作关联的提交 ID。此 ID 的长度通常为 40 个字符并包含字母和数字。(请不要使用提交 ID 的较短版本,它通常是较长版本的前 10 个字符。)请使用此值。

    对于 Linux, OS X, or Unix:

    Copy
    aws deploy create-deployment \ --application-name CodeDeployGitHubDemo-App \ --deployment-config-name CodeDeployDefault.OneAtATime \ --deployment-group-name CodeDeployGitHubDemo-DepGrp \ --description "My GitHub deployment demo" \ --github-location repository=repository,commitId=commit-id

    对于 Windows:

    Copy
    aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description "My GitHub deployment demo" --github-location repository=repository,commitId=commit-id