Amazon web services AWS CodeDeploy(蓝色/绿色)部署组,带有两个负载平衡器

Amazon web services AWS CodeDeploy(蓝色/绿色)部署组,带有两个负载平衡器,amazon-web-services,load-balancing,amazon-ecs,aws-code-deploy,aws-codepipeline,Amazon Web Services,Load Balancing,Amazon Ecs,Aws Code Deploy,Aws Codepipeline,我的建筑是这样的 Internal ALB -> Target Group 1 \ -> Fargate Task (using ECS Service) / External ALB -> Target Group 2 此ECS服务运行完全正常。对于内部和外部流量,我能够使用负载平

我的建筑是这样的

Internal ALB -> Target Group 1 
                               \ 
                                 -> Fargate Task (using ECS Service)
                               /
External ALB -> Target Group 2 
此ECS服务运行完全正常。对于内部和外部流量,我能够使用负载平衡器完成任务

我想创建一个对应于CodeDeploy应用程序的蓝/绿CodeDeploy部署组,它将在需要时成功部署服务。所有这些我都在使用CLI

问题是,由于我使用两个负载平衡器,因此无法将它们关联起来以创建CodeDeploy部署组。是否有关于如何创建此部署组的指示

此外,我希望使用此部署组创建一个管道,以便在每次代码更改时都可以部署应用程序


总的来说,我希望在VPC内部使用内部ALB访问服务,并在外部使用其公共ALB访问服务。因此,我创建了ALB并为这些ALB创建了侦听器,然后这些目标组被连接到ECS服务。

目前CodeDeploy不支持使用多个目标组,它们仅在使用滚动更新部署样式时受支持(非蓝绿色操作):

仅当服务使用滚动更新(ECS)部署控制器类型时,才支持多个目标组。如果您正在使用CodeDeploy或外部部署控制器,则不支持多个目标组


如果该服务可能,建议的解决方法是使用滚动ECS更新,而不是蓝/绿代码部署。如果这是不可能的,那么唯一的解决办法就是将服务分成两部分(每个端口一个),或者开发一个自定义Lambda函数作为生命周期挂钩的一部分运行,Lambda函数必须负责设置额外的目标组。

Hey@shariqmaws,所以我这样做了,它工作得非常好。不过有一个问题。我有很多lambda函数,做同样的事情,但只是不同的目标组和不同的容器端口。有没有一种方法可以使用lambda函数可以利用的某种全局变量?