Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez az útmutató végigvezeti egy Python-konzolalkalmazás létrehozásán egy Azure DocumentDB-fürthöz való csatlakozáshoz. Konfigurálhatja a fejlesztői környezetet, hitelesítheti a csomagot a azure.identity Pythonhoz készült Azure SDK-ból, és olyan műveleteket hajthat végre, mint a dokumentumok létrehozása, lekérdezése és frissítése.
Előfeltételek
Azure-előfizetés
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot
Meglévő Azure DocumentDB-fürt
- Ha nincs klasztere, hozzon létre egy új klasztert
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: Az Azure Cloud Shell használatának első lépései.
Ha a CLI referencia parancsokat helyben szeretnéd futtatni, telepítsd az Azure CLI-t. Ha Windows vagy macOS rendszeren fut, fontolja meg az Azure CLI-t egy Docker-konténerben futtatni. További információkért lásd: Az Azure CLI használata Docker-konténerben.
Ha egy helyileg telepített verziót használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. Az azonosítási folyamat befejezéséhez kövesse a terminálján megjelenő lépéseket. További bejelentkezési lehetőségekért lásd: Hitelesítés az Azure-ba az Azure CLI használatával.
Amikor megjelenik a felszólítás, az első használatkor telepítse az Azure CLI bővítményt. További információ a bővítményekről: Bővítmények használata és kezelése az Azure CLI-vel.
Futtasd a az version parancsot, hogy megtudd a telepített verziót és függő könyvtárakat. A legújabb verzióra való frissítéshez futtassa a az upgrade parancsot.
Az ön identitásával konfigurált Microsoft Entra-hitelesítés a fürthöz rendelt
rootszerepkörrel.- A Microsoft Entra-hitelesítés engedélyezéséhez tekintse át a konfigurációs útmutatót.
A Python legújabb verziója.
A konzolalkalmazás konfigurálása
Ezután hozzon létre egy új konzolalkalmazás-projektet, és importálja a fürt hitelesítéséhez szükséges kódtárakat.
Hozzon létre egy új könyvtárat a projekthez, és állítson be egy virtuális környezetet.
mkdir mongodb-app cd mongodb-app python -m venv .venvAktiválja a virtuális környezetet.
# On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activateHozzon létre egy új Python-fájlt az alkalmazáshoz.
touch app.pyTelepítse az
azure.identityAzure-hitelesítés kódtárát.pip install azure.identityTelepítse a
pymongoPython-illesztőprogramot.pip install pymongo
Csatlakozzon a klaszterhez
Most használja a Azure.Identity könyvtárat, hogy szerezzen egy TokenCredential-et, amelyet a fürthöz való csatlakozáshoz használhat. A hivatalos MongoDB-meghajtó egy speciális felülettel rendelkezik, amelyet implementálni kell ahhoz, hogy tokeneket szerezzen be a Microsoft Entra-tól a fürthöz való csatlakozáshoz.
Importálja a szükséges modulokat a Python-fájl tetején.
from azure.identity import DefaultAzureCredential from pymongo import MongoClient from pymongo.auth_oidc import OIDCCallback, OIDCCallbackContext, OIDCCallbackResultHozzon létre egy egyéni osztályt, amely implementálja a MongoDB OpenID Connect (OIDC) visszahívási felületet.
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)Állítsa be a klaszternév változóját.
clusterName = "<azure-documentdb-cluster-name>"Hozzon létre egy DefaultAzureCredential példányt, és állítsa be a hitelesítési tulajdonságokat.
credential = DefaultAzureCredential() authProperties = {"OIDC_CALLBACK": AzureIdentityTokenCallback(credential)}Hozzon létre egy Microsoft Entra-hitelesítéssel konfigurált MongoDB-ügyfelet.
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")
Gyakori műveletek végrehajtása
Végül használja a hivatalos könyvtárat az adatbázisok, gyűjtemények és dokumentumok gyakori feladatainak elvégzéséhez. Itt ugyanazokat az osztályokat és metódusokat használja, amelyekkel a MongoDB-vel vagy a DocumentDB-vel kezelheti gyűjteményeit és elemeit.
Az adatbázisra mutató hivatkozás lekérése.
database = client.get_database("<database-name>") print("Database pointer created")A gyűjteményre mutató hivatkozás lekérése.
collection = database.get_collection("<container-name>") print("Collection pointer created")Hozzon létre egy dokumentumot, és helyezze be a gyűjteménybe a következővel
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)Egy
collection.find_oneadott dokumentum lekérése a gyűjteményből.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']}")Lekérdezés több dokumentumhoz, amelyek megfelelnek egy szűrőnek
collection.find.filter = { "category": "gear-surf-surfboards" } matched_documents = collection.find(filter) for document in matched_documents: print(f"Found document:\t{document}")