Ismerkedés a NoSQL-hez készült Azure Cosmos DB-vel a Python használatával
A KÖVETKEZŐRE VONATKOZIK: NoSQL
Ez a cikk bemutatja, hogyan csatlakozhat az Azure Cosmos DB for NoSQL-hez a Python SDK használatával. A csatlakozás után műveleteket hajthat végre adatbázisokon, tárolókon és elemeken.
Package (PyPi) | Samples | API reference | Library source code | Give Feedback
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
- Azure Cosmos DB for NoSQL-fiók. Hozzon létre egy API-t a NoSQL-fiókhoz.
- Python 3.7 vagy újabb
- Azure Parancssori felület (CLI) vagy Azure PowerShell
A projekt beállítása
Hozzon létre egy környezetet, amelyben Python-kódot futtathat.
Virtuális környezetben a Python-csomagokat izolált környezetben telepítheti anélkül, hogy a rendszer többi részét érintené.
Telepítse az Azure Cosmos DB for NoSQL Python SDK-t a virtuális környezetben.
pip install azure-cosmos
A Python-alkalmazás létrehozása
A környezetében hozzon létre egy új app.py fájlt, és adja hozzá a következő kódot:
import json
import os
import sys
import uuid
from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey
Az előző kód importálja a cikk többi részében használt modulokat.
Csatlakozás az Azure Cosmos DB for NoSQL-hez
Az Azure Cosmos DB NoSQL-hez készült API-hoz való csatlakozáshoz hozza létre az osztály egy példányát CosmosClient
. Ez az osztály a kiindulópont az adatbázisokon végzett összes művelet végrehajtásához.
Ha a Microsoft Entra használatával szeretne csatlakozni a NoSQL-fiókhoz készült API-hoz, használjon egy egyszerű biztonsági nevet. Az egyszerűség pontos típusa attól függ, hogy hol tárolja az alkalmazás kódját. Az alábbi táblázat rövid útmutatóként szolgál.
Az alkalmazás futtatásának helye | Rendszerbiztonsági tag |
---|---|
Helyi gép (fejlesztés és tesztelés) | Felhasználói identitás vagy szolgáltatásnév |
Azure | Felügyelt identitás |
Azure-on kívüli kiszolgálók vagy ügyfelek | Szolgáltatásnév |
Az Azure.Identity importálása
Az azure-identity csomag az összes Azure SDK-kódtár között megosztott alapvető hitelesítési funkciókat tartalmazza.
Importálja az azure-identity csomagot a környezetébe.
pip install azure-identity
CosmosClient létrehozása az alapértelmezett hitelesítő adatok implementálásával
Ha helyi gépen tesztel, vagy az alkalmazás a felügyelt identitások közvetlen támogatásával fog futni az Azure-szolgáltatásokban, szerezze be az OAuth-jogkivonatot egy DefaultAzureCredential
példány létrehozásával.
A app.py:
Kérje le a végpontot, hogy csatlakozzon a fiókjához, és állítsa be környezeti változóként
COSMOS_ENDPOINT
.Importálja a DefaultAzureCredential értéket, és hozzon létre egy példányt.
Hozzon létre egy új CosmosClient-példányt az ENDPOINT és a hitelesítő adatok paraméterként.
from azure.identity import DefaultAzureCredential
ENDPOINT = os.environ["COSMOS_ENDPOINT"]
credential = DefaultAzureCredential()
client = CosmosClient(ENDPOINT, credential)
Fontos
A megfelelő szerepkör DefaultAzureCredential
hozzáadásáról további információt az Azure Cosmos DB-fiók szerepköralapú hozzáférés-vezérlésének konfigurálása a Microsoft Entra-azonosítóval című témakörben talál. Lásd különösen a szerepkörök létrehozásáról és egy egyszerű azonosítóhoz való hozzárendeléséről szóló szakaszt.
Az alkalmazás összeállítása
Az alkalmazás létrehozásakor a kód elsősorban négy erőforrástípussal fog működni:
Az API for NoSQL-fiók, amely az Azure Cosmos DB-adatok egyedi legfelső szintű névtere.
Adatbázisok, amelyek rendszerezik a tárolókat a fiókjában.
Tárolók, amelyek az adatbázis egyes elemeit tartalmazzák.
Elemek, amelyek egy JSON-dokumentumot jelölnek a tárolóban.
Az alábbi ábra az ezen erőforrások közötti kapcsolatot mutatja be.
Hierarchikus diagram egy Azure Cosmos DB-fiókot ábrázol felül. A fióknak két gyermekadatbázis-csomópontja van. Az adatbázis-csomópontok egyike két gyermektároló-csomópontot tartalmaz. A másik adatbáziscsomópont egyetlen gyermektároló-csomópontot tartalmaz. Az egyetlen tárolócsomópont három gyermekelem-csomópontból áll.
Minden erőforrástípust egy vagy több társított Python-osztály jelöl. Íme a szinkron programozás leggyakoribb osztályainak listája. (Az azure.cosmos.aio névtérben hasonló osztályok vannak az aszinkron programozáshoz.)
Osztály | Leírás |
---|---|
CosmosClient |
Ez az osztály ügyféloldali logikai reprezentációt biztosít az Azure Cosmos DB szolgáltatáshoz. Az ügyfélobjektum a szolgáltatással kapcsolatos kérések konfigurálására és végrehajtására szolgál. |
DatabaseProxy |
Egy olyan adatbázis felülete, amely lehet, hogy még létezik a szolgáltatásban. Ezt az osztályt nem szabad közvetlenül példányosítva létrehozni. Ehelyett a CosmosClient get_database_client metódust kell használnia. |
ContainerProxy |
Egy adott Cosmos DB-tárolóval való interakcióra szolgáló felület. Ezt az osztályt nem szabad közvetlenül példányosítva létrehozni. Ehelyett használja a DatabaseProxy get_container_client metódust egy meglévő tároló lekéréséhez, vagy a create_container metódust egy új tároló létrehozásához. |
Az alábbi útmutatók bemutatják, hogyan használhatja ezeket az osztályokat az alkalmazás létrehozásához.
Útmutató | Leírás |
---|---|
Adatbázis létrehozása | Adatbázisok létrehozására |
Tároló létrehozása | Tárolók létrehozása |
Példák elemre | Adott elem pontolvasása |