Aracılığıyla paylaş


Python kullanarak NoSQL için Azure Cosmos DB kullanmaya başlama

UYGULANANLAR: NoSQL

Bu makalede, Python SDK'sını kullanarak NoSQL için Azure Cosmos DB'ye nasıl bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra veritabanları, kapsayıcılar ve öğeler üzerinde işlemler gerçekleştirebilirsiniz.

Paket (PyPi) | Örnekler | API başvurusu | Kitaplık kaynak kodu | Geri Bildirim Ver

Önkoşullar

Projenizi ayarlama

Python kodunu çalıştırabileceğiniz bir ortam oluşturun.

Sanal bir ortamla, python paketlerini sisteminizin geri kalanını etkilemeden yalıtılmış bir ortama yükleyebilirsiniz.

Sanal ortama NoSQL için Azure Cosmos DB Python SDK'sını yükleyin.

pip install azure-cosmos

Python uygulamasını oluşturma

Ortamınızda yeni bir app.py dosyası oluşturun ve aşağıdaki kodu ekleyin:

import json
import os
import sys
import uuid

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

Yukarıdaki kod, makalenin geri kalanında kullanacağınız modülleri içeri aktarır.

NoSQL için Azure Cosmos DB'ye bağlanma

Azure Cosmos DB'nin NoSQL API'sine bağlanmak için sınıfının bir örneğini CosmosClient oluşturun. Bu sınıf, veritabanlarında tüm işlemleri gerçekleştirmek için başlangıç noktasıdır.

Microsoft Entra kullanarak NoSQL hesabına yönelik API'nize bağlanmak için bir güvenlik sorumlusu kullanın. Sorumlunun tam türü, uygulama kodunuzu nerede barındırdığınıza bağlıdır. Aşağıdaki tablo bir hızlı başvuru kılavuzu görevi görür.

Uygulamanın çalıştığı yer Güvenlik sorumlusu
Yerel makine (geliştirme ve test) Kullanıcı kimliği veya hizmet sorumlusu
Azure Yönetilen kimlik
Azure dışındaki sunucular veya istemciler Hizmet sorumlusu

Azure.Identity'i içeri aktarma

azure-identity paketi, tüm Azure SDK kitaplıkları arasında paylaşılan temel kimlik doğrulama işlevselliğini içerir.

azure-identity paketini ortamınıza aktarın.

pip install azure-identity

Varsayılan kimlik bilgisi uygulamasıyla CosmosClient oluşturma

Yerel bir makinede test ediyorsanız veya uygulamanız yönetilen kimlikler için doğrudan destekle Azure hizmetlerinde çalışacaksa bir örnek oluşturarak OAuth DefaultAzureCredential belirteci alın.

app.py:

  • Hesabınıza bağlanmak için uç noktayı alın ve bunu ortam değişkeni COSMOS_ENDPOINTolarak ayarlayın.

  • DefaultAzureCredential öğesini içeri aktarın ve bunun bir örneğini oluşturun.

  • Endpoint ve kimlik bilgilerini parametre olarak kullanarak CosmosClient sınıfının yeni bir örneğini oluşturun.

from azure.identity import DefaultAzureCredential

ENDPOINT = os.environ["COSMOS_ENDPOINT"]

credential = DefaultAzureCredential()

client = CosmosClient(ENDPOINT, credential)

Önemli

Çalışmayı etkinleştirmek DefaultAzureCredential için doğru rolü ekleme hakkında ayrıntılı bilgi için bkz . Azure Cosmos DB hesabınız için Microsoft Entra Id ile rol tabanlı erişim denetimini yapılandırma. Özellikle rol oluşturma ve bunları bir asıl kimliğe atama bölümüne bakın.

Uygulamanızı derleme

Uygulamanızı oluştururken kodunuz öncelikli olarak dört tür kaynakla etkileşim kurar:

  • Azure Cosmos DB verileriniz için benzersiz üst düzey ad alanı olan NoSQL hesabı için API.

  • Hesabınızdaki kapsayıcıları düzenleyen veritabanları.

  • Veritabanınızdaki tek tek öğeler kümesini içeren kapsayıcılar.

  • Kapsayıcınızdaki bir JSON belgesini temsil eden öğeler.

Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Hesaplar, veritabanları, kapsayıcılar ve öğeler dahil olmak üzere Azure Cosmos DB hiyerarşisinin diyagramı.

En üstte bir Azure Cosmos DB hesabını gösteren hiyerarşik diyagram. Hesabın iki alt veritabanı düğümü vardır. Veritabanı düğümlerinden biri iki alt kapsayıcı düğümü içerir. Diğer veritabanı düğümü tek bir alt kapsayıcı düğümü içerir. Bu tek kapsayıcı düğümünde üç alt öğe düğümü vardır.

Her kaynak türü bir veya daha fazla ilişkili Python sınıfıyla temsil edilir. Zaman uyumlu programlama için en yaygın sınıfların listesi aşağıdadır. (azure.cosmos.aio ad alanı altında zaman uyumsuz programlama için benzer sınıflar vardır.)

Sınıf Açıklama
CosmosClient Bu sınıf, Azure Cosmos DB hizmeti için istemci tarafı mantıksal gösterimi sağlar. İstemci nesnesi, hizmette istekleri yapılandırmak ve yürütmek için kullanılır.
DatabaseProxy Hizmette henüz var olabilen veya bulunmayabilecek bir veritabanı arabirimi. Bu sınıfın örneği doğrudan oluşturulamaz. Bunun yerine CosmosClient get_database_client yöntemini kullanmanız gerekir.
ContainerProxy Belirli bir Cosmos DB kapsayıcısıyla etkileşime geçmek için bir arabirim. Bu sınıfın örneği doğrudan oluşturulamaz. Bunun yerine, var olan bir kapsayıcıyı almak için DatabaseProxy get_container_client yöntemini veya yeni bir kapsayıcı oluşturmak için create_container yöntemini kullanın.

Aşağıdaki kılavuzlarda, uygulamanızı derlemek için bu sınıfların her birinin nasıl kullanılacağı gösterilmektedir.

Kılavuz Açıklama
Veritabanı oluşturma Veritabanları oluşturma
Kapsayıcı oluşturma Kapsayıcılar oluşturun
Öğe örnekleri Belirli bir öğeyi nokta okuma

Ayrıca bkz.

Sonraki adımlar