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


Начало работы с Azure Cosmos DB для NoSQL с помощью Python

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

В этой статье показано, как подключиться к Azure Cosmos DB для NoSQL с помощью пакета SDK для Python. После подключения можно выполнять операции с базами данных, контейнерами и элементами.

Исходный код исходного кода | библиотеки пакетов (PyPi) | Samples API | |

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

Настройка проекта

Создайте среду, в которой можно запустить код Python.

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

Установите пакет SDK Для Python для Azure Cosmos DB для NoSQL в виртуальной среде.

pip install azure-cosmos

Создание приложения Python

В среде создайте файл app.py и добавьте в него следующий код:

import json
import os
import sys
import uuid

from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey

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

Подключение к Azure Cosmos DB для NoSQL

Чтобы подключиться к API для NoSQL Azure Cosmos DB, создайте экземпляр CosmosClient класса. Этот класс является начальной точкой для выполнения всех операций с базами данных.

Чтобы подключиться к учетной записи API для NoSQL с помощью Microsoft Entra, используйте субъект безопасности. Точный тип субъекта будет зависеть от того, где размещается код приложения. Приведенная ниже таблица служит кратким справочным руководством.

Место выполнения приложения Субъект безопасности
Локальный компьютер (разработка и тестирование) Удостоверение пользователя или субъект-служба
Azure Управляемое удостоверение
Серверы или клиенты вне Azure Субъект-служба

Импорт Azure.Identity

Пакет azure-identity содержит основные функции проверки подлинности , общие для всех библиотек пакета SDK Azure.

Импортируйте пакет azure-identity в среду.

pip install azure-identity

Создание CosmosClient с реализацией учетных данных по умолчанию

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

В app.py:

  • Получите конечную точку для подключения к учетной записи и задайте ее в качестве переменной COSMOS_ENDPOINTсреды.

  • Импортируйте DefaultAzureCredential и создайте его экземпляр.

  • Создайте новый экземпляр класса CosmosClient с конечной точкой и учетными данными в качестве параметров.

from azure.identity import DefaultAzureCredential

ENDPOINT = os.environ["COSMOS_ENDPOINT"]

credential = DefaultAzureCredential()

client = CosmosClient(ENDPOINT, credential)

Внимание

Дополнительные сведения о том, как добавить правильную роль для DefaultAzureCredential работы, см. в статье Настройка управления доступом на основе ролей с помощью идентификатора Microsoft Entra для учетной записи Azure Cosmos DB. В частности, ознакомьтесь с разделом о создании ролей и назначении их идентификатору субъекта.

Сборка приложения

При создании приложения код будет в основном взаимодействовать с четырьмя типами ресурсов:

  • Учетная запись API для NoSQL, которая является уникальным пространством имен верхнего уровня для данных Azure Cosmos DB.

  • Базы данных, которые упорядочивают контейнеры в учетной записи.

  • Контейнеры, содержащие набор отдельных элементов в базе данных.

  • Элементы, представляющие документ JSON в контейнере.

На следующей схеме показана связь между этими ресурсами.

Схема иерархии Azure Cosmos DB с учетными записями, базами данными, контейнерами и элементами.

Иерархическая схема с учетной записью Azure Cosmos DB в верхней части. У учетной записи есть два дочерних узла базы данных. Один из узлов базы данных содержит два дочерних узла контейнера. Другой узел базы данных содержит один дочерний узел контейнера. У этого одного узла контейнера есть три дочерних узла.

Каждый тип ресурса представлен одним или несколькими связанными классами Python. Ниже приведен список наиболее распространенных классов для синхронного программирования. (Существуют аналогичные классы для асинхронного программирования в пространстве имен azure.cosmos.aio .)

Класс Description
CosmosClient Этот класс является логическим представлением службы Azure Cosmos DB на стороне клиента. Этот клиентский объект позволяет настраивать и выполнять запросы к службе.
DatabaseProxy Интерфейс к базе данных, которая может или не может существовать в службе. Этот класс не должен быть создан напрямую. Вместо этого следует использовать метод CosmosClient get_database_client .
ContainerProxy Интерфейс для взаимодействия с определенным контейнером Cosmos DB. Этот класс не должен быть создан напрямую. Вместо этого используйте метод DatabaseProxy get_container_client для получения существующего контейнера или метода create_container для создания нового контейнера.

Сведения об использовании каждого из этих классов для создания приложения приведены в следующих руководствах.

Руководство Description
Создание базы данных Создание баз данных
Создание контейнера Создание контейнеров
Примеры элементов Точечное чтение определенного элемента

См. также

Следующие шаги