使用 SDK 创建具有无服务器层的 Sql Azure 数据库
Create a Sql Azure Database with serverless tier using SDK
目前,我创建数据库并将它们附加到 SQL 弹性池:
database = await sqlServer.Databases.Define(mainDb.DbName).WithExistingElasticPool(pool.Name).CreateAsync();
相反,我想创建层 "General Purpose: Serverless, Gen5, 1 vCore" 的数据库,但我找不到任何提供这种可能性的方法。
此功能仍处于预览阶段,我在论坛上找不到任何关于此的内容。我怎样才能做到这一点?
根据我的测试,我们可以使用下面的c#代码创建"General Purpose: Serverless, Gen5, 1 vCore"数据库
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(client,key,tenant,AzureEnvironment.AzureGlobalCloud);
var azure = Azure.Configure().Authenticate(credentials).WithSubscription(SubscriptionId);
var sqlserver=azure.SqlServers.GetById("/subscriptions/<your subscrption id>/resourceGroups/<your resource group name>/providers/Microsoft.Sql/servers/<your server name>");
var database = sqlserver.Databases.Define("test").WithEdition("GeneralPurpose").WithServiceObjective("GP_S_Gen5_1").Create();
Console.WriteLine(database.ServiceLevelObjective);
Console.WriteLine(database.Edition);
Console.WriteLine(database.Name);
Console.ReadLine();
请参考本教程:Create a new elastic database pool with C#。
提供了关于Create a new database in a pool的代码示例:
创建一个DataBaseCreateorUpdateProperties
实例,并设置新数据库的属性。然后使用资源组、服务器名称和新数据库名称调用 CreateOrUpdate
方法。
// Create a database: configure create or update parameters and properties explicitly
DatabaseCreateOrUpdateParameters newPooledDatabaseParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentServer.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = 268435456000, // 250 GB,
Collation = "SQL_Latin1_General_CP1_CI_AS"
}
};
var poolDbResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database2", newPooledDatabaseParameters);
请尝试将“standard
”替换为价格等级“General Purpose: Serverless, Gen5, 1 vCore
”。
希望对您有所帮助。
作为对@Jim Xu
已接受答案的补充,API 已更改。
var database = sqlserver.Databases.Define("test").WithEdition("GeneralPurpose").WithServiceObjective("GP_S_Gen5_1").Create();
WithEdition
现在是 DatabaseEdition
版本类型,WithServiceObjective
现在是 ServiceObjectiveName
。这两个都是带有版本类型列表的混乱字符串枚举。他们都接受 .Parse()
方法。所以现在该行应该是:
var database = sqlserver.Databases.Define("test")
.WithEdition(**Database.Edition.Parse("GeneralPurpose")**)
.WithServiceObjective(**ServiceObjectiveName.Parse("GP_S_Gen5_1")**)
.Create();
目前,我创建数据库并将它们附加到 SQL 弹性池:
database = await sqlServer.Databases.Define(mainDb.DbName).WithExistingElasticPool(pool.Name).CreateAsync();
相反,我想创建层 "General Purpose: Serverless, Gen5, 1 vCore" 的数据库,但我找不到任何提供这种可能性的方法。
此功能仍处于预览阶段,我在论坛上找不到任何关于此的内容。我怎样才能做到这一点?
根据我的测试,我们可以使用下面的c#代码创建"General Purpose: Serverless, Gen5, 1 vCore"数据库
var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(client,key,tenant,AzureEnvironment.AzureGlobalCloud);
var azure = Azure.Configure().Authenticate(credentials).WithSubscription(SubscriptionId);
var sqlserver=azure.SqlServers.GetById("/subscriptions/<your subscrption id>/resourceGroups/<your resource group name>/providers/Microsoft.Sql/servers/<your server name>");
var database = sqlserver.Databases.Define("test").WithEdition("GeneralPurpose").WithServiceObjective("GP_S_Gen5_1").Create();
Console.WriteLine(database.ServiceLevelObjective);
Console.WriteLine(database.Edition);
Console.WriteLine(database.Name);
Console.ReadLine();
请参考本教程:Create a new elastic database pool with C#。
提供了关于Create a new database in a pool的代码示例:
创建一个DataBaseCreateorUpdateProperties
实例,并设置新数据库的属性。然后使用资源组、服务器名称和新数据库名称调用 CreateOrUpdate
方法。
// Create a database: configure create or update parameters and properties explicitly
DatabaseCreateOrUpdateParameters newPooledDatabaseParameters = new DatabaseCreateOrUpdateParameters()
{
Location = currentServer.Location,
Properties = new DatabaseCreateOrUpdateProperties()
{
Edition = "Standard",
RequestedServiceObjectiveName = "ElasticPool",
ElasticPoolName = "ElasticPool1",
MaxSizeBytes = 268435456000, // 250 GB,
Collation = "SQL_Latin1_General_CP1_CI_AS"
}
};
var poolDbResponse = sqlClient.Databases.CreateOrUpdate("resourcegroup-name", "server-name", "Database2", newPooledDatabaseParameters);
请尝试将“standard
”替换为价格等级“General Purpose: Serverless, Gen5, 1 vCore
”。
希望对您有所帮助。
作为对@Jim Xu
已接受答案的补充,API 已更改。
var database = sqlserver.Databases.Define("test").WithEdition("GeneralPurpose").WithServiceObjective("GP_S_Gen5_1").Create();
WithEdition
现在是 DatabaseEdition
版本类型,WithServiceObjective
现在是 ServiceObjectiveName
。这两个都是带有版本类型列表的混乱字符串枚举。他们都接受 .Parse()
方法。所以现在该行应该是:
var database = sqlserver.Databases.Define("test")
.WithEdition(**Database.Edition.Parse("GeneralPurpose")**)
.WithServiceObjective(**ServiceObjectiveName.Parse("GP_S_Gen5_1")**)
.Create();