Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden vägleder dig genom att skapa ett Python-konsolprogram för att ansluta till ett Azure DocumentDB-kluster. Du konfigurerar utvecklingsmiljön, autentiserar azure.identity med hjälp av paketet från Azure SDK för Python och utför åtgärder som att skapa, fråga och uppdatera dokument.
Förutsättningar
En prenumeration på Azure
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto
Ett befintligt Azure DocumentDB-kluster
- Om du inte har något kluster skapar du ett nytt kluster
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att avsluta autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI.
När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Microsoft Entra-autentisering har konfigurerats för klustret och din identitet har tilldelats
rootroll.- Om du vill aktivera Microsoft Entra-autentisering läser du konfigurationsguiden.
Senaste versionen av Python.
Konfigurera konsolprogrammet
Skapa sedan ett nytt konsolprogramprojekt och importera de bibliotek som behövs för att autentisera till klustret.
Skapa en ny katalog för projektet och konfigurera en virtuell miljö.
mkdir mongodb-app cd mongodb-app python -m venv .venvAktivera den virtuella miljön.
# On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activateSkapa en ny Python-fil för ditt program.
touch app.pyInstallera biblioteket
azure.identityför Azure-autentisering.pip install azure.identitypymongoInstallera drivrutinen för Python.pip install pymongo
Anslut till klustret
Använd nu Azure.Identity biblioteket för att få en TokenCredential som du kan använda för att ansluta till din kluster. Den officiella MongoDB-drivrutinen har ett särskilt gränssnitt som måste implementeras för att hämta token från Microsoft Entra för användning vid anslutning till klustret.
Importera nödvändiga moduler överst i Python-filen.
from azure.identity import DefaultAzureCredential from pymongo import MongoClient from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResultSkapa en anpassad klass som implementerar återanropsgränssnittet för MongoDB OpenID Connect (OIDC).
class AzureIdentityTokenCallback(OIDCCallback): def __init__(self, credential): self.credential = credential def fetch(self, context: OIDCCallbackContext) -> OIDCCallbackResult: token = self.credential.get_token( "https://ossrdbms-aad.database.windows.net/.default").token return OIDCCallbackResult(access_token=token)Ange klusternamnvariabeln.
clusterName = "<azure-documentdb-cluster-name>"Skapa en instans av DefaultAzureCredential och konfigurera autentiseringsegenskaperna.
credential = DefaultAzureCredential() authProperties = {"OIDC_CALLBACK": AzureIdentityTokenCallback(credential)}Skapa en MongoDB-klient som konfigurerats med Microsoft Entra-autentisering.
client = MongoClient( f"mongodb+srv://{clusterName}.global.mongocluster.cosmos.azure.com/", connectTimeoutMS=120000, tls=True, retryWrites=True, authMechanism="MONGODB-OIDC", authMechanismProperties=authProperties ) print("Client created")
Utföra vanliga åtgärder
Använd slutligen det officiella biblioteket för att utföra vanliga uppgifter med databaser, samlingar och dokument. Här använder du samma klasser och metoder som du skulle använda för att interagera med MongoDB eller DocumentDB för att hantera dina samlingar och objekt.
Hämta en referens till databasen.
database = client.get_database("<database-name>") print("Database pointer created")Hämta en referens till din samling.
collection = database.get_collection("<container-name>") print("Collection pointer created")Skapa ett dokument och anslut det till samlingen med
collection.update_one.new_document = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "category": "gear-surf-surfboards", "name": "Yamba Surfboard", "quantity": 12, "price": 850.00, "clearance": False, } filter = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", } payload = { "$set": new_document } result = collection.update_one(filter, payload, upsert=True)Använd
collection.find_oneför att hämta ett visst dokument från samlingen.filter = { "_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "category": "gear-surf-surfboards" } existing_document = collection.find_one(filter) print(f"Read document _id:\t{existing_document['_id']}")Fråga efter flera dokument med
collection.findsom matchar ett filter.filter = { "category": "gear-surf-surfboards" } matched_documents = collection.find(filter) for document in matched_documents: print(f"Found document:\t{document}")