agent: |
wgbSFWw8JJ8gk64Bc0yDDelete AWS ELBs
Delete AWS ELBs
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task deletes Amazon Elastic Load Balancers (ELBs) that are not associated with any targets or instances. These unattached ELBs could be remnants of previously deployed applications or services. By identifying and removing them, organizations can not only free up unused resources but also optimize their AWS infrastructure costs. This task helps maintain a clean and efficient cloud environment while ensuring cost-effectiveness.
inputs
outputs
import boto3
from botocore.exceptions import ClientError
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
def delete_elbs(load_balancers):
"""
Deletes the specified Elastic Load Balancers.
Args:
load_balancers (list): List of dictionaries containing ELB details.
Returns:
None.
"""
# Iterate over each ELB to delete
for elb in load_balancers:
region = elb['region']
elb_type = elb['type']
try:
# Handle ELBv2 (Application, Network, Gateway) deletion
if elb_type in ['application', 'network', 'gateway']:
client = boto3.client('elbv2', aws_access_key_id=access_key,aws_secret_access_key=secret_key, region_name=region)
client.delete_load_balancer(LoadBalancerArn=elb['elb_arn'])
# Handle Classic ELB deletion
elif elb_type == 'classic':
client = boto3.client('elb',aws_access_key_id=access_key,aws_secret_access_key=secret_key, region_name=region)
client.delete_load_balancer(LoadBalancerName=elb['elb_name'])
print(f"Deleted {elb_type} load balancer {elb['elb_name']} in region {region}")
# Handle potential client errors during deletion
except ClientError as ce:
print(f"Client error while deleting {elb_type} load balancer {elb['elb_name']} in region {region}: {ce}")
# Handle other exceptions during deletion
except Exception as e:
print(f"Error while deleting {elb_type} load balancer {elb['elb_name']} in region {region}: {e}")
# Specify the AWS regions to check
#regions_to_check = ['us-west-1', 'us-east-1'] # Modify this list as needed
'''
# Find ELBs with no targets or instances
output_status, output_data = aws_find_elbs_with_no_targets_or_instances(regions=regions_to_check)
'''
# Print and Delete the identified ELBs
if output_status:
print("No load balancers found with no targets or instances.")
else:
for elb in output_data:
print(f"ELB Name: {elb['elb_name']}")
if 'elb_arn' in elb:
print(f"ELB ARN: {elb['elb_arn']}")
print(f"Type: {elb['type']}")
print(f"Region: {elb['region']}")
print("-" * 40)
delete_elbs(output_data)
print("Load balancers deleted successfully.")
copied