Dela via


Kom igång med Azure Cosmos DB för NoSQL med Python

Den här artikeln beskriver hur du ansluter till Azure Cosmos DB för NoSQL med hjälp av Python SDK. När du har anslutit utför du åtgärder på databaser, containrar och objekt.

Paket (PyPi) | API-referens | Källkod | för bibliotekGe feedback

Förutsättningar

Konfigurera projektet

Skapa en miljö för Python-koden.

Använd en virtuell miljö för att installera Python-paket isolerat utan att påverka systemet.

Installera Azure Cosmos DB för NoSQL Python SDK i din virtuella miljö.

pip install azure-cosmos

Skapa Python-programmet

I din miljö skapar du en ny app.py-fil och lägger till den här koden:

import json
import os
import sys
import uuid

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

Föregående kod importerar moduler som används i resten av artikeln.

Ansluta till Azure Cosmos DB för NoSQL

Om du vill ansluta till Azure Cosmos DB API för NoSQL skapar du en instans av CosmosClient klassen. Den här klassen är utgångspunkten för att utföra alla åtgärder mot databaser.

Om du vill ansluta till ditt API för NoSQL-konto med hjälp av Microsoft Entra använder du ett säkerhetsobjekt. Den exakta typen av huvudnamn beror på var du är värd för programkoden. Följande tabell är en snabbreferensguide.

Där programmet körs Säkerhetsprincip
Lokal dator (utveckla och testa) Användaridentitet eller tjänstens huvudnamn
Blått Hanterad identitet
Servrar eller klienter utanför Azure Service Principal

Importera Azure.Identity

Paketet azure-identity innehåller grundläggande autentiseringsfunktioner som delas över alla Azure SDK-bibliotek.

Importera paketet azure-identity till din miljö.

pip install azure-identity

Skapa CosmosClient med standardimplementering av autentiseringsuppgifter

Om du testar på en lokal dator eller kör ditt program på Azure-tjänster med stöd för hanterad identitet hämtar du en OAuth-token genom att skapa en DefaultAzureCredential instans.

I din app.py-fil :

  • Hämta slutpunkten för ditt konto och ange den som miljövariabeln COSMOS_ENDPOINT.

  • Importera DefaultAzureCredential och skapa en instans av den.

  • Skapa en ny instans av klassen CosmosClient med ENDPOINT och autentiseringsuppgifter som parametrar.

from azure.identity import DefaultAzureCredential

ENDPOINT = os.environ["COSMOS_ENDPOINT"]

credential = DefaultAzureCredential()

client = CosmosClient(ENDPOINT, credential)

Viktigt!

Mer information om hur du lägger till rätt roll för att aktivera finns DefaultAzureCredentiali Konfigurera rollbaserad åtkomstkontroll med Microsoft Entra-ID för ditt Azure Cosmos DB-konto. Se särskilt avsnittet om hur du skapar roller och tilldelar dem till en huvudidentitet.

Skapa ditt program

När du skapar ditt program interagerar koden främst med fyra typer av resurser:

  • API:et för NoSQL-kontot, som är det unika toppnivånamnområdet för dina Azure Cosmos DB-data.

  • Databaser som organiserar containrarna i ditt konto.

  • Containrar som innehåller en uppsättning enskilda objekt i databasen.

  • Objekt som representerar ett JSON-dokument i containern.

Det här diagrammet visar relationen mellan dessa resurser.

Diagram över Azure Cosmos DB-hierarkin, inklusive konton, databaser, containrar och objekt.

Hierarkiskt diagram som visar ett Azure Cosmos DB-konto högst upp. Kontot har två underordnade databasnoder. En av databasnoderna innehåller två underordnade containernoder. Den andra databasnoden inkluderar en enda barncontainernod. Den enda behållarnoden har tre barnobjektnoder.

En eller flera associerade Python-klasser representerar resurstypen. Den här listan visar de vanligaste klasserna för synkron programmering. (Det finns liknande klasser för asynkron programmering under namnområdet azure.cosmos.aio .)

Klass beskrivning
CosmosClient Den här klassen tillhandahåller en logisk representation på klientsidan för Azure Cosmos DB-tjänsten. Klientobjektet konfigurerar och kör begäranden mot tjänsten.
DatabaseProxy Ett gränssnitt till en databas som kan, eller inte kunde, finnas i tjänsten ännu. Den här klassen ska inte instansieras direkt. Använd i stället metoden CosmosClient get_database_client .
ContainerProxy Ett gränssnitt för att interagera med en specifik Cosmos DB-container. Den här klassen ska inte instansieras direkt. Använd i stället metoden DatabaseProxy get_container_client för att hämta en befintlig container eller metoden create_container för att skapa en ny container.

De här guiderna visar hur du använder var och en av dessa klasser för att skapa ditt program.

Guide beskrivning
Skapa en databas Skapa en databas.
Skapa container Skapa en container.

Se även

Nästa steg