Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide vous guide tout au long de la création d’une application console Python pour vous connecter à un cluster Azure DocumentDB. Vous configurez votre environnement de développement, authentifiez-vous à l’aide du azure.identity package à partir du Kit de développement logiciel (SDK) Azure pour Python et effectuez des opérations telles que la création, l’interrogation et la mise à jour de documents.
Prerequisites
Un abonnement Azure
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit
Un cluster Azure DocumentDB existant
- Si vous n’avez pas de cluster, créez un cluster
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter des commandes de référence CLI localement, installez Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Comment exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Authentification Microsoft Entra configurée pour le cluster avec votre identité bénéficiant d’un rôle
root.Dernière version de Python.
Configurer votre application console
Ensuite, créez un projet d’application console et importez les bibliothèques nécessaires pour vous authentifier auprès de votre cluster.
Créez un répertoire pour votre projet et configurez un environnement virtuel.
mkdir mongodb-app cd mongodb-app python -m venv .venvActivez l’environnement virtuel.
# On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activateCréez un fichier Python pour votre application.
touch app.pyInstallez la bibliothèque
azure.identitypour l’authentification Azure.pip install azure.identityInstallez le
pymongopilote pour Python.pip install pymongo
Se connecter au cluster
À présent, utilisez la bibliothèque Azure.Identity pour obtenir un TokenCredential à utiliser afin de vous connecter à votre cluster. Le pilote MongoDB officiel a une interface spéciale qui doit être implémentée pour obtenir des jetons de Microsoft Entra à utiliser lors de la connexion au cluster.
Importez les modules nécessaires en haut de votre fichier Python.
from azure.identity import DefaultAzureCredential from pymongo import MongoClient from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResultCréez une classe personnalisée qui implémente l’interface de rappel OIDC (MongoDB OpenID Connect).
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)Définissez votre variable de nom de cluster.
clusterName = "<azure-documentdb-cluster-name>"Créez une instance de DefaultAzureCredential et configurez les propriétés d’authentification.
credential = DefaultAzureCredential() authProperties = {"OIDC_CALLBACK": AzureIdentityTokenCallback(credential)}Créez un client MongoDB configuré avec l’authentification Microsoft Entra.
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")
Effectuer des opérations courantes
Enfin, utilisez la bibliothèque officielle pour effectuer des tâches courantes avec des bases de données, des collections et des documents. Ici, vous utilisez les mêmes classes et méthodes que celles que vous utiliseriez pour interagir avec MongoDB ou DocumentDB pour gérer vos collections et éléments.
Obtenez une référence à votre base de données.
database = client.get_database("<database-name>") print("Database pointer created")Obtenez une référence à votre collection.
collection = database.get_collection("<container-name>") print("Collection pointer created")Créez un document et upsertez-le dans la collection avec
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)Permet
collection.find_onede récupérer un document spécifique de la collection.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']}")Recherchez plusieurs documents avec
collection.findqui correspondent à un filtre.filter = { "category": "gear-surf-surfboards" } matched_documents = collection.find(filter) for document in matched_documents: print(f"Found document:\t{document}")