Как установить целевой уровень на уровне сервера (уровень цен) для существующей базы данных в свободном API Azure для SQL Server?
Как установить целевой уровень сервера (уровень цен) для существующей базы данных SQL Azure в свободном API Azure для SQL Server?
Я использую Microsoft.Azure.Management.Sql.Fluent, версия 1.10.0, которая является последней на сегодняшний день.
Этот пример кода, предоставленный Microsoft, создает базу данных SQL Azure, а затем устанавливает уровень ее сервера
var azCreds = SdkContext.AzureCredentialsFactory.FromFile(filePath);
var azure = Azure.Configure()
.Authenticate(azCreds)
.WithSubscription("mysubscriptionid");
var sqlServer =
azure.SqlServers.Define("existingsqlserverid")
.WithRegion(Region.USEast)
.WithExistingResourceGroup("Default-SQL-EastUS")
.WithAdministratorLogin("mylogin")
.WithAdministratorPassword("mypassword")
.Create()
.Databases
.Define("NewDbName")
.Create()
.Update()
.WithEdition(DatabaseEditions.Standard)
.WithServiceObjective(ServiceObjectiveName.S1)
.Apply();
Как мне установить уровень обслуживания существующей БД?
Самое близкое, что я могу получить, это
.WithAdministratorPassword("mypassword")
.DefineDatabase("OldDbName")
.WithEdition(DatabaseEditions.Standard)
.WithServiceObjective(ServiceObjectiveName.S2);
который не генерирует исключения, но и ничего не делает. Уровень обслуживания БД не меняется.
Такое ощущение, что мне нужно Apply()
здесь, но это не вариант.
Документ Microsoft по API Azure Fluent для SQL Server очень скудный.
1 ответ
Такое ощущение, что мне нужно Apply() здесь, но это не вариант.
Вы почти получаете ответ. На основании моего теста, это нужно .Apply()
,
Я проверяю это с помощью следующего кода. А также проверьте это на лазурном портале.
var credFile = @"file path"; // example: c:\tom\auth.txt
var resourceGroup = "resource group name";
var azureSQLName = "Azure sql server name"; //just name of the Azure sql server such as tomdemo
var databaseName = "database name";
var credentials = SdkContext.AzureCredentialsFactory.FromFile(credFile);
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
var updateAzureDatabasePriceTier = azure
.SqlServers
.GetByResourceGroup(resourceGroup, azureSQLName)
.Databases.Get(databaseName)
.Update()
.WithEdition(DatabaseEditions.Standard)
.WithServiceObjective(ServiceObjectiveName.S0)
.Apply();
Проверьте с портала Azure