Как установить цель на уровне сервера (ценовая категория) для существующей базы данных в Azure Fluent API для SQL Server?

Как установить цель на уровне сервера (ценовая категория) для существующей базы данных SQL Azure в Azure Fluent API для SQL Server?

Я использую Microsoft.Azure.Management.Sql.Fluent версии 1.10.0, которая является последней на сегодняшний день.

Этот образец кода, предоставленный Microsoft, создает базу данных Azure SQL, а затем устанавливает ее уровень сервера.

        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 по Azure Fluent API для SQL Server очень скудный.


person MindModel    schedule 19.05.2018    source источник


Ответы (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

введите здесь описание изображения

person Tom Sun - MSFT    schedule 23.05.2018