Dela via


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

GÄLLER FÖR: NoSQL

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

Package (PyPi)Samples API reference Library source code Give Feedback (Paket (PyPi) | Samples | API reference | Library source code | Give Feedback

Förutsättningar

Konfigurera projektet

Skapa en miljö som du kan köra Python-kod i.

Med en virtuell miljö kan du installera Python-paket i en isolerad miljö utan att påverka resten av systemet.

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

pip install azure-cosmos

Skapa Python-programmet

I din miljö skapar du en ny app.py-fil och lägger till följande kod i den:

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 du ska använda i resten av artikeln.

Ansluta till Azure Cosmos DB för NoSQL

Om du vill ansluta till API:et för NoSQL för Azure Cosmos DB 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. Tabellen nedan fungerar som en snabbreferensguide.

Där programmet körs Säkerhetsobjekt
Lokal dator (utveckla och testa) Användaridentitet eller tjänstens huvudnamn
Azure Hanterad identitet
Servrar eller klienter utanför Azure Tjänstens huvudnamn

Importera Azure.Identity

Azure-identitetspaketet innehåller grundläggande autentiseringsfunktioner som delas mellan alla Azure SDK-bibliotek.

Importera azure-identity-paketet till din miljö.

pip install azure-identity

Skapa CosmosClient med standardimplementering av autentiseringsuppgifter

Om du testar på en lokal dator, eller om programmet körs på Azure-tjänster med direkt stöd för hanterade identiteter, hämtar du en OAuth-token genom att skapa en DefaultAzureCredential instans.

I din app.py:

  • Hämta slutpunkten för att ansluta till ditt konto och ange det 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 DefaultAzureCredential för att fungera finns i 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 ett huvudnamns-ID.

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.

Följande diagram visar relationen mellan de här resurserna.

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 innehåller en enda underordnad containernod. Den enda containernoden har tre underordnade objektnoder.

Varje typ av resurs representeras av en eller flera associerade Python-klasser. Här är en lista över 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 används för att konfigurera och köra begäranden mot tjänsten.
DatabaseProxy Ett gränssnitt till en databas som kan, eller kanske inte, finns i tjänsten ännu. Den här klassen ska inte instansieras direkt. I stället bör du använda 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.

Följande guider visar hur du använder var och en av dessa klasser för att skapa ditt program.

Guide beskrivning
Skapa en databas Skapa databaser
Skapa container Skapa behållare
Objektexempel Punktläsning av ett specifikt objekt

Se även

Nästa steg