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

时间:2019-11-04 11:28:46

标签: azure-java-sdk

这是关于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的任何方法。

1 个答案:

答案 0 :(得分:1)

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

我想到的复杂的解决方法是使用资源部署。在Java SDK中受支持:

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

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

顺便说一句,您可以尝试在Azure门户上创建数据库,然后可以在创建的最后一步下载模板:

enter image description here

相关问题