Udostępnij za pośrednictwem


Rozpoczynanie pracy z usługą Azure Cosmos DB for NoSQL przy użyciu języka Python

DOTYCZY: NoSQL

W tym artykule pokazano, jak nawiązać połączenie z usługą Azure Cosmos DB for NoSQL przy użyciu zestawu SDK języka Python. Po nawiązaniu połączenia można wykonywać operacje na bazach danych, kontenerach i elementach.

Package (PyPi) | Samples | — kod | źródłowy | biblioteki źródłowej interfejsu API

Wymagania wstępne

konfigurowanie projektu

Utwórz środowisko, w którym można uruchomić kod języka Python.

Za pomocą środowiska wirtualnego można zainstalować pakiety języka Python w izolowanym środowisku bez wpływu na pozostałą część systemu.

Zainstaluj zestaw SDK języka Python usługi Azure Cosmos DB for NoSQL w środowisku wirtualnym.

pip install azure-cosmos

Tworzenie aplikacji w języku Python

W środowisku utwórz nowy plik app.py i dodaj do niego następujący kod:

import json
import os
import sys
import uuid

from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey

Poprzedni kod importuje moduły, które będą używane w pozostałej części artykułu.

Nawiązywanie połączenia z usługą Azure Cosmos DB for NoSQL

Aby nawiązać połączenie z interfejsem API for NoSQL usługi Azure Cosmos DB, utwórz wystąpienie CosmosClient klasy . Ta klasa jest punktem wyjścia do wykonywania wszystkich operacji względem baz danych.

Aby nawiązać połączenie z kontem interfejsu API dla noSQL przy użyciu usługi Microsoft Entra, użyj podmiotu zabezpieczeń. Dokładny typ podmiotu zabezpieczeń będzie zależeć od tego, gdzie hostujesz kod aplikacji. Poniższa tabela służy jako krótki przewodnik informacyjny.

Gdzie działa aplikacja Podmiot zabezpieczeń
Maszyna lokalna (programowanie i testowanie) Tożsamość użytkownika lub jednostka usługi
Azure Tożsamość zarządzana
Serwery lub klienci spoza platformy Azure Jednostka usługi

Importowanie pliku Azure.Identity

Pakiet azure-identity zawiera podstawowe funkcje uwierzytelniania, które są współużytkowane przez wszystkie biblioteki zestawu Azure SDK.

Zaimportuj pakiet azure-identity do środowiska.

pip install azure-identity

Tworzenie elementu CosmosClient z domyślną implementacją poświadczeń

Jeśli testujesz na komputerze lokalnym lub aplikacja będzie działać w usługach platformy Azure z bezpośrednią obsługą tożsamości zarządzanych, uzyskaj token OAuth, tworząc DefaultAzureCredential wystąpienie.

W app.py:

  • Pobierz punkt końcowy, aby nawiązać połączenie z kontem i ustawić go jako zmienną środowiskową COSMOS_ENDPOINT.

  • Zaimportuj wartość DefaultAzureCredential i utwórz jego wystąpienie.

  • Utwórz nowe wystąpienie klasy CosmosClient z punktem KOŃCOWYM i poświadczenie jako parametry.

from azure.identity import DefaultAzureCredential

ENDPOINT = os.environ["COSMOS_ENDPOINT"]

credential = DefaultAzureCredential()

client = CosmosClient(ENDPOINT, credential)

Ważne

Aby uzyskać szczegółowe informacje na temat dodawania prawidłowej roli w celu umożliwienia DefaultAzureCredential pracy, zobacz Konfigurowanie kontroli dostępu opartej na rolach przy użyciu identyfikatora Entra firmy Microsoft dla konta usługi Azure Cosmos DB. W szczególności zapoznaj się z sekcją dotyczącą tworzenia ról i przypisywania ich do identyfikatora podmiotu zabezpieczeń.

Kompilowanie aplikacji

Podczas kompilowania aplikacji kod będzie przede wszystkim współdziałać z czterema typami zasobów:

  • Interfejs API dla konta NoSQL, który jest unikatową przestrzenią nazw najwyższego poziomu dla danych usługi Azure Cosmos DB.

  • Bazy danych, które organizują kontenery na twoim koncie.

  • Kontenery, które zawierają zestaw pojedynczych elementów w bazie danych.

  • Elementy reprezentujące dokument JSON w kontenerze.

Na poniższym diagramie przedstawiono relacje między tymi zasobami.

Diagram hierarchii usługi Azure Cosmos DB, w tym kont, baz danych, kontenerów i elementów.

Diagram hierarchiczny przedstawiający konto usługi Azure Cosmos DB u góry. Konto ma dwa podrzędne węzły bazy danych. Jeden z węzłów bazy danych zawiera dwa podrzędne węzły kontenera. Drugi węzeł bazy danych zawiera jeden podrzędny węzeł kontenera. Ten pojedynczy węzeł kontenera ma trzy węzły elementów podrzędnych.

Każdy typ zasobu jest reprezentowany przez co najmniej jedną skojarzona klasę języka Python. Oto lista najpopularniejszych klas programowania synchronicznego. (Istnieją podobne klasy do programowania asynchronicznego w przestrzeni nazw azure.cosmos.aio ).

Klasa opis
CosmosClient Ta klasa zapewnia logiczną reprezentację po stronie klienta dla usługi Azure Cosmos DB. Obiekt klienta służy do konfigurowania i wykonywania żądań względem usługi.
DatabaseProxy Interfejs bazy danych, która może lub nie istnieje jeszcze w usłudze. Ta klasa nie powinna być tworzone bezpośrednio. Zamiast tego należy użyć metody get_database_client CosmosClient.
ContainerProxy Interfejs umożliwiający interakcję z określonym kontenerem usługi Cosmos DB. Ta klasa nie powinna być tworzone bezpośrednio. Zamiast tego użyj metody get_container_client DatabaseProxy, aby uzyskać istniejący kontener lub metodę create_container w celu utworzenia nowego kontenera.

W poniższych przewodnikach pokazano, jak utworzyć aplikację przy użyciu każdej z tych klas.

Przewodnik opis
Tworzenie bazy danych Tworzenie baz danych
Tworzenie kontenera Twórz kontenery
Przykłady elementów Punkt odczytu określonego elementu

Zobacz też

Następne kroki