AWS CodePipeline部署过程

问题描述 投票:0回答:1

我正在使用AWS CodePipeline构建CI管道。我正在使用CodeBuild从repo中获取代码,构建docker镜像并将图像推送到ECR。我的CodePipeline的源代码是我的ECR仓库,在更新图像时会触发。

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

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

任何指导将不胜感激!

amazon-web-services amazon-ec2 devops aws-code-deploy aws-codepipeline
1个回答
0
投票

CloudTrail支持记录PutImage事件,您可以使用它来管理管道。我更喜欢在构建管道中的特定步骤之后生成工件,然后使用lambda函数来响应object created事件。然后,您的lambda函数可以进行必要的调用以启动ec2实例。然后,您的实例可以运行一个作业,然后再次调用lambda,这可能会将其拆除。听起来你需要一个按需工人。 AWS Batch或ECS等服务可能会为您提供开箱即用的此功能。

© www.soinside.com 2019 - 2024. All rights reserved.