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


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

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

Пакет (PyPi) | Справочник по | 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 Azure Cosmos DB для NoSQL, создайте экземпляр CosmosClient класса. Этот класс является начальной точкой для выполнения всех операций с базами данных.

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

Место выполнения приложения Принцип безопасности
Локальный компьютер (разработка и тестирование) Удостоверение пользователя или сервисный принципал
Лазурный Манажируемая идентичность
Серверы или клиенты вне 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 .)

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

В этих руководствах показано, как использовать каждый из этих классов для создания приложения.

Guide Description
Создание базы данных Создайте базу данных.
Создание контейнера Создайте контейнер.

См. также

Дальнейшие шаги