我有几个弹性负载均衡器。我希望动态地找到与属于ELB目标组的EC2实例相关联的公共IP地址。我曾经能够使用以前版本的ELB来实现它,因为实例ID将与每个ELB一起列出。现在看来,它们不是。任何线索都会很棒!
答案 0 :(得分:5)
正如How to query AWS to get ELB names and attached instances to that using python boto3 modules?所述:
应用程序负载均衡器有多个目标组。实例上的端口已注册到目标组。
似乎列出目标组中实例的唯一命令是describe_target_health()
,它返回实例和端口(因为一个实例可以提供多个目标):
{
'TargetHealthDescriptions': [
{
'Target': {
'Id': 'i-0f76fade',
'Port': 80,
},
'TargetHealth': {
'Description': 'Given target group is not configured to receive traffic from ELB',
'Reason': 'Target.NotInUse',
'State': 'unused',
},
},
{
'HealthCheckPort': '80',
'Target': {
'Id': 'i-0f76fade',
'Port': 80,
},
'TargetHealth': {
'State': 'healthy',
},
},
],
'ResponseMetadata': {
'...': '...',
},
}
答案 1 :(得分:1)
对于仍在寻找解决方案的人,我已经制作了相同的python脚本,代码可以在github上找到。