我有一个从以前的快照启动亚马逊 RDS 的脚本。现在我必须用 Java API 来实现这个功能。
我运行的脚本是:
rds-restore-db-instance-from-db-snapshot $RDS_DEV --db-snapshot-identifier $SNAP --db-subnet-group-name $SUBNET_GROUP --region $REGION
echo sleep $TIME
所以,在那之后我睡了一段时间,然后分配正确的安全组和参数组:
rds-modify-db-instance $RDS_DEV --db-security-groups $SEC_GROUP --db-parameter-group-name $PARAM_GROUP --apply-immediately --region $REGION
然后我重新启动实例。
在我的 API 实现中,我创建了这个方法来从快照中恢复 RDS:
public void restoreDBSnapshot(String rdsDev, String snapshotId,
String subnetGroup, String availabilityZone) {
RestoreDBInstanceFromDBSnapshotRequest restoreDBInstanceRequest = new RestoreDBInstanceFromDBSnapshotRequest();
restoreDBInstanceRequest.setDBSnapshotIdentifier(snapshotId);
restoreDBInstanceRequest.setDBName(rdsDev);
restoreDBInstanceRequest.setDBSubnetGroupName(subnetGroup);
restoreDBInstanceRequest.setAvailabilityZone(availabilityZone);
LOG.info("Restoring RDS from backup snapshot");
this.rds.restoreDBInstanceFromDBSnapshot(restoreDBInstanceRequest);
}
但我不想让我的应用程序休眠等待 RDS 启动,然后修改 securityGroup 和 parameterGroupName 用
修改DBInstanceRequest
在创建阶段有解决方案吗?