Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как подключиться к Azure Cosmos DB для NoSQL с помощью пакета SDK для Python. После подключения выполните операции с базами данных, контейнерами и элементами.
Пакет (PyPi) | Справочник по | APIИсходный код | библиотекиПредоставление отзывов
Предпосылки
- Учетная запись Azure с активной подпиской. Узнайте, как бесплатно создать учетную запись.
- Учетная запись Azure Cosmos DB для NoSQL. Узнайте, как создать учетную запись API для NoSQL.
- Python 3.7 или более поздней версии.
- Интерфейс azure Command-Line (CLI) или Azure PowerShell.
Настройка проекта
Создайте среду для кода 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 в верхней части. У учетной записи есть два дочерних узла базы данных. Один из узлов базы данных включает в себя два узла-контейнера, являющихся дочерними. Другой узел базы данных содержит один дочерний узел-контейнер. У этого одного узла контейнера есть три дочерних узла.
Один или несколько связанных классов 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 |
|---|---|
| Создание базы данных | Создайте базу данных. |
| Создание контейнера | Создайте контейнер. |