Reputation: 13
I'm using Boto3 of AWS to describe the security group and trying to access the FromPort
key for all the security groups available in a particular region. But when I'm trying to do so it will list some of the ports and then throws the KeyError
.
Code:
import boto3
client = boto3.client('ec2')
response = client.describe_security_groups()
for sg in response['SecurityGroups']:
for ip in sg['IpPermissions']:
print(ip['FromPort'])
Output:
80
5432
22
22
3622
8443
3
80
3622
8080
5432
22
8443
443
Traceback (most recent call last):
File ".\a.py", line 8, in <module>
print(ip['FromPort'])
KeyError: 'FromPort'
Upvotes: 1
Views: 960
Reputation: 16951
Your code is assuming that the entry you are trying to print is always in the response you get back. You can make the code more robust like this:
Replace
ip['FromPort']
with
ip.get('FromPort','((missing))')
Upvotes: 2