AWS CodePipeline部署过程

时间:2019-04-11 06:46:52

标签: amazon-web-services amazon-ec2 devops aws-code-deploy aws-codepipeline

我正在使用AWS CodePipeline构建CI管道。我正在使用CodeBuild从存储库中获取我的代码,构建docker映像并将该映像推送到ECR。我的CodePipeline的来源是我的ECR回购,并且在更新图片时触发。

现在,这是我正在寻找的功能。当将新映像推送到ECR时,我想创建一个EC2实例,然后将新映像部署到该实例。图片中的应用程序完成任务后,即完成了一些操作并将结果推送到S3,我想终止实例。该任务可能需要几个小时到几天才能完成。

对于此用例,CodeDeploy是用于将ECR映像部署到EC2实例的正确工具吗?我从文档中看到CodeDeploy需要一个已经在运行的实例进行部署。我需要在启动CodeDeploy之前即时创建一个。我是否应该在CodePipeline中添加一个步骤来触发在运行CodeDeploy之前创建实例的Lambda?

任何指导将不胜感激!

1 个答案:

答案 0 :(得分:0)

CloudTrail支持记录PutImage事件,您可以使用该事件对管道进行处理。我更喜欢在构建管道中的特定步骤之后生成构件,然后具有对object created事件作出反应的lambda函数。然后,您的lambda函数可以进行必要的调用以启动ec2实例。然后,您的实例可以运行一项作业,然后再次调用lambda,这可能会将其拆除。听起来您需要按需工作人员。诸如AWS Batch或ECS之类的服务也许可以立即为您提供此功能。