通过ARM模板获得的宇宙吞吐量的初始值

时间:2019-09-03 20:45:01

标签: azure-cosmosdb arm-template

我正在寻找一种通过ARM模板为cosmosdb数据库或容器设置吞吐量(请求单位)的 initial 值的方法,并将相同的ARM模板用于后续部署。

这里是一个示例:

{
    "type": "Microsoft.DocumentDB/databaseAccounts",
    "apiVersion": "2016-03-31",
    "name": "DBACCOUNTNAME",
    "location": "Canada Central",
    "kind": "GlobalDocumentDB",
    "properties": {
        "consistencyPolicy": {
            "defaultConsistencyLevel": "BoundedStaleness",
            "maxStalenessPrefix": 100,
            "maxIntervalInSeconds": 5
        },
        "databaseAccountOfferType": "Standard",
        "locations": [ { "locationName": "Canada Central" } ],
        "enableAutomaticFailover": false,
        "isVirtualNetworkFilterEnabled": false
    }
},
{
    "type": "Microsoft.DocumentDB/databaseAccounts/apis/databases",
    "apiVersion": "2016-03-31",
    "name": "DBACCOUNTNAME/sql/DBNAME",
    "dependsOn": [
        "[resourceId('Microsoft.DocumentDB/databaseAccounts/', 'DBACCOUNTNAME')]"
    ],
    "properties": {
        "resource": {
            "id": "DBNAME"
        }
    }
},
{
    "type": "Microsoft.DocumentDB/databaseAccounts/apis/databases/containers",
    "apiVersion": "2016-03-31",
    "name": "DBACCOUNTNAME/sql/DBNAME/data",
    "dependsOn": [
    "[resourceId('Microsoft.DocumentDB/databaseAccounts/apis/databases', 'DBACCOUNTNAME', 'sql', 'DBNAME')]"
    ],
    "properties": {
        "resource": {
            "id": "data",
            "partitionKey": {
            "paths": [ "/id" ]
            }
        },
        "options": { "throughput": "2000" }
    }
}

如您在底部所见,在这种情况下,我们的初始吞吐量值为2000。默认值为400。

该ARM模板在以下情况下有效:

  • 这是第一个部署,或者
  • 这是后续部署,并且吞吐量在此期间未发生变化。

在以下情况下,有效:

  • 吞吐量已更改(例如,我们正在基于实时指标对其进行自动缩放)

...

可以使用[reference(..)]获取对当前吞吐量的引用。可以在不更改吞吐量的情况下将其用于后续更新,但不能用于初始创建资源。

...

如何有一个可以在这种情况下重新部署的ARM模板?

1 个答案:

答案 0 :(得分:0)

您无能为力,因为ARM模板并不意味着要这样做,您需要将吞吐量存储在外部某个位置(或使用某种脚本进行检索)并将其作为参数传递给模板。

发生这种情况是因为cosmos RP以一种奇怪的方式处理了这些请求。通常这是可以的(但是它将使您的吞吐量恢复为模板中指定的值)。