我目前正在利用AWS Lambda創建我的數據庫快照並刪除6天以前的快照。我正在使用Boto3庫來連接AWS API。我正在使用CloudWatch規則每天觸發刪除代碼。Boto3和AWS Lambda - 刪除早於
通常這工作正常,但我遇到了一個問題,在本月初(前6天),刪除腳本似乎不會刪除任何快照,即使存在超過6天的快照也是如此。
的代碼如下:
import json
import boto3
from datetime import datetime, timedelta, tzinfo
class Zone(tzinfo):
def __init__(self,offset,isdst,name):
self.offset = offset
self.isdst = isdst
self.name = name
def utcoffset(self, dt):
return timedelta(hours=self.offset) + self.dst(dt)
def dst(self, dt):
return timedelta(hours=1) if self.isdst else timedelta(0)
def tzname(self,dt):
return self.name
UTC = Zone(10,False,'UTC')
# Setting retention period of 6 days
retentionDate = datetime.now(UTC) - timedelta(days=6)
def lambda_handler(event, context):
print("Connecting to RDS")
rds = boto3.setup_default_session(region_name='ap-southeast-2')
client = boto3.client('rds')
snapshots = client.describe_db_snapshots(SnapshotType='manual')
print('Deleting all DB Snapshots older than %s' % retentionDate)
for i in snapshots['DBSnapshots']:
if i['SnapshotCreateTime'] < retentionDate:
print ('Deleting snapshot %s' % i['DBSnapshotIdentifier'])
client.delete_db_snapshot(DBSnapshotIdentifier=i['DBSnapshotIdentifier']
)
是的我從RDS使用AWS。 lambda腳本的原因是我想每小時拍攝一次數據庫的快照。我相信自動RDS快照只能每天發生,因此需要一些額外的備份。 – user2067803