使用 Boto3 查找属于特定目标组的 EC2 实例
Find EC2 Instances belonging to specific Target Group with Boto3
我有几个弹性负载均衡器。我希望动态找到与属于 ELB 目标组的 EC2 实例关联的 public IP 地址。我曾经能够使用以前版本的 ELB 做到这一点,因为实例 ID 将与每个 ELB 一起列出。现在看来,他们不是。任何线索都会很棒!
如在 上的回答:
应用程序负载均衡器有多个目标组。实例上的端口已注册到目标组。
似乎在目标组中列出实例的唯一命令是 describe_target_health()
,其中 returns instance 和 port(因为一个实例可以服务于多个目标):
{
'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': {
'...': '...',
},
}
对于那些仍在寻找解决方案的人,我已经为此制作了一个 python 脚本,代码可在 github.
上找到
我有几个弹性负载均衡器。我希望动态找到与属于 ELB 目标组的 EC2 实例关联的 public IP 地址。我曾经能够使用以前版本的 ELB 做到这一点,因为实例 ID 将与每个 ELB 一起列出。现在看来,他们不是。任何线索都会很棒!
如在
应用程序负载均衡器有多个目标组。实例上的端口已注册到目标组。
似乎在目标组中列出实例的唯一命令是 describe_target_health()
,其中 returns instance 和 port(因为一个实例可以服务于多个目标):
{
'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': {
'...': '...',
},
}
对于那些仍在寻找解决方案的人,我已经为此制作了一个 python 脚本,代码可在 github.
上找到