Compartilhar via

配置 Azure Cosmos DB for MongoDB 帐户功能

适用对象: Mongodb

重要

你是否正在寻找一种数据库解决方案,以应对需要高扩展性、99.999% 可用性服务级别协议(SLA)、即时自动扩展和跨多个区域的自动故障转移的场景? 请考虑使用 Azure Cosmos DB for NoSQL

这些功能是可在 API for MongoDB 帐户中添加或删除的功能。 其中许多功能会影响帐户行为,因此在启用或禁用功能之前,请务必充分了解它的影响。 默认情况下,一些功能已在 API for MongoDB 帐户上设置,并且无法更改或删除。 比如说 EnableMongo 功能。 本文演示如何启用和禁用功能。

先决条件

可用功能

能力 说明 可移动
DisableRateLimitingResponses 允许 Mongo API 在服务器端重试速率限制请求,直到达到为 max-request-timeout 设置的值。
EnableMongoRoleBasedAccessControl 支持为原生 MongoDB 基于角色的访问控制创建用户和角色。
EnableMongoRetryableWrites 支持在帐户上进行可重试写入。
EnableMongo16MBDocumentSupport 支持插入大小上限为 16 MB 的文档。 1
EnableUniqueCompoundNestedDocs 支持嵌套字段的复合索引和唯一索引,前提是嵌套字段不是数组。
EnableTtlOnCustomPath 提供对集合中的任一字段设置自定义生存时间 (TTL) 的功能。 不支持在部分唯一索引属性中设置 TTL。 2
EnablePartialUniqueIndex 支持唯一部分索引,使你可以更灵活地指定要为文档中的哪些确切字段编制索引。

注意

1 在具有客户管理的密钥 (CMK) 的 Azure Cosmos DB for MongoDB 帐户中,无法启用此功能。

注意

2 在具有连续备份的 Azure Cosmos DB for MongoDB 帐户中,无法启用此功能。

重要

使用 Azure 资源管理器更改功能不适用于 Azure Cosmos DB for MongoDB 帐户。

启用功能

  1. 可以使用az cosmosdb show检索现有帐户的功能:

    az cosmosdb show \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name>
    

    你应该会看到与此示例输出类似的功能部分:

    "capabilities": [
      {
        "name": "EnableMongo"
      }
    ]
    

    查看默认功能。 在此示例中,唯一设置的功能是 EnableMongo

  2. 在数据库帐户上设置新功能。 功能列表应包括你希望保留的、先前启用的功能列表。

    只会在帐户上设置显式命名的功能。 例如,如果要将 DisableRateLimitingResponses 功能添加到前面的示例,请使用 az cosmosdb update 命令和 --capabilities 参数,并列出要在帐户中拥有的所有功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities EnableMongo DisableRateLimitingResponses
    

    重要

    功能列表必须始终一个不漏地指定要启用的所有功能。 这包括已启用的、您希望保留的帐户的功能。 在此示例中,EnableMongo 功能已启用,因此必须同时指定 EnableMongo 功能和 DisableRateLimitingResponses 功能。

    提示

    如果你使用的是 PowerShell,且当你使用前面的命令时出现了错误信息,不如尝试使用 PowerShell 数组来列出功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities @("EnableMongo","DisableRateLimitingResponses")
    

禁用功能

  1. 使用 az cosmosdb show 检索现有帐户功能:

    az cosmosdb show \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name>
    

    你应该会看到与此示例输出类似的功能部分:

    "capabilities": [
      {
        "name": "EnableMongo"
      },
      {
        "name": "DisableRateLimitingResponses"
      }
    ]
    

    检查当前配置的所有功能。 在此示例中,设置了两个功能:EnableMongoDisableRateLimitingResponses

  2. 从数据库帐户中删除其中一项功能。 功能列表应包括你希望保留的、先前启用的功能列表。

    只会在帐户上设置显式命名的功能。 例如,如果要删除 DisableRateLimitingResponses 功能,你会使用 az cosmosdb update 命令并列出要保留的功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities EnableMongo
    

    提示

    如果你使用的是 PowerShell,且当你使用此命令时出现了错误信息,不如尝试使用 PowerShell 数组来列出功能:

    az cosmosdb update \
        --resource-group <azure_resource_group> \
        --name <azure_cosmos_db_account_name> \
        --capabilities @("EnableMongo")
    

后续步骤