"""Lambda for EBS snapshot creation.""" import logging import os import boto3 logger = logging.getLogger() logger.setLevel(logging.INFO) client = boto3.client('ec2') def handler(event, context): """Lambda handler.""" volume_tag = os.environ['VOLUME_TAG'] volumes = client.describe_volumes( Filters=[ { 'Name': 'tag-key', 'Values': [ volume_tag ] } ] ) for volume in volumes['Volumes']: snapshot = client.create_snapshot( VolumeId=volume['VolumeId'], Description='Snapshot for volume {}'.format(volume['VolumeId']) ) logger.info('Snapshot for volume {} started, id - {}'.format( volume['VolumeId'], snapshot['SnapshotId'])) # Create tag for permission purposes client.create_tags( Resources=[ snapshot['SnapshotId'], ], Tags=[ { 'Key': volume_tag, 'Value': 'true' }, ] )