Bien démarrer avec Azure Cosmos DB for NoSQL à l’aide de Python
S’APPLIQUE À : NoSQL
Cet article vous montre comment vous connecter à Azure Cosmos DB for NoSQL à l’aide du SDK Python. Une fois connecté, vous pouvez effectuer des opérations sur des bases de données, des conteneurs et des éléments.
Package (Pypi) | Exemples | Référence API | Code source de la bibliothèque | Envoyer des commentaires
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Compte Azure Cosmos DB for NoSQL. Créer une API pour un compte NoSQL.
- Python 3.7 ou version ultérieure
- Interface de ligne de commande Azure (CLI) ou Azure PowerShell
Configuration de votre projet
Créez un environnement dans lequel vous pouvez exécuter du code Python.
Avec un environnement virtuel, vous pouvez installer des packages Python dans un environnement isolé sans affecter le reste de votre système.
Installez le Kit de développement logiciel (SDK) Python Azure Cosmos DB for NoSQL dans l’environnement virtuel.
pip install azure-cosmos
Créer l’application Python
Dans votre environnement, créez un fichier app.py et ajoutez-y le code suivant :
import json
import os
import sys
import uuid
from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey
Le code précédent importe les modules que vous utiliserez dans le reste de l’article.
Se connecter à Azure Cosmos DB for NoSQL
Pour vous connecter à l’API pour NoSQL de Azure Cosmos DB, créez une instance de la classe CosmosClient
. Cette classe est le point de départ pour effectuer toutes les opérations sur des bases de données.
Pour vous connecter à votre API pour un compte NoSQL en utilisant Microsoft Entra, utilisez un principal de sécurité. Le type exact de principal dépend de l’emplacement où vous hébergez votre code d’application. Le tableau ci-dessous sert de guide de référence rapide.
Emplacement d’exécution de l’application | Principal de sécurité |
---|---|
Ordinateur local (développement et test) | Identité de l’utilisateur ou principal du service |
Azure | Identité managée |
Serveurs ou clients en dehors d’Azure | Principal du service |
Importer Azure.Identity
Le package azure-identity contient les fonctionnalités d’authentification principales partagées entre toutes les bibliothèques du kit de développement logiciel (SDK) Azure.
Importez le package azure-identity dans votre environnement.
pip install azure-identity
Créer CosmosClient avec l’implémentation des informations d’identification par défaut
Si vous testez sur une machine locale ou que votre application s’exécute sur des services Azure avec prise en charge directe des identités managées, obtenez un jeton OAuth en créant une instance DefaultAzureCredential
.
Dans votre app.py :
Obtenez le point de terminaison pour vous connecter à votre compte et définissez-le comme variable d’environnement
COSMOS_ENDPOINT
.Importez defaultAzureCredential et créez une instance de celui-ci.
Créez une instance de la classe CosmosClient avec les variables d’environnement ENDPOINT et informations de connexion en tant que paramètres.
from azure.identity import DefaultAzureCredential
ENDPOINT = os.environ["COSMOS_ENDPOINT"]
credential = DefaultAzureCredential()
client = CosmosClient(ENDPOINT, credential)
Important
Pour plus d’informations sur l’ajout du rôle approprié pour permettre DefaultAzureCredential
fonctionner, consultez Configurer le contrôle d’accès en fonction du rôle avec l’ID Microsoft Entra pour votre compte Azure Cosmos DB. En particulier, consultez la section sur la création de rôles et leur affectation à un ID principal.
Générer votre application
À mesure que vous générez votre application, votre code interagit principalement avec quatre types de ressources :
Le compte d’API for NoSQL qui est l’unique espace de noms de niveau supérieur pour vos données Azure Cosmos DB.
Bases de données, qui organisent les conteneurs dans votre compte.
Conteneurs, qui contiennent un ensemble d’éléments individuels dans votre base de données.
Éléments, qui représentent un document JSON dans votre conteneur.
Le diagramme suivant montre la relation entre ces ressources.
Diagramme hiérarchique montrant un compte Azure Cosmos DB au sommet. Le compte présente deux nœuds de base de données enfants. L’un des nœuds de base de données comprend deux nœuds de conteneur enfants. L’autre nœud de base de données inclut un nœud de conteneur enfant unique. Ce nœud de conteneur unique a trois nœuds d’éléments enfants.
Chaque type de ressource est représenté par une ou plusieurs classes Python associées. Voici une liste des classes les plus courantes pour la programmation synchrone. (Il existe des classes similaires pour la programmation asynchrone sous l’espace de noms azure.cosmos.aio .)
Classe | Description |
---|---|
CosmosClient |
Cette classe fournit une représentation logique du côté client pour le service Azure Cosmos DB. Ce client est utilisé pour configurer et exécuter des requêtes sur le service. |
DatabaseProxy |
Une interface à une base de données qui peut, ou non, exister dans le service. Cette classe ne devrait pas être instanciée directement. Vous devez plutôt utiliser la méthode CosmosClient get_database_client. |
ContainerProxy |
Interface permettant d’interagir avec un conteneur Cosmos DB spécifique. Cette classe ne devrait pas être instanciée directement. Utilisez plutôt la méthode databaseProxy get_container_client pour obtenir un conteneur existant ou la méthode create_container pour créer un conteneur. |
Les guides suivants vous montrent comment utiliser chacune de ces classes pour générer votre application.
Guide | Description |
---|---|
Créer une base de données | Créer des bases de données |
Créer un conteneur | Créer des conteneurs |
Exemples d’éléments | Pointer et lire un élément spécifique |
Voir aussi
- PyPI
- Exemples
- Informations de référence sur les API
- Code source de la bibliothèque
- Envoyer des commentaires