Aan de slag met Azure Cosmos DB for NoSQL met behulp van Python
VAN TOEPASSING OP: NoSQL
In dit artikel leest u hoe u verbinding maakt met Azure Cosmos DB for NoSQL met behulp van de Python SDK. Zodra u verbinding hebt gemaakt, kunt u bewerkingen uitvoeren op databases, containers en items.
Pakket (PyPi) | Samples | API reference | Library source code | Give Feedback
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Azure Cosmos DB for NoSQL-account. Maak een API voor een NoSQL-account.
- Python 3.7 of hoger
- Azure-opdrachtregelinterface (CLI) of Azure PowerShell
Uw project instellen
Maak een omgeving waarin u Python-code kunt uitvoeren.
Met een virtuele omgeving kunt u Python-pakketten installeren in een geïsoleerde omgeving zonder dat dit van invloed is op de rest van uw systeem.
Installeer de Azure Cosmos DB for NoSQL Python SDK in de virtuele omgeving.
pip install azure-cosmos
De Python-toepassing maken
Maak in uw omgeving een nieuw app.py-bestand en voeg de volgende code eraan toe:
import json
import os
import sys
import uuid
from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey
Met de voorgaande code importeert u modules die u in de rest van het artikel gaat gebruiken.
Verbinding maken met Azure Cosmos DB for NoSQL
Als u verbinding wilt maken met de API voor NoSQL van Azure Cosmos DB, maakt u een exemplaar van de CosmosClient
klasse. Deze klasse is het startpunt om alle bewerkingen uit te voeren op databases.
Als u verbinding wilt maken met uw API voor NoSQL-account met behulp van Microsoft Entra, gebruikt u een beveiligingsprincipaal. Het exacte type principal is afhankelijk van waar u uw toepassingscode host. De onderstaande tabel fungeert als een snelzoekgids.
Waar de toepassing wordt uitgevoerd | Beveiligingsprincipal |
---|---|
Lokale machine (ontwikkelen en testen) | Gebruikersidentiteit of service-principal |
Azure | Beheerde identiteit |
Servers of clients buiten Azure | Service-principal |
Azure.Identity importeren
Het pakket azure-identity bevat kernverificatiefunctionaliteit die wordt gedeeld tussen alle Azure SDK-bibliotheken.
Importeer het azure-identity-pakket in uw omgeving.
pip install azure-identity
CosmosClient maken met standaardreferentie-implementatie
Als u test op een lokale computer of uw toepassing wordt uitgevoerd op Azure-services met directe ondersteuning voor beheerde identiteiten, moet u een OAuth-token verkrijgen door een DefaultAzureCredential
exemplaar te maken.
In uw app.py:
Haal het eindpunt op om verbinding te maken met uw account en stel dit in als de omgevingsvariabele
COSMOS_ENDPOINT
.Importeer de DefaultAzureCredential en maak er een exemplaar van.
Maak een nieuw exemplaar van de CosmosClient-klasse met het EINDPUNT en de referentie als parameters.
from azure.identity import DefaultAzureCredential
ENDPOINT = os.environ["COSMOS_ENDPOINT"]
credential = DefaultAzureCredential()
client = CosmosClient(ENDPOINT, credential)
Belangrijk
Zie Op rollen gebaseerd toegangsbeheer configureren met Microsoft Entra ID voor uw Azure Cosmos DB-account voor meer informatie over het toevoegen van de juiste rol om dit mogelijk te makenDefaultAzureCredential
. Zie met name de sectie over het maken van rollen en het toewijzen ervan aan een principal-id.
Uw toepassing bouwen
Tijdens het bouwen van uw toepassing werkt uw code voornamelijk met vier typen resources:
De API voor NoSQL-account, de unieke naamruimte op het hoogste niveau voor uw Azure Cosmos DB-gegevens.
Databases, die de containers in uw account organiseren.
Containers, die een set afzonderlijke items in uw database bevatten.
Items, die een JSON-document in uw container vertegenwoordigen.
Het volgende diagram geeft de relatie tussen deze resources weer.
Hiërarchisch diagram met een Azure Cosmos DB-account bovenaan. Het account heeft twee onderliggende databaseknooppunten. Een van de databaseknooppunten bevat twee onderliggende containerknooppunten. Het andere databaseknooppunt bevat één onderliggend containerknooppunt. Dat knooppunt met één container heeft drie onderliggende itemknooppunten.
Elk type resource wordt vertegenwoordigd door een of meer gekoppelde Python-klassen. Hier volgt een lijst met de meest voorkomende klassen voor synchrone programmering. (Er zijn vergelijkbare klassen voor asynchrone programmering onder de azure.cosmos.aio-naamruimte .)
Klas | Beschrijving |
---|---|
CosmosClient |
Deze klasse biedt een logische weergave aan de clientzijde voor de Azure Cosmos DB-service. Het clientobject wordt gebruikt om aanvragen aan de service te configureren en uitvoeren. |
DatabaseProxy |
Een interface voor een database die al dan niet bestaat in de service. Deze klasse mag niet rechtstreeks worden geïnstantieerd. In plaats daarvan moet u de methode CosmosClient get_database_client gebruiken. |
ContainerProxy |
Een interface voor interactie met een specifieke Cosmos DB-container. Deze klasse mag niet rechtstreeks worden geïnstantieerd. Gebruik in plaats daarvan de methode DatabaseProxy get_container_client om een bestaande container op te halen, of de create_container methode om een nieuwe container te maken. |
In de volgende handleidingen ziet u hoe u elk van deze klassen gebruikt om uw toepassing te bouwen.
Guide | Beschrijving |
---|---|
Een database maken | Databases maken |
Container maken | Maak containers |
Voorbeelden van items | Een specifiek item lezen |