使用Terraform配置Azure Cosmos DB MongoDB集合自动缩放时,shard_key设为null失败的问题求助
解决Terraform创建Azure Cosmos DB Mongo集合时无shard_key启用自动缩放的问题
我明白你遇到的矛盾点:Azure门户允许无分片键(shard_key为null)的集合启用自动缩放,但Terraform里显式设shard_key = null却会报错。其实这个问题可以通过一个简单的调整解决——不要显式指定shard_key参数。
修改后的Terraform配置
resource "azurerm_cosmosdb_mongo_collection" "collections" { name = "dbCollName" resource_group_name = azurerm_cosmosdb_account.cosmosdb.resource_group_name account_name = local.account_name database_name = "dbName" autoscale_settings = { max_throughput = 4000 } }
方案原理
- Terraform的
azurerm_cosmosdb_mongo_collection资源中,shard_key是可选字段。当你不指定它时,Terraform不会向Azure API传递分片键相关配置,这和门户中“无分片键”的状态完全匹配。 - 显式设置
shard_key = null会触发Terraform的Schema校验失败,因为该字段在资源定义中并未被标记为可接受null值,这和Azure门户的API处理逻辑存在差异。
额外验证方式
如果你已经通过门户创建了符合需求的集合,可以用terraform import命令导入该资源,然后查看生成的Terraform状态文件,会发现其中并没有shard_key字段,这也能验证我们的配置方式是符合Azure实际状态的。
内容的提问来源于stack exchange,提问作者prakashrajansakthivel
相关产品推荐
相关产品推荐

