я использую эта функция 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.