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
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Azure Cosmos DB för NoSQL-konto. Skapa ett API för NoSQL-konto.
- Python 3.7 eller senare
- Azures kommandoradsgränssnitt (CLI) eller Azure PowerShell
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.
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 |