AWS CodeDeploy要求必须有两个目标组。我只和一个人一起工作,我不需要第二个目标群体。但是,当我试图只使用目标组时,我会收到以下消息
目标组对必须具有不同的目标组。
我不太明白为什么CodeDeploy需要两个目标组而不仅仅是一个目标组(我阅读了文档)。
发布于 2020-03-18 09:23:07
因为您正在进行蓝色/绿色部署,并且需要两个TGs (蓝色和绿色),所以CodeDeploy可以创建一个新的ECS任务集,将该任务组附加到Green TG,然后开始将流量从Blue转移到Green TG。没有两个目标组,就不会有太多的蓝/绿,它将全是蓝色。
这是ECS的CodeDeploy蓝/绿行为:
Application load balancer (ALB) -> ALB DNS URL
|
|-- Port 80 (Production Listener) -> website-tg-blue on port 80 at container
|-- Port 8080 (Test Listener) -> website-tg-green on port 80 at container当前目标组网站- the通过侦听器端口80指向生产流量,现在让我们假设您正在对您的ECS映像进行更新,方法是对您的任务定义进行新的修订并更新您的ECS服务。最初,Code使用新的任务定义创建了一个ECS替换任务,它从ALB获得测试侦听器端口8080,该端口将被路由到网站-tg-green目标组,然后如果您与相关的钩子相关联,它将根据您的逻辑执行代码部署钩子。如果所有测试都是通过钩子通过的,或者没有配置任何钩子,那么代码部署将更新ALB侦听器规则,方法是将侦听器端口80侦听器流量切换到替换目标组,即网站- target,并且产品流量将得到新的更改。
然后,代码部署将等待配置的等待时间,并移除原始任务集。最后,ALB侦听器端口80和测试端口8080都将指向网站-tg-绿色目标组。
如果您对相同的ECS服务做进一步更新,那么生产侦听器目标组网站-tg-绿色将切换到网站-tg-蓝色,反之亦然,在ECS服务级别的进一步更新。
参考文献:
https://stackoverflow.com/questions/60684118
复制相似问题