Začínáme se službou Azure Cosmos DB for NoSQL pomocí Pythonu
PLATÍ PRO: NoSQL
V tomto článku se dozvíte, jak se připojit ke službě Azure Cosmos DB for NoSQL pomocí sady Python SDK. Po připojení můžete provádět operace s databázemi, kontejnery a položkami.
Referenční informace ke zdrojovému kódu knihovny s referenčními informacemi | | k rozhraní API pro balíčky | (PyPi) |
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Účet Služby Azure Cosmos DB for NoSQL Vytvořte účet rozhraní API pro NoSQL.
- Python 3.7 nebo novější
- Rozhraní příkazového řádku Azure (CLI) nebo Azure PowerShell
Nastavení projektu
Vytvořte prostředí, ve které můžete spustit kód Pythonu.
S virtuálním prostředím můžete balíčky Pythonu nainstalovat v izolovaném prostředí, aniž by to ovlivnilo zbytek systému.
Nainstalujte sadu Azure Cosmos DB for NoSQL Python SDK ve virtuálním prostředí.
pip install azure-cosmos
Vytvoření aplikace v Pythonu
Ve svém prostředí vytvořte nový soubor app.py a přidejte do něj následující kód:
import json
import os
import sys
import uuid
from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey
Předchozí kód importuje moduly, které použijete ve zbývající části článku.
Připojení ke službě Azure Cosmos DB for NoSQL
Pokud se chcete připojit k rozhraní API pro NoSQL služby Azure Cosmos DB, vytvořte instanci CosmosClient
třídy. Tato třída je výchozím bodem pro provádění všech operací s databázemi.
Pokud se chcete připojit k účtu API for NoSQL pomocí Microsoft Entra, použijte objekt zabezpečení. Přesný typ objektu zabezpečení bude záviset na tom, kde hostujete kód aplikace. Následující tabulka slouží jako stručná referenční příručka.
Kde aplikace běží | Objekt zabezpečení |
---|---|
Místní počítač (vývoj a testování) | Identita uživatele nebo instanční objekt |
Azure | Spravovaná identita |
Servery nebo klienti mimo Azure | Instanční objekt |
Import Azure.Identity
Balíček azure-identity obsahuje základní funkce ověřování, které se sdílí mezi všemi knihovnami sady Azure SDK.
Naimportujte balíček azure-identity do svého prostředí.
pip install azure-identity
Vytvoření CosmosClient s výchozí implementací přihlašovacích údajů
Pokud testujete na místním počítači nebo vaše aplikace bude běžet na službách Azure s přímou podporou spravovaných identit, získejte token OAuth vytvořením DefaultAzureCredential
instance.
V app.py:
Získejte koncový bod pro připojení k vašemu účtu a nastavte ho jako proměnnou
COSMOS_ENDPOINT
prostředí .Importujte DefaultAzureCredential a vytvořte jeho instanci.
Vytvořte novou instanci třídy CosmosClient s koncovým bodem a přihlašovacími údaji jako parametry.
from azure.identity import DefaultAzureCredential
ENDPOINT = os.environ["COSMOS_ENDPOINT"]
credential = DefaultAzureCredential()
client = CosmosClient(ENDPOINT, credential)
Důležité
Podrobnosti o tom, jak přidat správnou roli, která se má povolit DefaultAzureCredential
, najdete v tématu Konfigurace řízení přístupu na základě role pomocí Microsoft Entra ID pro váš účet služby Azure Cosmos DB. Konkrétně si přečtěte část o vytváření rolí a jejich přiřazování k ID objektu zabezpečení.
Sestavení aplikace
Při vytváření aplikace bude váš kód primárně pracovat se čtyřmi typy prostředků:
Účet ROZHRANÍ API pro NoSQL, což je jedinečný obor názvů nejvyšší úrovně pro vaše data Azure Cosmos DB.
Databáze, které uspořádají kontejnery ve vašem účtu.
Kontejnery, které obsahují sadu jednotlivých položek v databázi.
Položky, které představují dokument JSON ve vašem kontejneru.
Na následujícím diagramu jsou vztahy těchto prostředků.
Hierarchický diagram znázorňující účet služby Azure Cosmos DB v horní části Účet má dva podřízené databázové uzly. Jeden z databázových uzlů zahrnuje dva podřízené uzly kontejneru. Druhý databázový uzel obsahuje jeden podřízený uzel kontejneru. Tento jeden uzel kontejneru má tři podřízené uzly položek.
Každý typ prostředku je reprezentován jednou nebo více přidruženými třídami Pythonu. Tady je seznam nejběžnějších tříd pro synchronní programování. (Existují podobné třídy pro asynchronní programování v rámci oboru názvů azure.cosmos.aio .)
Třída | Popis |
---|---|
CosmosClient |
Tato třída poskytuje logickou reprezentaci na straně klienta pro službu Azure Cosmos DB. Objekt klienta slouží ke konfiguraci a spouštění požadavků na službu. |
DatabaseProxy |
Rozhraní databáze, která může nebo nemusí existovat ve službě, ještě existuje. Tato třída by neměla být vytvořena přímo. Místo toho byste měli použít metodu get_database_client CosmosClient. |
ContainerProxy |
Rozhraní pro interakci s konkrétním kontejnerem Cosmos DB. Tato třída by neměla být vytvořena přímo. Místo toho pomocí metody DatabaseProxy get_container_client získejte existující kontejner nebo metodu create_container k vytvoření nového kontejneru. |
Následující příručky vám ukážou, jak pomocí každé z těchto tříd sestavit aplikaci.
Průvodce | Popis |
---|---|
Vytvoření databáze | Vytvoření databází |
Vytvoření kontejneru | Vytvořte kontejnery |
Příklady položek | Načtení konkrétní položky |