Я пытаюсь перечислить все группы безопасности, которые назначены для 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