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


Добавление Azure Cosmos DB в приложение с помощью подключенных служб Visual Studio

С помощью Visual Studio можно подключить любой из следующих элементов к Azure Cosmos DB, используя функцию подключенных служб (Connected Services):

  • Консольное приложение .NET Framework
  • ASP.NET Model-View-Controller (MVC) (.NET Framework)
  • ASP.NET Core
  • .NET Core (включая консольное приложение, WPF, Windows Forms, библиотеку классов)
  • Рабочая роль .NET Core
  • Функции Azure
  • Приложение универсальной платформы Windows
  • Кордова

Функция подключенной службы добавляет все необходимые ссылки и код подключения в проект и изменяет файлы конфигурации соответствующим образом.

Необходимые условия

Подключение к Azure Cosmos DB с помощью подключенных служб

  1. Откройте проект в Visual Studio.

  2. В Обозреватель решений щелкните правой кнопкой мыши на узле Подключенные службы и в контекстном меню выберите Добавить подключенную службу.

    Если узел подключенных служб не отображается, выберите Project>Connected Services>Добавить.

  3. На вкладке подключенных служб выберите значок "+" для зависимостей служб.

    снимок экрана, показывающий, как добавить зависимость службы.

  4. На странице Добавить зависимость выберите Azure Cosmos DB.

    Скриншот, отображающий экран

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

  5. Выберите существующую базу данных Azure Cosmos DB на экране Azure Cosmos DB, затем нажмите Далее.

    Если необходимо создать базу данных, перейдите к следующему шагу. В противном случае перейдите к шагу 7.

    Снимок экрана, показывающий, как добавить существующую базу данных Azure Cosmos DB в проект.

  6. Чтобы создать Azure Cosmos DB, выполните приведенные действия.

    1. Выберите в нижней части экрана Создать новую Azure Cosmos DB.

    2. Заполните Azure Cosmos DB: создайте новый экран и выберите Создать.

      снимок экрана:

    3. При отображении диалогового окна Настройки Azure Cosmos DB новая база данных появится в списке. Выберите новую базу данных в списке и выберите Далее.

  7. Введите имя строки подключения и выберите, хранить ли строку подключения в файле локальных секретов или в Azure Key Vault.

    снимок экрана: экран

  8. На экране со сводкой изменений отображаются все изменения, которые будут внесены в ваш проект, если вы завершите процесс. Если изменения выглядят ОК, нажмите кнопку Готово.

    снимок экрана:

  9. Подключение отображается в разделе зависимостей служб вкладки подключенных служб.

    снимок экрана раздела

Заметка

Для проектов .NET Framework пользовательский интерфейс подключенных служб немного отличается. Чтобы увидеть различия, сравните эту страницу с версией Visual Studio 2019 .

  1. Откройте проект в Visual Studio.

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

    снимок экрана с параметрами контекстного меню

    Если узел подключенных служб не отображается, выберите Project>Connected Services>Добавить.

  3. Выберите Azure Cosmos DB. Появится страница Подключение к зависимости. Вы увидите два варианта: один для локального эмулятора, эмулятор Azure Cosmos DB вконтейнера (локально) и один для подключения к динамической службе Azure Cosmos DB. Вы можете сократить затраты и упростить раннюю разработку, начиная с локального эмулятора. Позже вы можете перейти на активную службу, повторив эти действия и выбрав другой вариант.

    снимок экрана с представлением вариантов Azure Cosmos DB.

    Если вы решили использовать эмулятор Azure Cosmos DB, нажмите кнопку Далее, чтобы просмотреть экран Сводка изменений, на котором показано, как изменяется ваш проект. В проект добавляется ссылка на пакет NuGet, а код подключения для локального эмулятора добавляется в проект. После нажатия кнопки Готово на последнем экране создается контейнер для эмулятора; В окне вывода отобразится состояние загрузки изображения.

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

  4. Выберите существующую базу данных Azure Cosmos DB на экране Azure Cosmos DB, затем нажмите Далее.

    Если необходимо создать базу данных, перейдите к следующему шагу. В противном случае перейдите к шагу 7.

    Снимок экрана, показывающий экран

  5. Чтобы создать Azure Cosmos DB, выполните приведенные действия.

    1. Выберите в нижней части экрана Создать новую Azure Cosmos DB.

    2. Заполните экран Azure Cosmos DB: создание нового и выберите Создать.

      снимок экрана:

    3. При отображении диалогового окна Настройки Azure Cosmos DB новая база данных появится в списке. Выберите новую базу данных в списке и выберите Далее.

  6. Введите имя строки подключения и выберите, хранить ли строку подключения в файле локальных секретов или в Azure Key Vault.

    снимок экрана: экран

    Строка подключения добавляется в виде секрета и становится доступной в конфигурации приложения. В приложениях ASP.NET Core можно получить доступ к этой строке подключения с помощью свойства Configuration объекта WebApplicationBuild.

  7. На экране со сводкой изменений отображаются все изменения, которые будут внесены в ваш проект, если вы завершите процесс. Если изменения выглядят ОК, нажмите кнопку Готово.

    снимок экрана:

  8. В обозревателе решений дважды щелкните узел Connected Services, чтобы открыть вкладку Connected Services. Подключение отображается в разделе Service Dependencies:

    снимок экрана:

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

  9. По умолчанию ограничение памяти в контейнере имеет значение 2G, но обычно для запуска Azure Cosmos DB требуется больше памяти. Чтобы устранить эту проблему, перейдите в папку .vs/sd/<GUID>/local в папке решения. В проводнике Windows может потребоваться включить скрытые файлы для просмотра папки .vs. Найдите и откройте файл cosmosdb1.docker-compose.yml. Задайте ограничение памяти 4G или выше.

    mem_limit = 4G
    

    Чтобы перезапустить контейнер с новым параметром, в разделе Зависимости служб вкладки Подключенные службы щелкните на три точки и выберите Запустить локальные зависимости.

Заметка

Локальный эмулятор для Azure Cosmos DB может использовать базовый образ, который использует временную лицензию для Azure Cosmos DB. Если контейнер не запускается, перейдите на вкладку Журналы в окне Контейнеры для контейнера Azure Cosmos DB. Если он упоминает о проблеме с истечением срока действия PAL, необходимо получить последний базовый образ для локального контейнера. Выполните следующую команду из командной строки: docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest. Лицензия периодически обновляется и после истечения её срока действия обновление до нового контейнера должно решить проблему. Вы можете просмотреть проблемы с эмулятором Azure Cosmos DB и сообщить о них в репозитории GitHub эмулятора Azure Cosmos DB .

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

Узнайте, как безопасно хранить секреты, следуя инструкциям по безопасному хранению секретов приложения в разработке в ASP.NET Core. В частности, чтобы прочитать строку подключения из хранилища секретов, можно добавить код, как в примере "Прочитать секрет с помощью API конфигурации". Код может выглядеть следующим образом, где builder является экземпляром WebApplicationBuild, который отображается в Program.cs в шаблонах проектов ASP.NET Core:

// New instance of CosmosClient class using a connection string
using CosmosClient client = new(
    connectionString: builder.Configuration["CosmosDBConnectionString"]
);

CosmosClient предоставляет доступ к функциям Azure Cosmos DB с помощью различных методов. После создания экземпляра CosmosClientвы можете создать базу данных NoSQL, следуя этому руководству: создать базу данных в Azure Cosmos DB для NoSQL с помощью .NET.