agent: |
NyeDrRgo1w7ndZEQJZYaList All VPCs in AWS
List All VPCs in AWS
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task enumerates all Virtual Private Clouds across every AWS region in an account. This task is essential for network management, security audits, and resource tracking, especially in large-scale environments. It provides details like VPC IDs, CIDR blocks, and associated resources for each VPC.
inputs
outputs
import boto3
from botocore.exceptions import ClientError
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
def list_vpcs_in_region(region_name):
vpcs_info = []
try:
session = boto3.Session(aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name=region_name)
ec2 = session.client('ec2')
response = ec2.describe_vpcs()
vpcs = response.get('Vpcs', [])
if vpcs:
print(f"In region '{region_name}', found the following VPCs:")
for vpc in vpcs:
vpc_id = vpc['VpcId']
vpcs_info.append({'Region': region_name, 'VPC_ID': vpc_id})
print(f" VPC ID: {vpc_id}")
else:
print(f"No VPCs found in region '{region_name}'.")
except ClientError as e:
print(f"An error occurred in region {region_name}: {e}")
except Exception as e:
print(f"An unexpected error occurred in region {region_name}: {e}")
return vpcs_info
def list_vpcs_all_regions():
all_vpcs_info = []
try:
session = boto3.Session(aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name='us-east-1')
ec2 = session.client('ec2')
regions = [region['RegionName'] for region in ec2.describe_regions()['Regions']]
for region in regions:
vpcs_info = list_vpcs_in_region(region)
all_vpcs_info.extend(vpcs_info)
except ClientError as e:
print(f"An error occurred: {e}")
except Exception as e:
print(f"An unexpected error occurred: {e}")
return all_vpcs_info
#region_name = None # Replace with a region name or leave as None for all regions
if region_name:
vpcs = list_vpcs_in_region(region_name)
else:
vpcs = list_vpcs_all_regions()
#print(vpcs)
# Summary of all VPCs across regions
if vpcs:
print("\nSummary of all VPCs across regions:")
for vpc in vpcs:
print(f"Region: {vpc['Region']}, VPC ID: {vpc['VPC_ID']}")
else:
print("No VPCs found in any of the regions.")
copied