我正在使用.net SDK的azure库,并遇到了一个问题。
如果DatabaseEdition是Hyperscale,则ServiceObjectiveName的可用选项是什么?
当我创建超大规模数据库时,我相信ServiceObjectiveName的默认值为Gen4。有没有办法指定Gen5和内核数量?
我找到了ServiceObjectiveNames列表,但是似乎没有一个与Hyperscale值相关。 https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.management.sql.models.serviceobjectivename?view=azure-dotnet
答案 0 :(得分:1)
根据我的测试,如果我们使用Azure Management Libraries for .NET创建Hyperscale Gen5数据库,则可以使用方法ServiceObjectiveName.Parse("")
指定Gen5和内核数。
例如
如果我们使用ServiceObjectiveName.Parse("HS_Gen5_2")
,则意味着该数据库是Hyperscale:Gen5,2个vCore。
详细的ste骨如下:
az ad sp create-for-rbac --name ServicePrincipalName --role contributor
var tenantId = "<your tenant id>";
var clientId = "<your sp app id>";
var clientSecret = <your sp password>;
var SubscriptionId = "<your subscription id>";
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(
clientId,
clientSecret,
tenantId,
AzureEnvironment.AzureGlobalCloud);
var azure = Microsoft.Azure.Management.Fluent.Azure.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithSubscription(SubscriptionId);
var sqlServer = azure.SqlServers.GetByResourceGroup("test", "testsql07");
Console.WriteLine(sqlServer.Name);
var database = await sqlServer.Databases.Define("test1")
.WithEdition(DatabaseEdition.Hyperscale)
.WithServiceObjective(ServiceObjectiveName.Parse("HS_Gen5_2"))
.CreateAsync();
Console.WriteLine(database.Edition.Value);
Console.WriteLine(database.RequestedServiceObjectiveName.Value);