agent: |
c6CFzJzAaTihnk9SROZcRelease unused/unattached AWS Elastic IP addresses
Release unused/unattached AWS Elastic IP addresses
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
Once the unattached Elastic IPs are identified, this task releases them from the AWS environment. By using the collected allocation IDs and regions, the script communicates with the EC2 service to release each unattached Elastic IP. This process ensures that these IPs are no longer reserved, contributing to cost savings and resource optimization.
inputs
outputs
import boto3
import botocore.exceptions
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
# Function to release an Elastic IP
def release_elastic_ip(ec2_client, allocation_id, region):
ec2 = boto3.client('ec2', aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name=region)
try:
# Attempt to release the Elastic IP
response = ec2.release_address(AllocationId=allocation_id)
return f"Released Elastic IP {allocation_id} in region {region}"
except botocore.exceptions.BotoCoreError as e:
return f"Error releasing Elastic IP {allocation_id} in region {region}: {e}"
# List of regions to search for unattached Elastic IPs
#regions = ["us-east-1"] # Add your desired regions here
if len(unattached_ips) == 0:
print("No unattached Elastic IPs found.")
else:
print("Unattached Elastic IPs:")
# Print details for each unattached Elastic IP
for ip_info in unattached_ips:
print(f"Public IP: {ip_info['public_ip']}, Allocation ID: {ip_info['allocation_id']}, Region: {ip_info['region']}")
# Release unattached Elastic IPs
for ip_info in unattached_ips:
response = release_elastic_ip(boto3.client('ec2'), ip_info['allocation_id'], ip_info['region'])
print(response)
context.proceed = False
copied