设置持续部署管道
在此教程中,您将学习如何创建自动化软件发布管道以部署实时示例应用程序。您将使用 AWS CodePipeline 创建管道,这是一项在每次代码发生更改时构建、测试和部署您的代码的服务。您将使用您的 GitHub 账户,并使用 Amazon Simple Storage Service (S3) 存储桶或 AWS CodeCommit 存储库作为示例应用程序代码的源位置。您还将使用 AWS Elastic Beanstalk 作为示例应用程序的部署目标。您完成的管道将能够检测对包含示例应用程序的源存储库所做的更改,然后自动更新您的实时示例应用程序。
通过持续部署,您可以在未经开发人员明确批准的情况下自动将修订部署到生产环境中,从而实现整个软件发布流程的自动化。
在本教程中完成的所有操作均符合免费套餐条件。
管理 AWS 资源
登录控制台您的持续部署管道将需要一个包含虚拟服务器或 Amazon EC2 实例的目标环境,它将在此部署示例代码。您将在创建管道之前准备此环境。
a. 为了在本教程中简化设置和配置 EC2 实例的过程,您将使用 AWS Elastic Beanstalk 启动示例环境。Elastic Beanstalk 使您可以轻松托管 Web 应用程序,而无需自行启动、配置或操作虚拟服务器。它会自动配置和操作基础设施(例如虚拟服务器、负载平衡器等),并为您提供应用程序堆栈(例如,操作系统、语言和框架、Web 和应用程序服务器等)。
在此步骤中,您将检索示例应用程序代码的副本,并选择托管代码的源。管道从源获取代码,然后对其执行操作。
您可以使用以下三个选项之一:GitHub 存储库、Amazon S3 存储桶或 AWS CodeCommit 存储库。选择您的首选项并按照以下步骤操作:
在此步骤中,您将创建并配置一个包含两个操作的简单管道:源和部署管道。您将为 CodePipeline 提供源存储库和部署环境的位置。
a.单击此处以打开 AWS CodePipeline 控制台。
- 在“Welcome (欢迎)”页面上,单击 Create pipeline (创建管道)。
- 如果这是您第一次使用 AWS CodePipeline,则会显示一个介绍页面,而不是“Welcome (欢迎)”页面。单击 Get Started (开始使用)。
c.在 Step 2: Source (步骤2:来源) 页面上,选择所选来源的位置,然后按照以下步骤操作:
f.在 Step 5: Service Role (步骤 5:服务角色) 页面上:
- 服务角色:单击 Create role (创建角色)。
- 您将被重定向到 IAM 控制台页面,该页面描述将为您创建的 AWS-CodePipeline-Service 角色。单击 Allow (允许)。
- 创建角色后,您将返回到 Step 5: Service Role (步骤 5:服务角色) 页面,其中 AWS-CodePipeline-Service 显示在角色名称中。单击 Next Step (下一步)。
注意:只有第一次在 AWS CodePipeline 中创建管道时才需要创建服务角色。如果已创建服务角色,您将能够从角色下拉列表中选择服务角色。由于下拉列表会显示所有与您的账户相关联的 IAM 服务角色,如果您选择一个非默认的名称,请确保该名称可识别为 AWS CodePipeline 的服务角色。
在此步骤中,您将启动管道。在创建管道后,它将自动开始运行。首先,它检测源位置中的示例应用程序代码,捆绑文件,然后将它们移动到您定义的第二个阶段。在此阶段中,它将代码传递给 Elastic Beanstalk,后者包含将托管代码的 EC2 实例。Elastic Beanstalk 处理将代码部署到 EC2 实例的过程。
在这个步骤中,您将更改示例代码,然后将更改提交到存储库。CodePipeline 将检测更新的示例代码,然后通过 Elastic Beanstalk 自动启动将代码部署到您的 EC2 实例的过程。
请注意,您部署的示例网页是指 AWS CodeDeploy,这是一项自动执行代码部署的服务。在 CodePipeline 中,CodeDeploy 是使用 Elastic Beanstalk 执行部署操作的替代方法。让我们更新示例代码,以便它正确地说明您使用 Elastic Beanstalk 部署了示例。
为了避免将来向您收费,您需要删除在本教程中启动的所有资源,其中包括管道、Elastic Beanstalk 应用程序以及您为托管代码而设置的源。
您已使用 AWS CodePipeline 成功创建了自动软件发布管道! 使用 CodePipeline,您创建了一个管道,该管道使用 GitHub、Amazon S3 或 AWS CodeCommit 作为应用程序代码的源位置,然后将代码部署到由 AWS Elastic Beanstalk 管理的 Amazon EC2 实例。每当代码发生更改时,您的管道都会自动部署代码。您距离实施持续部署还有一步之遥!
现在您已学会使用 AWS CodePipeline 创建简单管道,您可以通过访问以下资源了解更多信息。
- 按照本指南创建更高级的四阶段管道。此管道使用 GitHub 存储库作为源位置,使用 Jenkins 生成服务器来生成并测试项目,并使用 AWS CodeDeploy 应用程序将内置代码部署到暂存服务器。
- 使用我们的管道初学者工具包,通过 Jenkins 构建服务器快速启动四阶段管道。
- 了解有关持续交付的更多信息。