#amazon-web-services #lambda #boto3 #amazon-rds
Вопрос:
У меня есть следующий код в моей Лямбде (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. Однако, похоже, у официанта истекает время ожидания.
Каким был бы правильный официант в этом случае?
Ответ №1:
попробуйте установить 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
}
)
Официантконфиг (дикт) Словарь, предоставляющий параметры для управления
поведением в режиме ожидания.Задержка (целое число) Количество времени в секундах для ожидания между попытками. По умолчанию: 30
maxAttempts (целое число) Максимальное количество попыток, которые необходимо предпринять. По умолчанию: 60
Ответ №2:
Может ли быть так, что ваш официант на самом деле проверяет существующую базу данных и видит, что она доступна, прежде чем статус сможет обновиться по предыдущей команде для восстановления моментального снимка?