AWS Lambda:RDS快照键

2024-10-01 07:40:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设置一个Lambda函数,根据this script对RDS实例进行每日快照。我和Python3号的翻译一起跑。在

import boto3
import datetime


def lambda_handler(event, context):
    print("Connecting to RDS")
    client = boto3.client('rds')

    # Instance to backup
    dbInstances = ['testdb']

    for dbInstance in dbInstances:
        print("RDS snapshot backups started at %s...\n" % datetime.datetime.now())

        client.create_db_snapshot(
            DBInstanceIdentifier=dbInstance,
            DBSnapshotIdentifier=dbInstance+'{}'.format(datetime.datetime.now().strftime("%y-%m-%d-%H")),
            Tags=[
                {
                    'Key': 'Name',
                    'Value': 'dbInstace'

                },
            ]
        )


        for snapshot in client.describe_db_snapshots(DBInstanceIdentifier=dbInstance, MaxRecords=50)['DBSnapshots']:
            createTs = snapshot['SnapshotCreateTime'].replace(tzinfo=None)
            if createTs < datetime.datetime.now() - datetime.timedelta(days=30):
                print("Deleting snapshot id:", snapshot['DBSnapshotIdentifier'])
                client.delete_db_snapshot(
                    DBSnapshotIdentifier=snapshot['DBSnapshotIdentifier']
                )

脚本确实可以创建快照;但是每次运行时我也会遇到这个错误,因此我认为它不能正确地删除快照。在

^{pr2}$

问题似乎出在这条线上:

createTs = snapshot['SnapshotCreateTime'].replace(tzinfo=None)

为什么会这样?在


Tags: toimportclientdbdatetimesnapshotboto3快照
1条回答
网友
1楼 · 发布于 2024-10-01 07:40:03

快照中的createdict仍然没有被填充,因为我在快照中没有返回错误。在

在这种情况下,百分比进度将小于100。在

for snap in snapshots['DBSnapshots']:
    if ('SnapshotCreateTime' in snap):
        print snap['SnapshotCreateTime']
    else:
        print 'No create time available'

    if ('PercentProgress' in snap):
        print snap['PercentProgress']

相关问题 更多 >