Назад | Перейти на главную страницу

AWS RDS .NET SDK ModifyDBInstance не работает для ядра SQL Server

я использую эта функция AWS .Net SDK для изменения экземпляра базы данных SQL Server. Я НЕ пытаюсь обновить емкость хранилища, поскольку знаю, что это невозможно сделать на SQL Server. Однако любой вызов для изменения любого другого поля завершается ошибкой со следующей ошибкой:

AllocatedStorage нельзя изменить для инстансов БД с этим движком: sqlserver-ex

Я даже не устанавливаю свойство AllocatedStorage для объекта ModifyDBInstanceRequest, но по умолчанию оно равно 0, поскольку имеет тип int.

Я могу успешно изменить движок базы данных MySQL с помощью той же функции.

Вот код, который я использую.

ModifyDBInstanceRequest request = new ModifyDBInstanceRequest();
if (storageAllocation.HasValue) { request.AllocatedStorage = (int)storageAllocation; }
request.MasterUserPassword = masterUserPassword;
//all the other request values...
ModifyDBInstanceResponse response = ConnectionCache.GetRDSClient(awsCredential).ModifyDBInstance(request);

«Зрителю» объекта запроса, AllocatedStorage по умолчанию может показаться равным 0, но внутри установлено значение false. Это означает, что в структуре он 0, но он не будет отправлен во время запроса.

Даже если вы не меняете выделенное хранилище, если вы устанавливаете AllocatedStorage значение, SDK интерпретирует это как попытку изменения и завершится ошибкой.

Вы должны полностью избегать установки AllocatedStorage для любого значения, даже для значения, которое соответствует текущему выделенному хранилищу в вашем экземпляре RDS.