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

MFB*_*MFB 3 python amazon-ec2 amazon-web-services amazon-elb boto3

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

Joh*_*ein 6

正如在如何查询AWS以使用python boto3模块获取ELB名称和附加实例的回答?:

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

似乎列出目标组中实例的唯一命令是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': {
        '...': '...',
    },
}
Run Code Online (Sandbox Code Playgroud)