agent: |
KfMElX5rwD4kmfR7c6E2Create snapshots of unattached AWS EBS volumes
Create snapshots of unattached AWS EBS volumes
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This task streamlines the process of capturing point-in-time backups of EBS volumes that are not currently attached to instances. By creating snapshots, you can ensure data durability and recovery options, enabling you to safeguard valuable data and simplify data restoration if needed.
inputs
outputs
import boto3
import datetime
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
def create_ebs_snapshots(ec2_client, volume_id):
"""
Creates a snapshot of an EBS volume.
Args:
ec2_client (boto3.client): An EC2 client instance.
volume_id (str): The ID of the EBS volume to create a snapshot of.
"""
try:
response = ec2_client.create_snapshot(VolumeId=volume_id)
snapshot_id = response["SnapshotId"]
print(f"Snapshot {snapshot_id} created for volume {volume_id} at {datetime.datetime.now()}")
except Exception as e:
print(f"Error in creating snapshot for volume {volume_id}: {e}")
#regions = ["us-east-2"] # Add your desired regions here
for region in regions:
# Create an EC2 client instance for the region
ec2_client = boto3.client("ec2", aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name=region)
if not unattached_volumes:
print(f"No unattached EBS volumes found in region {region}")
else:
print(f"Unattached EBS volumes in region {region}: {unattached_volumes}")
for volume_id in unattached_volumes:
create_ebs_snapshots(ec2_client, volume_id)
context.proceed = False
copied