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 的多个服务

AWS ECS ALB 错误(请求超时)

如何将现有资源从不同的 AWS 账户导入 AWS CDK

AWS - ECS - 如何在现有 ECS(带有 1 个 EC2)实例上重新部署更新的 Docker 映像?

AWS CDK 是不是提供用于部署 ECS 应用程序的构造?