Поделиться через


Подключение к Azure DocumentDB с помощью портала Azure

Оболочка MongoDB (mongosh) — это среда JavaScript и Node.js для взаимодействия с развертываниями MongoDB. Это популярное средство сообщества для тестирования запросов и взаимодействия с данными в кластере Azure DocumentDB. Портал Azure содержит несколько средств для запроса данных MongoDB, включая Azure Cloud Shell. Azure Cloud Shell — это интерактивный, прошедший проверку подлинности, доступный в браузере терминал для управления ресурсами Azure. В этой статье объясняется, как подключиться к кластеру Azure DocumentDB с помощью MongoDB Shell в Azure Cloud Shell.

Предпосылки

  • Существующий кластер Azure DocumentDB

  • Правила брандмауэра, позволяющие клиентам в сетях подключаться к кластеру. Дополнительные сведения см. в разделе "Настройка брандмауэра".

  • (Необязательно) Эти предварительные требования требуются только в том случае, если вы используете Azure Cloud Shell в виртуальной сети, которая одинакова или одноранговая с Azure DocumentDB.

    • Одна или несколько существующих виртуальных сетей Azure с подсетями для развертывания Azure Cloud Shell и Azure DocumentDB.

    • Частная конечная точка для кластера Azure DocumentDB. Дополнительные сведения см. в разделе "Настройка приватного канала".

    • Azure Cloud Shell, развернутая в той же или одноранговой виртуальной сети с подключением к частной конечной точке Azure DocumentDB. Дополнительные сведения см. в статье о развертывании Cloud Shell в виртуальной сети.

Включение доступа к кластеру из Azure Cloud Shell

Сначала убедитесь, что Azure Cloud Shell может получить доступ к кластеру Azure DocumentDB, разрешая ip-адреса в брандмауэре.

  1. Войдите на портал Azure (https://portal.azure.com).

  2. Перейдите к кластеру Azure DocumentDB.

  3. Выберите сеть в меню навигации.

  4. На странице "Сеть " в разделе "Общедоступный доступ " выберите параметр "+ Добавить IP-адреса Azure Cloud Shell ", чтобы автоматически добавить текущий IP-адрес в разрешенный список.

  5. Выберите Сохранить, чтобы применить изменения.

Замечание

Чтобы обеспечить подключение, убедитесь, что определенные IP-адреса для вашего региона разрешены. Дополнительные сведения см. в IP-адреса для Azure DocumentDB.

Подключение, используя Azure Cloud Shell из раздела 'Быстрый старт'

Чтобы подключиться непосредственно к Azure DocumentDB с помощью MongoDB Shell, воспользуйтесь интерфейсом быстрого запуска на странице ресурса на портале Azure.

  1. На странице ресурсов кластера выберите "Быстрый запуск" (предварительная версия) в меню навигации.

  2. Затем выберите "Открыть оболочку MongoDB".

  3. Подождите, пока не запустится оболочка среды MongoDB.

  4. Как только среда будет готова, введите Y, для принятия уведомления.

    Замечание

    Если вы столкнулись с проблемой подключения с помощью MongoDB Shell после принятия уведомления, убедитесь, что Azure Cloud Shell имеет доступ к кластеру.

  5. Теперь введите пароль для подключения кластера к Cloud Shell.

Получение учетных данных кластера

Получите строку подключения, необходимую для подключения к этому кластеру.

  1. Войдите на портал Azure (https://portal.azure.com).

  2. Перейдите к существующему кластеру Azure DocumentDB.

Получите учетные данные, используемые для подключения к кластеру.

  1. На странице кластера выберите параметр "Строки подключения " в меню ресурсов.

  2. В разделе "Строки подключения" скопируйте или запишите значение из поля строки подключения .

Снимок экрана: опция строк подключения.

Это важно

Строка подключения на портале не включает значение пароля. Вы должны заменить плейсхолдер <password> на учетные данные, введенные при создании кластера, или ввести пароль в интерактивном режиме.

Настройка MongoDB Shell в Azure Cloud Shell вручную

Установите клиент MongoDB Shell (mongosh) в экземпляр Azure Cloud Shell с помощью диспетчера пакетов узлов (npm).

  1. Откройте Azure Cloud Shell, настроенную с помощью среды сценариев Bash.

  2. Установите версию 1 оболочки MongoDB локально в каталоге пользователя.

    npm install mongosh@1
    
  3. Дождитесь завершения установки.

  4. Убедитесь, что установка выполнена успешно, получив версию mongosh средства.

    npx mongosh --version
    

Подключение к кластеру

Подключитесь к кластеру с помощью оболочки MongoDB со строкой подключения, которая не содержит пароль. Используйте интерактивный запрос пароля, чтобы ввести пароль в рамках шагов подключения.

  1. Подключитесь, введя пароль в командной строке MongoDB Shell. Для этого шага используйте строку подключения без пароля.

    npx mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  2. После предоставления пароля и успешной проверки подлинности обратите внимание на предупреждение, которое появится.

    ------
       Warning: Non-Genuine MongoDB Detected
       This server or service appears to be an emulation of MongoDB rather than an official MongoDB product.
    ------
    

    Подсказка

    Это предупреждение можно проигнорировать. Это предупреждение создается, так как строка подключения содержит cosmos.azure. Azure DocumentDB — это собственная платформа Azure как услуга (PaaS).

Выполнение тестовых запросов

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

  1. Проверьте состояние подключения, выполнив connectionStatus команду.

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. Список баз данных в кластере.

    show dbs
    
  3. Переключитесь в определенную базу данных. Замените <database-name> заполнитель именем любой базы данных в кластере.

    use <database-name>
    

    Подсказка

    Например, если имя базы данных равно inventory, то команда будет use inventory.

  4. Вывод списка коллекций в базе данных.

    show collections
    
  5. Найдите первые пять элементов в определенной коллекции. Замените заполнитель <collection-name> на имя коллекции в вашем кластере.

    db.<collection-name>.find().limit(5)
    

    Подсказка

    Например, если имя коллекции — equipment, то команда будет db.equipment.find().limit(5).