よりも古い削除するスナップショット私は現在、私のデータベースのスナップショットを作成し、6日より古いスナップショットを削除するには、AWSラムダを利用しています。私はBoto3ライブラリをAWS APIとのインターフェイスに使用しています。私はCloudWatchルールを使用して毎日削除コードをトリガーしています。Boto3とAWSラムダ -
通常、これはうまくいきますが、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を使用しています。ラムダスクリプトの理由は、データベースから取った毎時のスナップショットが必要なことです。私は自動RDSのスナップショットのみを毎日起こると考えているので、その理由はいくつかの追加のバックアップをしたいと思います。 – user2067803