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

时间:2017-03-20 04:31:30

标签: python amazon-web-services amazon-ec2 boto3 amazon-elb

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

2 个答案:

答案 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上找到。