使用 Boto3 查找属于特定目标组的 EC2 实例

Find EC2 Instances belonging to specific Target Group with Boto3

我有几个弹性负载均衡器。我希望动态找到与属于 ELB 目标组的 EC2 实例关联的 public IP 地址。我曾经能够使用以前版本的 ELB 做到这一点,因为实例 ID 将与每个 ELB 一起列出。现在看来,他们不是。任何线索都会很棒!

如在 上的回答:

应用程序负载均衡器有多个目标组。实例上的端口已注册到目标组。

似乎在目标组中列出实例的唯一命令是 describe_target_health(),其中 returns instanceport(因为一个实例可以服务于多个目标):

{
    '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.

上找到