Boto3列出附加到所有ELB的所有安全组

时间:2018-11-28 12:43:31

标签: aws-sdk boto3 amazon-elb aws-security-group

我正在尝试列出在AWS账户中分配给ELB的所有安全组。这就是我现在所在的位置:

ec2 = boto3.client('ec2')
region_list = [region['RegionName'] for region in ec2.describe_regions()['Regions']]
for region in region_list:
    elb_client = boto3.client('elbv2', region_name=region)
    elbs = elb_client.describe_load_balancers()
    for elb in elbs['LoadBalancers']:
        print(elb['SecurityGroups']

但是我得到了:

  

print(elb ['SecurityGroups'])   KeyError:“ SecurityGroups”

考虑到我知道密钥存在,这很奇怪: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/elbv2.html#ElasticLoadBalancingv2.Client.describe_load_balancers

如果我将密钥更改为 LoadBalancerArn ,它可以正常工作。要考虑的一件事是,LoadBalancerArn返回单个字符串,而SecurityGroups是一个嵌套列表,但是如果这是问题的话,我想我会遇到另一种错误。

有人可以帮我吗?

解决方案: 由于某些ELB未分配给SG,因此初始代码无效。下面的关键检查可解决此问题。

    for elb in elbs['LoadBalancers']:
    try:
        value = elb['SecurityGroups']
        print(elb['SecurityGroups'])
    except KeyError:
            # Key is not present
            pass

0 个答案:

没有答案