Skip to content

Commit 33f15a4

Browse files
authored
Fixed sorting logic.
1 parent b7773bc commit 33f15a4

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

Scheduling-DynamoDB-Backups/lambda_function.py

+16-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import datetime
1+
from datetime import datetime
22

33
import boto3
44

5-
MAX_BACKUPS = 3
5+
MAX_BACKUPS = 3 # maximum number of backups to retain
66

77
dynamo = boto3.client('dynamodb')
88

@@ -18,12 +18,12 @@ def lambda_handler(event, context):
1818

1919
def create_backup(table_name):
2020
print("Backing up table:", table_name)
21-
backup_name = table_name + '-' + datetime.datetime.now().strftime('%Y%m%d%H%M%S')
21+
backup_name = table_name + '-' + datetime.now().strftime('%Y%m%d%H%M%S')
2222

2323
response = dynamo.create_backup(
2424
TableName=table_name, BackupName=backup_name)
2525

26-
print(response)
26+
print(f"Created backup {response['BackupDetails']['BackupName']}")
2727

2828

2929
def delete_old_backups(table_name):
@@ -38,16 +38,25 @@ def delete_old_backups(table_name):
3838
print("No stale backups. Exiting.")
3939
return
4040

41+
# Backups in date descending order (newest to oldest)
4142
sorted_list = sorted(backups['BackupSummaries'],
42-
key=lambda k: k['BackupCreationDateTime'])
43+
key=lambda k: k['BackupCreationDateTime'], reverse=True)
4344

44-
old_backups = sorted_list[:MAX_BACKUPS]
45+
old_backups = sorted_list[MAX_BACKUPS:]
46+
47+
print(f'Old backups: {old_backups}')
4548

4649
for backup in old_backups:
4750
arn = backup['BackupArn']
4851
print("ARN to delete: " + arn)
4952
deleted_arn = dynamo.delete_backup(BackupArn=arn)
53+
backup_name = deleted_arn['BackupDescription']['BackupDetails']['BackupName']
5054
status = deleted_arn['BackupDescription']['BackupDetails']['BackupStatus']
51-
print("Status:", status)
55+
print(f'BackupName: {backup_name}, Status: {status}')
5256

5357
return
58+
59+
60+
if __name__ == "__main__":
61+
event = {"TableName": "Movies"}
62+
lambda_handler(event, {})

0 commit comments

Comments
 (0)