使用 SqlDatabase.createAsync() 创建时设置数据库属性

Set Database Properties when creating it with SqlDatabase.createAsync()

这是关于 Java 的 Azure 管理库的问题。

首先,一些背景:

Azure 管理 REST API 在 createorupdate 定义中提到了创建数据库和设置不同数据库属性的能力(页面示例):

{
  "location": "southeastasia",
  "sku": {
    "name": "S0",
    "tier": "Standard"
  },
  "properties": {
    "createMode": "Default",
    "collation": "SQL_Latin1_General_CP1_CI_AS",
    "maxSizeBytes": 1073741824
  }
}

我正在寻找如何执行来自 Azure Management Libraries for Java 的类似请求。

到目前为止,我已经找到了如何设置 "sku" 部分。这是通过使用适当的 ServiceObjectiveName 对象来完成的:

final SqlServer sqlServer = ...get SQL server object ...;

final Creatable<SqlDatabase> myDb = sqlServer.databases()
            .define(targetDBName)
            .withServiceObjective(ServiceObjectiveName.fromString("S0"));
...

myDb.createAsync(...); // create the db with sku S0

但我不知道如何设置属性。出于我的目的,我需要设置一些与示例中不同的属性。即,具体的 properties.maxSizeBytesproperties.autoPauseDelay

我什至找到了 .withMaxSizeBytes() 方法 here 但它被标记为已弃用,没有任何解释。

我还没有找到任何方法来设置 autoPauseDelay

通过挖掘 azure-sdk-for-java,很抱歉,我没有找到任何设置这些属性的方法。

我想到的复杂解决方法是使用资源部署。 java sdk:

支持
azure.deployments().define(deploymentName)
        .withExistingResourceGroup(rgName)
        .withTemplate(templateJson)
        .withParameters("{}")
        .withMode(DeploymentMode.INCREMENTAL)
        .create();

下面是一个示例,可以为您提供一些指导:DeployUsingARMTemplate

对了,你可以尝试在Azure portal上创建一个数据库,然后在创建的最后一步下载模板: