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
CloudFormation 资源。
一旦你有了 ApplicationListener
你就可以定义新的 ApplicationListenerRules
:
new ApplicationListenerRule(this, 'Rule1', {
listener: httpsListener,
priority: 1
...
})
但是,要aws-cdk
管理负载均衡器规则,它们都需要由它创建。有2种解法。
解决方案 A
将所有现有侦听器规则导入 CloudFormation 堆栈。负载均衡器规则资源 supports importing 进入 CloudFormation 堆栈。
解决方案 B
通过命令行更改现有侦听器规则的优先级。目的是让现有规则优先级从 N + 1 开始。其中 N 是当前规则数。这样做会为 aws-cdk
中定义的新规则创建免费的 space。使用 space,您可以通过 aws-cdk
定义现有规则的副本并部署它们。部署后,您可以安全地删除手动创建的规则。
我有一个带有 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
CloudFormation 资源。
一旦你有了 ApplicationListener
你就可以定义新的 ApplicationListenerRules
:
new ApplicationListenerRule(this, 'Rule1', {
listener: httpsListener,
priority: 1
...
})
但是,要aws-cdk
管理负载均衡器规则,它们都需要由它创建。有2种解法。
解决方案 A
将所有现有侦听器规则导入 CloudFormation 堆栈。负载均衡器规则资源 supports importing 进入 CloudFormation 堆栈。
解决方案 B
通过命令行更改现有侦听器规则的优先级。目的是让现有规则优先级从 N + 1 开始。其中 N 是当前规则数。这样做会为 aws-cdk
中定义的新规则创建免费的 space。使用 space,您可以通过 aws-cdk
定义现有规则的副本并部署它们。部署后,您可以安全地删除手动创建的规则。