Compartir vía


Introducción a Azure Cosmos DB for NoSQL con Python

En este artículo se explica cómo conectarse a Azure Cosmos DB for NoSQL mediante el SDK de Python. Después de conectarse, realice operaciones en bases de datos, contenedores y elementos.

Paquete (PyPi) | Referencia de API | Código | Enviar comentarios

Prerequisites

Configurar su proyecto

Cree un entorno para el código de Python.

Use un entorno virtual para instalar paquetes de Python de forma aislada sin afectar al sistema.

Instale el SDK de Python de Azure Cosmos DB for NoSQL en el entorno virtual.

pip install azure-cosmos

Crear la aplicación de Python

En el entorno, cree un nuevo archivo app.py y agregue este código:

import json
import os
import sys
import uuid

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

El código anterior importa los módulos usados en el resto del artículo.

Conéctate a Azure Cosmos DB para NoSQL

Para conectarse a la API de NoSQL de Azure Cosmos DB, cree una instancia de la clase CosmosClient. Esta clase es el punto inicial para realizar todas las operaciones en bases de datos.

Para conectarse a la API para la cuenta NoSQL mediante Microsoft Entra, use una entidad de seguridad. El tipo exacto de entidad de seguridad dependerá de dónde hospede el código de la aplicación. La tabla siguiente es una guía de referencia rápida.

Dónde se ejecuta la aplicación Principal de seguridad
Máquina local (desarrollo y pruebas) Identidad de usuario o principal de servicio
Azure Identidad administrada
Servidores o clientes fuera de Azure Entidad de servicio

Importación de Azure.Identity

El paquete azure-identity proporciona la funcionalidad de autenticación básica compartida en todas las bibliotecas del SDK de Azure.

Importe el paquete azure-identity en el entorno.

pip install azure-identity

Creación de CosmosClient con la implementación de credenciales predeterminada

Si está probando en una máquina local o ejecutando la aplicación en servicios de Azure con compatibilidad con identidades administradas, obtenga un token de OAuth mediante la creación de una instancia DefaultAzureCredential .

En el archivo app.py :

  • Obtenga el punto de conexión de la cuenta y establézcalo como la variable COSMOS_ENDPOINT de entorno .

  • Importe la clase DefaultAzureCredential y cree una instancia de ella.

  • Cree una instancia de la clase CosmosClient con el PUNTO DE CONEXIÓN y la credencial como parámetros.

from azure.identity import DefaultAzureCredential

ENDPOINT = os.environ["COSMOS_ENDPOINT"]

credential = DefaultAzureCredential()

client = CosmosClient(ENDPOINT, credential)

Importante

Para obtener más información sobre cómo agregar el rol correcto para que DefaultAzureCredential funcione, consulte Configuración del control de acceso basado en roles con Microsoft Entra ID para la cuenta de Azure Cosmos DB. En concreto, consulte la sección sobre cómo crear roles y asignarlos a un ID principal.

Compilación de la aplicación

A medida que compile la aplicación, el código interactuará principalmente con cuatro tipos de recursos:

  • La cuenta de API para NoSQL, que es el espacio de nombres único de nivel superior para los datos de Azure Cosmos DB.

  • Bases de datos, que organizan los contenedores de la cuenta.

  • Contenedores, que contienen un conjunto de elementos individuales en la base de datos.

  • Elementos, que representan un documento JSON en tu contenedor.

En el siguiente diagrama se muestra la relación entre estos recursos.

Diagrama de la jerarquía de Azure Cosmos DB, que incluye cuentas, bases de datos, contenedores y elementos.

Diagrama jerárquico que muestra una cuenta de Azure Cosmos DB en la parte superior. La cuenta tiene dos nodos de base de datos secundarios. Uno de los nodos de la base de datos incluye dos nodos de contenedor secundarios. El otro nodo de la base de datos incluye un único nodo de contenedor secundario. Ese nodo de contenedor único tiene tres nodos de elementos secundarios.

Una o varias clases de Python asociadas representan el tipo de recurso. Esta es una lista de las clases más comunes de programación sincrónica (hay clases parecidas de programación asincrónica en el espacio de nombres azure.cosmos.aio).

Clase Descripción
CosmosClient Esta clase proporciona una representación lógica del cliente para el servicio Azure Cosmos DB. El objeto de cliente configura y ejecuta solicitudes en el servicio.
DatabaseProxy Una interfaz a una base de datos que todavía podría existir o no en el servicio. Esta clase no debe instanciarse directamente. En su lugar, debe usar el método get_database_client de CosmosClient.
ContainerProxy Interfaz para interactuar con un contenedor específico de Cosmos DB. Esta clase no debe instanciarse directamente. En su lugar, use el método get_container_client de DatabaseProxy para obtener un contenedor existente o el método create_container para crear un contenedor.

En las siguientes guías se muestra cómo usar cada una de estas clases para compilar la aplicación.

Guía Descripción
Creación de una base de datos Crear una base de datos.
Creación de contenedor Cree un contenedor.

Consulte también

Pasos siguientes