You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bicep创建Azure Cosmos DB for MongoDB时遇SQL API不支持错误

解决Azure Cosmos DB for MongoDB账户创建库/容器时的API不支持错误

这个错误的核心原因很明确:你创建数据库或容器时,用了SQL API专属的Bicep资源类型,但你的Cosmos账户是MongoDB API类型的,两者完全不兼容,所以会抛出“SQL请求不被支持”的提示。

用对MongoDB API对应的资源类型

针对MongoDB类型的Cosmos账户,必须用以下Bicep资源类型来创建库和容器:

  • 数据库:Microsoft.DocumentDB/databaseAccounts/mongodbDatabases
  • 容器(集合):Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections

修正后的完整示例代码

1. 创建MongoDB API的Cosmos账户

resource cosmosAccount 'Microsoft.DocumentDB/databaseAccounts@2023-04-15' = {
  name: 'your-cosmos-account'
  location: resourceGroup().location
  properties: {
    databaseAccountOfferType: 'Standard'
    locations: [
      {
        locationName: resourceGroup().location
        failoverPriority: 0
      }
    ]
    apiProperties: {
      serverVersion: '4.0' // 可根据需求选3.6/4.0/4.2/5.0版本
    }
  }
}

2. 创建MongoDB数据库

resource mongoDb 'Microsoft.DocumentDB/databaseAccounts/mongodbDatabases@2023-04-15' = {
  parent: cosmosAccount
  name: 'mongo-demo-db'
  properties: {
    resource: {
      id: 'mongo-demo-db'
    }
    options: {
      throughput: 400 // 固定吞吐量,也可以换成自动缩放配置
    }
  }
}

3. 创建MongoDB集合(容器)

resource mongoCollection 'Microsoft.DocumentDB/databaseAccounts/mongodbDatabases/collections@2023-04-15' = {
  parent: mongoDb
  name: 'demo-collection'
  properties: {
    resource: {
      id: 'demo-collection'
      shardKey: {
        'user_id': 'Hash' // 按需设置分片键,无分片需求可省略
      }
      indexes: [
        {
          key: {
            keys: ['_id']
          }
        }
      ]
    }
    options: {
      throughput: 400
    }
  }
}

额外注意事项

  • 绝对不能用sqlDatabases或sqlContainers这类SQL API的资源类型,它们只适用于SQL版Cosmos账户。
  • 确认账户的apiProperties.serverVersion已经正确配置,确保账户确实是MongoDB API类型。
  • 资源的父子关系要对应:数据库必须挂在MongoDB账户下,容器必须挂在对应的MongoDB数据库下。

内容的提问来源于stack exchange,提问作者chandu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:22:18