当我创建传统负载均衡器(CLB) 或应用程序负载均衡器(ALB) 时,会自动创建弹性网络接口(ENI) 并将其附加到负载均衡器。
我的目标:我想影响从负载均衡器到其网络接口的标签。
这有点奇怪,因为:
com.amazonaws.services.ec2.model.Instance
有一个用于列出 EC2 实例网络接口的getNetworkInterfaces()
。com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription
没有列出 CLB 网络接口的方法。com.amazonaws.services.elasticloadbalancingv2.model.LoadBalancer
没有列出 ALB 网络接口的方法。
我找到了另一种解决方案,但我对此不满意:
- 我列出了 EC2 中的所有网络接口
com.amazonaws.services.ec2.AmazonEC2#describeNetworkInterfaces()
- 我得到了网络接口的
description
字段。此描述字段包含负载均衡器的名称。如果是 CLB,格式为ELB classic-load-balancer-name
,如果是 ALB,则格式为ELB app/application-load-balancer-name/f8bb2c1b66c9a086
- 我将解析的
description
与负载均衡器链接。
如果有人更改了描述字段,此解决方案不再有效,将负载均衡器的标签影响到其网络接口的最佳方法是什么?
注意:我使用的是 Java AWS-SDK。
弹性网络接口 (ENI) 会自动创建并附加到负载均衡器。
更准确地说,在部署均衡的每个可用区中,至少创建一个 ENI 并将其附加到平衡器(NLB 除外,每个可用区只能有一个)。 在平衡器的整个生命周期中,新的 ENI 将出现,旧的 ENI 将消失,因为平衡器水平扩展(节点数)和/或垂直扩展(底层硬件的容量),所有这些都由基础架构透明地处理。 即使您可以标记它们,标记也会随着时间的推移而过时。
如果有人更改了描述字段
您无法编辑这些 ENI 中的描述。 访问被拒绝。