我使用this ARM模板创建了Cosmos Db帐户,数据库和容器。正在通过Azure DevOps发布管道进行部署。
我使用this ARM模板来调整数据库吞吐量。它也在Release管道中并且正在运行。
当前,吞吐量是在数据库级别提供的,并在所有容器之间共享。如何在容器级别提供吞吐量?我尝试运行this ARM模板来更新容器级别的吞吐量。看来,一旦在数据库级别配置了共享吞吐量,就无法在容器级别配置吞吐量。
我找到了this参考文档,但未列出吞吐量。我是否缺少某些明显的东西,或者所需的功能尚未实现?
更新: 尝试使用上述模板更新容器时,我得到以下信息:
2019-05-29T20:25:10.5166366Z There were errors in your deployment. Error code: DeploymentFailed.
2019-05-29T20:25:10.5236514Z ##[error]At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-debug for usage details.
2019-05-29T20:25:10.5246027Z ##[error]Details:
2019-05-29T20:25:10.5246412Z ##[error]NotFound: {
"code": "NotFound",
"message": "Entity with the specified id does not exist in the system.\r\nActivityId: 7ba84...b52b2, Microsoft.Azure.Documents.Common/2.4.0.0"
} undefined
2019-05-29T20:25:10.5246730Z ##[error]Task failed while creating or updating the template deployment.
答案 0 :(得分:3)
我也遇到了相同的错误:
"code": "NotFound",
"message": "Entity with the specified id does not exist in the system.
我正在通过DevOps管道部署ARM模板,以更改Azure中现有资源的配置。
现有资源在容器/集合级别定义了专用吞吐量,而我的ARM模板正试图在数据库级别定义吞吐量...
一旦调整了我的部署管道,就可以工作了。
以下是有关吞吐量配置修复的一些信息:https://github.com/MicrosoftDocs/azure-docs/issues/30853
答案 1 :(得分:0)
我非常确定ARM不可能做到这一点,因为存在以下API参考,而容器上没有吞吐量:https://docs.microsoft.com/en-us/rest/api/cosmos-db-resource-provider/databaseaccounts/createupdatesqlcontainer#definitions
答案 2 :(得分:0)
我认为您首先必须创建具有专用吞吐量的容器。我没有看到任何有关将容器从共享吞吐量更改为专用吞吐量的文档。在Microsoft documentation中,该示例正在创建具有共享吞吐量和专用吞吐量的容器。
设置数据库和容器的吞吐量
您可以组合两个模型。允许在数据库和容器上供应吞吐量。以下示例显示如何在Azure Cosmos数据库和容器上设置吞吐量:
- 您可以创建预配置吞吐量为“ K”个RU的名为Z的Azure Cosmos数据库。
- 接下来,在数据库中创建五个名为A,B,C,D和E的容器。创建容器B时,请确保启用“为此容器提供专用吞吐量”选项,并在此容器上显式配置所提供吞吐量的“ P”个RU。请注意,只有在创建数据库和容器时,才能配置共享吞吐量和专用吞吐量。
- “ K” RU吞吐量在四个容器A,C,D和E之间共享。A,C,D或E可用的吞吐量的确切数量有所不同。每个容器的吞吐量都没有SLA。
- 保证容器B始终获得“ P”个RU吞吐量。它由SLA支持。
在prereq的子文件夹中有一个101-cosmosdb-sql-container-ru-update ARM模板。在prereq版本中,容器在创建容器时设置了throughput
属性。创建具有专用吞吐量的容器后,更新模板可以正常工作。我已经尝试过并验证了它的有效性。
{
"type": "Microsoft.DocumentDB/databaseAccounts/apis/databases",
"name": "[concat(variables('accountName'), '/sql/', variables('databaseName'))]",
"apiVersion": "2016-03-31",
"dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/', variables('accountName'))]" ],
"properties":{
"resource":{
"id": "[variables('databaseName')]"
},
"options": { "throughput": "[variables('databaseThroughput')]" }
}
},
{
"type": "Microsoft.DocumentDb/databaseAccounts/apis/databases/containers",
"name": "[concat(variables('accountName'), '/sql/', variables('databaseName'), '/', variables('containerName'))]",
"apiVersion": "2016-03-31",
"dependsOn": [ "[resourceId('Microsoft.DocumentDB/databaseAccounts/apis/databases', variables('accountName'), 'sql', variables('databaseName'))]" ],
"properties":
{
"resource":{
"id": "[variables('containerName')]",
"partitionKey": {
"paths": [
"/MyPartitionKey1"
],
"kind": "Hash"
}
},
"options": { "throughput": "[variables('containerThroughput')]" }
}
}