Настройка возможностей учетной записи Azure Cosmos DB for MongoDB

ПРИМЕНЯЕТСЯ К: Mongodb

Important

Вы хотите перенести существующее приложение MongoDB или использовать функции языка запросов MongoDB (MQL)? Рассмотрим Azure DocumentDB.

Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.

Возможностями здесь называются функции, которые можно добавить в учетную запись API для MongoDB или удалить из нее. Многие из этих функций влияют на поведение учетной записи, поэтому важно полностью учитывать влияние возможности перед включением или отключением. Несколько возможностей задаются в учетных записях API для MongoDB по умолчанию и не могут быть изменены или удалены. Одним из примеров EnableMongo является возможность. В этой статье показано, как включить и отключить возможность.

Предпосылки

Доступные возможности

Capability Description Съемный
DisableRateLimitingResponses Позволяет API Mongo повторять запросы, ограничивающие частоту на стороне сервера, пока не задано max-request-timeoutзначение. Yes
EnableMongoRoleBasedAccessControl Включите поддержку создания пользователей и ролей для собственного управления доступом на основе ролей MongoDB. нет
EnableMongoRetryableWrites Включает поддержку повторных операций записи в учетной записи. Yes
EnableMongo16MBDocumentSupport Обеспечивает поддержку вставки документов размером до 16 МБ. 1 нет
EnableUniqueCompoundNestedDocs Включает поддержку составных и уникальных индексов в вложенных полях, если вложенное поле не является массивом. нет
EnableTtlOnCustomPath Предоставляет возможность задать настраиваемое время жизни (TTL) в любом поле коллекции. Параметр TTL для частичного уникального свойства индекса не поддерживается. 2 нет
EnablePartialUniqueIndex Обеспечивает поддержку уникального частичного индекса, поэтому у вас есть больше гибкости, чтобы указать точно, какие поля в документах требуется индексировать. нет

Замечание

1 Эта возможность не может быть включена в учетных записях Azure Cosmos DB для MongoDB с ключами, управляемыми клиентом (CMK).

Замечание

2 Эта возможность не может быть включена в учетных записях Azure Cosmos DB для MongoDB с непрерывным резервным копированием.

Important

Изменение возможностей с помощью Azure Resource Manager недоступно для учетных записей Azure Cosmos DB для 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
    

    Important

    Список возможностей всегда должен указывать все возможности, которые вы хотите включить, включительно. Сюда входят возможности, которые уже включены для учетной записи, которую вы хотите сохранить. В этом примере возможность EnableMongo уже была включена, поэтому необходимо указать возможности EnableMongo и DisableRateLimitingResponses.

    Tip

    Если вы используете 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"
      }
    ]
    

    Проверьте все возможности, которые в настоящее время заданы. В этом примере задаются две возможности: EnableMongo и DisableRateLimitingResponses.

  2. Удалите одну из возможностей из учетной записи базы данных. Список возможностей должен содержать список ранее включенных возможностей, которые требуется сохранить.

    На вашей учетной записи устанавливаются только явные именованные права. Например, если вы хотите удалить возможность DisableRateLimitingResponses, следует использовать команду az cosmosdb update и перечислить возможность, которую хотите сохранить:

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

    Tip

    Если вы используете PowerShell и при использовании этой команды появится сообщение об ошибке, попробуйте использовать массив PowerShell для перечисления возможностей:

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

Дальнейшие действия