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

С помощью Visual Studio можно подключить любую из следующих функций к Azure Cosmos DB с помощью функции Подключение ed Services:

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

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

Примечание.

Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Подключенные службы в Visual Studio для Mac.

Необходимые компоненты

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

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

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

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

    Screenshot showing how to add a service dependency.

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

    Screenshot showing

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

  5. На экране Azure Cosmos DB выберите существующий Azure Cosmos DB и нажмите кнопку "Далее".

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

    Screenshot showing how to add an existing Azure Cosmos DB to project.

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

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

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

      Screenshot showing

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

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

    Screenshot showing

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

    Screenshot showing

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

    Screenshot showing

Примечание.

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

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

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

    Screenshot showing Connected Services context menu options.

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

    Screenshot showing Azure Cosmos DB choices.

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

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

  4. На экране Azure Cosmos DB выберите существующий Azure Cosmos DB и нажмите кнопку "Далее".

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

    Screenshot showing

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

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

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

      Screenshot showing

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

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

    Screenshot showing

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

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

    Screenshot showing

  8. В Обозреватель решений дважды щелкните узел Подключение служб, чтобы открыть вкладку Подключение ed Services. Подключение отображается в разделе "Зависимости службы":

    Screenshot showing

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

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

    mem_limit = 4G
    

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

Примечание.

Локальный эмулятор Для 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.