Boto3和AWS RDS:正确等待快照创建数据库



我的Lambda(Python和Boto3(中有以下代码:

rds.restore_db_instance_from_db_snapshot(
DBSnapshotIdentifier=snapshot_name,
DBInstanceIdentifier=db_id,
DBInstanceClass=rds_instance_class,
VpcSecurityGroupIds=secgroup,
DBSubnetGroupName=rds_subnet_groupname,
MultiAZ=False,
PubliclyAccessible=False,
CopyTagsToSnapshot=True
)

waiter = rds.get_waiter('db_instance_available')
waiter.wait(DBInstanceIdentifier=db_id)
# some other operation that expects that DB is up and running.

添加服务生是为了正确等待DB。然而,看起来服务员超时了。

在这种情况下,服务员应该用什么?

尝试设置waiter.config.delay和/或waiter.config.max_attempts

waiter = rds.get_waiter('db_instance_available')
waiter.config.delay = 123 # this is in seconds
waiter.config.max_attempts = 123
waiter.wait(DBInstanceIdentifier=db_id)

waiter = rds.get_waiter('db_instance_available')
waiter.wait(
DBClusterIdentifier=db_id
WaiterConfig={
'Delay': 123,
'MaxAttempts': 123
}
)

WaiterConfig(dict(提供控制参数的字典等待行为。

Delay(integer(介于尝试。默认值:30

MaxAttempts(integer(要进行的最大尝试次数。默认值:60

是否可能是您的服务生实际上正在检查现有数据库,并查看它是否可用,然后才能根据上一个命令更新状态以恢复快照?

最新更新