Я пытаюсь протестировать восстановление экземпляров Neptune из моментального снимка с помощью python (boto3). Короче говоря, мы хотим ежедневно запускать и удалять экземпляр Dev с помощью автоматизации.
При восстановлении мое восстановление, похоже, создает только кластер без создания прикрепленного экземпляра. Я также пытался создать экземпляр после того, как кластер был запущен, и добавить его в кластер, но это тоже не работает. (ссылка: client.create_db_instance)
Мой код работает следующим образом: получает самый последний снимок. Используйте эту переменную для создания кластера, чтобы там были самые последние данные.
import boto3
client = boto3.client('neptune')
response = client.describe_db_cluster_snapshots(
DBClusterIdentifier='neptune',
MaxRecords=100,
IncludeShared=False,
IncludePublic=False
)
snaps = response['DBClusterSnapshots']
snaps.sort(key=lambda c: c['SnapshotCreateTime'], reverse=True)
latest_snapshot = snaps[0]
snapshot_ID = latest_snapshot['DBClusterSnapshotIdentifier']
print("Latest snapshot: " + snapshot_ID)
db_response = client.restore_db_cluster_from_snapshot(
AvailabilityZones=['us-east-1c'],
DBClusterIdentifier='neptune-test',
SnapshotIdentifier=snapshot_ID,
Engine='neptune',
Port=8182,
VpcSecurityGroupIds=['sg-randomString'],
DBSubnetGroupName='default-vpc-groupID'
)
time.sleep(60)
db_instance_response = client.create_db_instance(
DBName='neptune',
DBInstanceIdentifier='brillium-neptune',
DBInstanceClass='db.r4.large',
Engine='neptune',
DBSecurityGroups=[
'sg-string',
],
AvailabilityZone='us-east-1c',
DBSubnetGroupName='default-vpc-string',
BackupRetentionPeriod=7,
Port=8182,
MultiAZ=False,
AutoMinorVersionUpgrade=True,
PubliclyAccessible=False,
DBClusterIdentifier='neptune-test',
StorageEncrypted=True
)
Документация мало чем помогает. Это очень хорошо для предоставления переменных, необходимых для базового создания, но не для фактического экземпляра. Если я попытаюсь создать экземпляр с тем же именем кластера, он либо выдаст ошибку, либо создаст новый кластер с тем же именем, к которому добавлено «-1».