Sdílet prostřednictvím


Začínáme se službou Azure Cosmos DB for NoSQL pomocí Pythonu

Tento článek vysvětluje, jak se připojit ke službě Azure Cosmos DB for NoSQL pomocí sady Python SDK. Po připojení proveďte operace s databázemi, kontejnery a položkami.

Balíček (PyPi) | Referenční informace k | rozhraní APIZdrojový kód | knihovnyVáš názor

Požadavky

Nastavení projektu

Vytvořte prostředí pro kód Pythonu.

Pomocí virtuálního prostředí nainstalujte balíčky Pythonu izolovaně, aniž by to ovlivnilo váš systém.

Nainstalujte sadu Azure Cosmos DB for NoSQL Python SDK ve svém 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 tento 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 použité 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 služby Azure Cosmos DB pro NoSQL, 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í závisí na tom, kde hostujete kód aplikace. Následující tabulka je stručná referenční příručka.

Kde aplikace běží Bezpečnostní subjekt
Místní počítač (vývoj a testování) Identita uživatele nebo služební principál
Azure Spravovaná identita
Servery nebo klienti mimo Azure Principal služby

Import Azure.Identity

Balíček azure-identity poskytuje základní funkce ověřování sdílené napříč všemi knihovnami sady Azure SDK.

Naimportujte azure-identity balíček 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 spouštíte aplikaci ve službách Azure s podporou spravované identity, získejte token OAuth vytvořením DefaultAzureCredential instance.

V souboru app.py :

  • Získejte koncový bod pro váš účet a nastavte ho jako proměnnou COSMOS_ENDPOINTprostř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 přidání správné role, která se má povolit DefaultAzureCredential, najdete v tématu Konfigurace řízení přístupu na základě role pomocí Id Microsoft Entra pro váš účet služby Azure Cosmos DB. Konkrétně si přečtěte části o vytváření rolí a jejich přiřazování k ID hlavního objektu.

Sestavení aplikace

Při vytváření aplikace váš kód primárně komunikuje se čtyřmi typy prostředků:

  • Rozhraní API pro účet NoSQL, které je jedinečným oborem názvů nejvyšší úrovně pro vaše data v 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.

Tento diagram znázorňuje vztah mezi těmito prostředky.

Diagram hierarchie služby Azure Cosmos DB, včetně účtů, databází, kontejnerů a položek

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 kontejnerové struktury. Druhý databázový uzel obsahuje jeden podřízený uzel kontejneru. Tento jeden uzel kontejneru má tři podřízené uzly položek.

Jedna nebo více přidružených tříd Pythonu představuje typ prostředku. Tento seznam zobrazuje nejběžnější třídy 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 konfiguruje a spouští požadavky na službu.
DatabaseProxy Rozhraní pro databázi, která mohla nebo nemohla v této službě ještě existovat. Tato třída by neměla být vytvořena přímo. Místo toho použijte 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.

Tyto příručky ukazují, jak pomocí každé z těchto tříd sestavit aplikaci.

Průvodce Popis
Vytvoření databáze Vytvořte databázi.
Vytvoření kontejneru Vytvořte kontejner.

Viz také

Další kroky