Как запланировать моментальный снимок RDS и восстановить в том же сценарии - PullRequest
0 голосов
/ 01 февраля 2020

, поэтому я планирую задание AWS python (через AWS Glue Python shell), которое должно клонировать базу данных MySQL RDS (лучший способ сделать снимок и восстановить?) И выполнить sql запросов к базе данных. У меня есть библиотека boto3 в оболочке Python и библиотека SQL Python, которую я загрузил. У меня есть этот код в настоящее время

import boto3
client = boto3.client('rds')
# Create a snapshot of the database
snapshot_response = client.create_db_snapshot(
    DBSnapshotIdentifier='snapshot-identifier',
    DBInstanceIdentifier='instance-db',
)

# Restore db from snapshot
restore_response = client.restore_db_instance_from_db_snapshot(
    DBInstanceIdentifier = 'restored-db',
    DBSnapshotIdentifier = 'snapshot-identifier',
)

# Code that will perform sql queries on the restored-db database.

Однако, client.restore_db_instance_from_db_snapshot не удается, потому что он говорит, что снимок создается. Итак, я понимаю, что это означает, что эти вызовы являются асинхронными. Но я не уверен, как заставить это восстановление снимка работать (или сделать их синхронными - не очень хорошая идея?) Или каким-либо другим способом. Заранее спасибо за помощь:).

1 Ответ

1 голос
/ 01 февраля 2020

Вы можете использовать официанта :

waiter = client.get_waiter('db_cluster_snapshot_available')

Опросы RDS.Client.describe_db_cluster_snapshots() каждые 30 секунд до достижения успешного состояния. Ошибка возвращается после 60 неудачных проверок.

См .: class RDS.Waiter.DBClusterSnapshotAvailable

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...