繁体   English   中英

AWS CDK - 现有的应用程序负载均衡器侦听器 - 如何插入规则

[英]AWS CDK - Existing Application Load Balancer Listener - How To Insert Rule

我有一个带有 HTTPS 侦听器的应用程序负载均衡器,它是在我开始使用 CDK 之前创建的。

侦听器已经有 13 条规则,它们根据主机名将请求路由到不同的 Fargate 实例。 最后一条规则是后备规则。

现在我想在回退规则之前插入带有 CDK 的新规则。 由于添加新的 Fargate 服务时会有新的规则,所以这必须是动态的。 如何向现有侦听器添加新规则以及如何获取特定规则的优先级(在本例中为回退规则)作为优先级计算的起点

或者我可以在规则之后添加所有优先级为 1 的规则,并且现有规则的优先级将分别增加 1?

我以这种方式检索了现有的侦听器,但我不知道如何访问其规则

const httpsListener = elbv2.ApplicationListener.fromLookup(
  this,
  "ALBListenerHTTPS", {
    listenerArn: "my:aws:alb:listener:arn",
  }
);

每个ApplicationListener映射到一个AWS::ElasticLoadBalancingV2::ListenerRule资源。

一旦你有了一个ApplicationListener你就可以定义新的ApplicationListenerRules

new ApplicationListenerRule(this, 'Rule1', {
    listener: httpsListener,
    priority: 1
    ...
})

但是, aws-cdk管理负载均衡器规则,它们都需要由它创建。 有2个解决方案。

解决方案 A

将所有现有侦听器规则导入 CloudFormation 堆栈。 负载均衡器规则资源支持导入CloudFormation 堆栈。

解决方案 B

通过命令行更改现有侦听器规则的优先级。 目的是使现有规则优先级从 N + 1 开始。其中 N 是当前规则数。 这样做会为aws-cdk中定义的新规则创建可用空间。 有了空间,您可以通过aws-cdk定义现有规则的副本并部署它们。 部署后,您可以安全地删除手动创建的规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM