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

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

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

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

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

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

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

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

    Если узел "Подключенные службы" не отображается, выберите "Добавить подключенные службы> project".>

  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".>

  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. В Обозреватель решений дважды щелкните узел "Подключенные службы", чтобы открыть вкладку "Подключенные службы". Подключение отображается в разделе "Зависимости службы":

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

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

  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.