Boto3 список всех групп безопасности, прикрепленных ко всем ELB - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь перечислить все группы безопасности, которые назначены для ELB в учетной записи AWS.Вот где я сейчас нахожусь:

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