Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a rövid útmutatóban üzembe helyez egy alapszintű Azure Cosmos DB for NoSQL-alkalmazást az Azure SDK for Python használatával. Az Azure Cosmos DB for NoSQL egy séma nélküli adattár, amellyel az alkalmazások strukturálatlan adatokat tárolnak a felhőben. Az Azure SDK for Python használatával lekérdezheti a tárolókban lévő adatokat, és közös műveleteket végezhet az egyes elemeken.
API referenciadokumentáció | Kódtár forráskódja | Csomag (PyPI) | Azure Developer CLI
Előfeltételek
- Azure Developer CLI
- Docker Desktop
- Python 3.12
Ha még nem rendelkezik Azure-fiókkal, első lépésként hozzon létre egy ingyenes fiókot.
A projekt inicializálása
Az Azure Developer CLI (azd) használatával hozzon létre egy Azure Cosmos DB for NoSQL-fiókot, és helyezzen üzembe egy tárolóalapú mintaalkalmazást. A mintaalkalmazás az ügyfélkódtárat használja a mintaadatok kezelésére, létrehozására, olvasására és lekérdezésére.
Nyisson meg egy terminált egy könyvtárban, amely üres.
Ha még nincs hitelesítve, jelentkezzen be az Azure Developer CLI-be a használatával
azd auth login. Kövesse az eszköz által megadott lépéseket a parancssori felületre való hitelesítéshez az ön által előnyben részesített Azure-hitelesítő adatokkal.azd auth loginA projekt inicializálására használható
azd init.azd init --template cosmos-db-nosql-python-quickstartAz inicializálás során konfiguráljon egy egyedi környezetnevet.
Az Azure Cosmos DB-fiókot
azd uphasználatával helyezze üzembe. A Bicep-sablonok egy minta webalkalmazást is üzembe helyeznek.azd upA kiépítési folyamat során válassza ki az előfizetést, a kívánt helyet és a célerőforrás-csoportot. Várja meg, amíg a kiépítési folyamat befejeződik. A folyamat körülbelül öt percet vehet igénybe.
Az Azure-erőforrások kiépítése után a kimenet tartalmazza a futó webalkalmazás URL-címét.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.A konzol URL-címével keresse meg a webalkalmazást a böngészőben. Figyelje meg a futó alkalmazás kimenetét.
Telepítse az ügyfélkönyvtárat
Az ügyfélkönyvtár a Python-csomagindexen keresztül érhető el, mint a azure-cosmos könyvtár.
Nyisson meg egy terminált, és keresse meg a
/srcmappát.cd ./srcHa még nincs telepítve, a
azure-cosmoscsomagot telepítse apip installsegítségével.pip install azure-cosmosEmellett telepítse a
azure-identitycsomagot, ha még nincs telepítve.pip install azure-identityNyissa meg és tekintse át az src/requirements.txt fájlt annak ellenőrzéséhez, hogy a
azure-cosmosés aazure-identitybejegyzések egyaránt léteznek.
Könyvtárak importálása
Importálja az DefaultAzureCredential és CosmosClient típusokat az alkalmazáskódba.
from azure.identity import DefaultAzureCredential
from azure.cosmos import CosmosClient
Objektummodell
| Név | Leírás |
|---|---|
CosmosClient |
Ez az osztály az elsődleges ügyfélosztály, és a fiókszintű metaadatok vagy adatbázisok kezelésére szolgál. |
DatabaseProxy |
Ez az osztály egy adatbázist jelöl a fiókon belül. |
ContainerProxy |
Ez az osztály elsősorban olvasási, frissítési és törlési műveletek végrehajtására szolgál a tárolón vagy a tárolóban tárolt elemeken. |
PartitionKey |
Ez az osztály egy logikai partíciókulcsot jelöl. Ez az osztály számos gyakori művelethez és lekérdezéshez szükséges. |
Kódpéldák
- Az ügyfél hitelesítése
- Adatbázis lekérése
- Tároló lekérése
- Elem létrehozása
- Elem lekérése
- Lekérdezési elemek
A sablon mintakódja egy névvel ellátott cosmicworks adatbázist és egy nevű tárolót productshasznál. A products tároló olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. A tároló a tulajdonságot /category logikai partíciókulcsként használja.
Az ügyfél hitelesítése
Ez a minta létrehoz egy új CosmosClient típusú példányt, és egy DefaultAzureCredential példánnyal hitelesít.
credential = DefaultAzureCredential()
client = CosmosClient(url="<azure-cosmos-db-nosql-account-endpoint>", credential=credential)
Adatbázis lekérése
A client.get_database_client használatával kérhető le a meglévő adatbázis, amelynek neve cosmicworks.
database = client.get_database_client("cosmicworks")
Szerezzen be egy tárolót
Lekérni a meglévő products tárolót a következővel: database.get_container_client.
container = database.get_container_client("products")
Elem létrehozása
Hozzon létre egy új objektumot a JSON-ba szerializálni kívánt összes taggal. Ebben a példában a típus egyedi azonosítóval rendelkezik, és a kategória, a név, a mennyiség, az ár és az értékesítés mezői. Hozzon létre egy elemet a tárolóban a következő használatával container.upsert_item: . Ez a módszer beszúrja az elemet, vagy ha már létezik, hatékonyan frissíti azt.
new_item = {
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"category": "gear-surf-surfboards",
"name": "Yamba Surfboard",
"quantity": 12,
"sale": False,
}
created_item = container.upsert_item(new_item)
Tétel olvasása
Pontolvasási műveletet hajt végre az egyedi azonosító (id) és a partíciókulcs mezőinek használatával. Az adott elem hatékony lekérésére használható container.read_item .
existing_item = container.read_item(
item="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
partition_key="gear-surf-surfboards",
)
Lekérdezési tételek
Lekérdezés végrehajtása egy tároló több eleme felett a következő használatával container.GetItemQueryIterator: . Egy adott kategórián belüli összes elem megkeresése ezzel a paraméteres lekérdezéssel:
SELECT * FROM products p WHERE p.category = @category
queryText = "SELECT * FROM products p WHERE p.category = @category"
results = container.query_items(
query=queryText,
parameters=[
dict(
name="@category",
value="gear-surf-surfboards",
)
],
enable_cross_partition_query=False,
)
Futtasd végig a lekérdezés eredményeit.
items = [item for item in results]
output = json.dumps(items, indent=True)
Fedezd fel az adataidat
A NoSQL-adatok megismeréséhez használja az Azure Cosmos DB Visual Studio Code-bővítményét. Alapvető adatbázisműveleteket hajthat végre, beleértve, de nem kizárólagosan az alábbiakat:
- Lekérdezések végrehajtása egy album vagy a lekérdezésszerkesztő használatával
- Elemek módosítása, frissítése, létrehozása és törlése
- Tömeges adatok importálása más forrásokból
- Adatbázisok és tárolók kezelése
További információ: A Visual Studio Code bővítmény használata az Azure Cosmos DB for NoSQL-adatok megismeréséhez.
Az erőforrások rendezése
Ha már nincs szüksége a mintaalkalmazásra vagy erőforrásokra, távolítsa el a megfelelő üzembe helyezést és az összes erőforrást.
azd down