Cosmos DB 是一种分布式、多模型、全球分布式的 NoSQL 数据库服务,旨在为 web、移动、游戏和物联网应用程序提供毫秒级的响应时间和高可用性。ARM(Azure Resource Manager)模板是 Azure 中用于定义部署资源的 JSON 文件。
当您在使用 ARM 模板创建 Cosmos DB 文档集合时,可能会遇到索引被忽略的情况。这通常是由于以下几个原因:
以下是一个简单的 ARM 模板示例,展示了如何正确配置 Cosmos DB 文档集合及其索引策略:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"cosmosDBAccountName": {
"type": "string"
},
"databaseName": {
"type": "string"
},
"collectionName": {
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2021-03-15",
"name": "[parameters('cosmosDBAccountName')]",
"location": "[resourceGroup().location]",
"kind": "GlobalDocumentDB",
"properties": {
"databaseAccountOfferType": "Standard"
}
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/sqlDatabases",
"apiVersion": "2021-03-15",
"name": "[concat(parameters('cosmosDBAccountName'), '/sql/', parameters('databaseName'))]",
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('cosmosDBAccountName'))]"
]
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers",
"apiVersion": "2021-03-15",
"name": "[concat(parameters('cosmosDBAccountName'), '/sql/', parameters('databaseName'), '/', parameters('collectionName'))]",
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts/sqlDatabases', parameters('cosmosDBAccountName'), 'sql/', parameters('databaseName'))]"
],
"properties": {
"resource": {
"id": "[parameters('collectionName')]",
"indexingPolicy": {
"indexingMode": "consistent",
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": []
}
}
}
}
]
}
通过以上步骤,您应该能够解决在使用 ARM 模板创建 Cosmos DB 文档集合时索引被忽略的问题。
领取专属 10元无门槛券
手把手带您无忧上云