private async Task <DBInstance> RestoreFromSnapshot(DBInstance instance, DBSnapshot snapshot) { _logger.Info("Creating new instance from snapshot."); RestoreDBInstanceFromDBSnapshotRequest restoreRequest = new RestoreDBInstanceFromDBSnapshotRequest() { DBSnapshotIdentifier = snapshot.DBSnapshotIdentifier, LicenseModel = instance.LicenseModel, DBInstanceClass = instance.DBInstanceClass, MultiAZ = instance.MultiAZ, StorageType = instance.StorageType, DBInstanceIdentifier = instance.DBInstanceIdentifier, DBSubnetGroupName = instance.DBSubnetGroup.DBSubnetGroupName, AvailabilityZone = instance.AvailabilityZone, AutoMinorVersionUpgrade = instance.AutoMinorVersionUpgrade, VpcSecurityGroupIds = instance.VpcSecurityGroups.Select(x => x.VpcSecurityGroupId).ToList() }; var restoreResponse = await _rdsClient.RestoreDBInstanceFromDBSnapshotAsync(restoreRequest); await WaitForDBToBeAvailable(restoreResponse.DBInstance.DbiResourceId); _logger.Info("Creation Successful."); return(restoreResponse.DBInstance); }
public async Task <string> RestoreDBFromSnapShotAsync() { try { DescribeDBSnapshotsRequest dBSnapshotsRequest = new DescribeDBSnapshotsRequest(); dBSnapshotsRequest.DBSnapshotIdentifier = "rds-jaguar"; var response = await amazonRDSClient.DescribeDBSnapshotsAsync(dBSnapshotsRequest); RestoreDBInstanceFromDBSnapshotRequest restoreDBInstance = new RestoreDBInstanceFromDBSnapshotRequest(); restoreDBInstance.DBSnapshotIdentifier = "rds-jaguar"; restoreDBInstance.AutoMinorVersionUpgrade = false; restoreDBInstance.CopyTagsToSnapshot = true; restoreDBInstance.DBInstanceIdentifier = response.DBSnapshots[0].DBInstanceIdentifier; //restoreDBInstance.DBName="" //var final = await amazonRDSClient.RestoreDBInstanceFromDBSnapshotAsync(restoreDBInstance); return("String"); } catch (Exception ex) { throw ex; } }
private static IDictionary <string, string> ConvertRestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest request) { IDictionary <string, string> dictionary = new Dictionary <string, string>(); dictionary["Action"] = "RestoreDBInstanceFromDBSnapshot"; if (request.IsSetDBInstanceIdentifier()) { dictionary["DBInstanceIdentifier"] = request.DBInstanceIdentifier; } if (request.IsSetDBSnapshotIdentifier()) { dictionary["DBSnapshotIdentifier"] = request.DBSnapshotIdentifier; } if (request.IsSetDBInstanceClass()) { dictionary["DBInstanceClass"] = request.DBInstanceClass; } if (request.IsSetPort()) { dictionary["Port"] = request.Port.ToString(); } if (request.IsSetAvailabilityZone()) { dictionary["AvailabilityZone"] = request.AvailabilityZone; } return(dictionary); }
public RestoreDBInstanceFromDBSnapshotResponse RestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest request) { return(this.Invoke <RestoreDBInstanceFromDBSnapshotResponse>(ConvertRestoreDBInstanceFromDBSnapshot(request))); }
/// <summary> /// <para> Restores a DB Instance to an arbitrary point-in-time. Users can restore to any point in time before the latestRestorableTime for up /// to backupRetentionPeriod days. The target database is created from the source database with the same configuration as the original database /// except that the DB instance is created with the default DB security group. </para> /// </summary> /// /// <param name="restoreDBInstanceFromDBSnapshotRequest">Container for the necessary parameters to execute the RestoreDBInstanceFromDBSnapshot /// service method on AmazonRDS.</param> /// /// <returns>The response from the RestoreDBInstanceFromDBSnapshot service method, as returned by AmazonRDS.</returns> /// /// <exception cref="InstanceQuotaExceededException"/> /// <exception cref="DBInstanceAlreadyExistsException"/> /// <exception cref="StorageQuotaExceededException"/> /// <exception cref="InvalidDBSnapshotStateException"/> /// <exception cref="InsufficientDBInstanceCapacityException"/> /// <exception cref="DBSnapshotNotFoundException"/> public RestoreDBInstanceFromDBSnapshotResponse RestoreDBInstanceFromDBSnapshot(RestoreDBInstanceFromDBSnapshotRequest restoreDBInstanceFromDBSnapshotRequest) { IRequest <RestoreDBInstanceFromDBSnapshotRequest> request = new RestoreDBInstanceFromDBSnapshotRequestMarshaller().Marshall(restoreDBInstanceFromDBSnapshotRequest); RestoreDBInstanceFromDBSnapshotResponse response = Invoke <RestoreDBInstanceFromDBSnapshotRequest, RestoreDBInstanceFromDBSnapshotResponse> (request, this.signer, RestoreDBInstanceFromDBSnapshotResponseUnmarshaller.GetInstance()); return(response); }