gpt4 book ai didi

amazon-web-services - 将 ApplicationListenerRule 添加到现有的 ApplicationListener 会出现错误 'A listener already exists on this port for this load balancer'

转载 作者:行者123 更新时间:2023-12-03 07:12:16 29 4
gpt4 key购买 nike

我想向正在监听 PORT:80 的现有负载均衡器监听器添加一条规则。我还创建了一个新的目标组以附加到监听器规则操作。 enter image description here

在 CDK 中,我使用了 fromLookup 并从 ARN 中获取了监听器

const appListener = elbv2.ApplicationListener.fromLookup(this, `ALBListener-${props.stage}`, { listenerArn });


const applicationListenerRule = new elbv2.ApplicationListenerRule(this, `BlablaSyncRule-${props.stage}`, {
listener: appListener,
priority: 1000, //do not hardcode
conditions: [elbv2.ListenerCondition.pathPatterns(['/socket.io*'])],
action: elbv2.ListenerAction.forward([targetGroup])
});

当我执行cdk合成器时,我可以看到它包含在生成的Cloudformation中

  ALBPublicListener9C613A95:
Type: 'AWS::ElasticLoadBalancingV2::Listener'
Properties:
DefaultActions:
- TargetGroupArn:
Ref: ALBPublicListenerECSGroup7E4FFE32
Type: forward
LoadBalancerArn: >-
arn:aws:elasticloadbalancing:eu-central-1....
Port: 80
Protocol: HTTP
Metadata:
'aws:cdk:path': SocketFargateStack/ALB/PublicListener/Resource

当我尝试部署时,收到错误此负载均衡器的此端口上已存在监听器,因此它是否尝试在端口 80 上创建新的监听器。如果是,为什么。有没有办法使用 CDK 将规则添加到现有监听器

enter image description here

Full Stack
Related Github Issue?

最佳答案

只是从评论中写出这个答案。监听器的来源实际上来自构造ApplicationLoadBalancedFargateService:https://github.com/aws/aws-cdk/blob/v1.201.0/packages/%40aws-cdk/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts#L447-L452

您基本上无法将 ApplicationLoadBalancedFargateService 与在同一端口上具有现有监听器的 ALB 一起使用,这里存在一个问题:https://github.com/aws/aws-cdk/issues/13759

前进的方向是使用 FargateService,然后使用 addTargets,如评论中提到的@Lasek。

关于amazon-web-services - 将 ApplicationListenerRule 添加到现有的 ApplicationListener 会出现错误 'A listener already exists on this port for this load balancer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73157653/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com