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