AWS CDK 并在现有 ALB 上创建 ECS/Fargate 服务。使用现有的监听器?
Posted
技术标签:
【中文标题】AWS CDK 并在现有 ALB 上创建 ECS/Fargate 服务。使用现有的监听器?【英文标题】:AWS CDK and creating ECS/Fargate Service on existing ALB. Use existing listener? 【发布时间】:2020-11-05 03:06:26 【问题描述】:所以,我一直在这个问题上拔头发。
我正在尝试创建一个基于现有 ALB 和使用 TLS/443 的侦听器的新服务
我正在使用 CDK Python。
我在做一个
service = ecs_patterns.ApplicationLoadBalancedFargateService(
self, "a-service",
...
load_balancer=existing_lb
)
输入所有参数.....每次我这样做时,它都会尝试在端口 80 上创建一个新的侦听器。即使我尝试选择位于 443 上的现有侦听器,它也会出错并说现有侦听器存在并且出错。
对如何针对现有的 SSL 侦听器执行此操作有任何想法吗?
【问题讨论】:
【参考方案1】:如果您在谈论 AWS 中的现有资源,则需要将变量设置为侦听器 ARN,然后使用 ApplicationListenerAttributes,然后您应该能够像在 CDK 中创建新资源一样使用负载均衡器
【讨论】:
如果你检查docs.aws.amazon.com/cdk/api/latest/python/…【参考方案2】:我检查了https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_ecs_patterns/ApplicationLoadBalancedFargateService.html
其中没有任何内容可以指向现有的侦听器。
有监听器,但是你需要指定域和一堆其他不相关的东西......
当我确实将监听器放入时,它说端口正忙...
所以我想没有办法使用现有 ALB 和现有侦听器创建 Fargate 服务
【讨论】:
【参考方案3】:您可能无法使用 ECS 模式包执行此操作,但您应该可以使用 ECS 和 Elastic Load Balancer V2 包执行此操作。我认为您应该能够导入侦听器或目标组,然后将您的服务添加到其中。见https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_elasticloadbalancingv2/ApplicationListener.html#aws_cdk.aws_elasticloadbalancingv2.ApplicationListener.from_application_listener_attributes
【讨论】:
以上是关于AWS CDK 并在现有 ALB 上创建 ECS/Fargate 服务。使用现有的监听器?的主要内容,如果未能解决你的问题,请参考以下文章
Netflix Zuul/Ribbon/Eureka 与 AWS ELB/ALB 和 ECS
每个 ECS 服务的 AWS ALB 与微服务架构的每个 ALB 的多个服务