Mulai menggunakan Azure Cosmos DB untuk NoSQL menggunakan Python
BERLAKU UNTUK: NoSQL
Artikel ini memperlihatkan kepada Anda cara menyambungkan ke Azure Cosmos DB for NoSQL menggunakan Python SDK. Setelah tersambung, Anda dapat melakukan operasi pada database, kontainer, dan item.
Paket (PyPi) | Sampel | kode | sumber pustaka referensi | API Berikan Umpan Balik
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Akun Azure Cosmos DB for NoSQL. Buat API untuk akun NoSQL.
- Python 3.7 atau yang lebih baru
- Azure Command-Line Interface (CLI) atau Azure PowerShell
Menyiapkan proyek Anda
Buat lingkungan tempat Anda dapat menjalankan kode Python.
Dengan lingkungan virtual, Anda dapat menginstal paket Python di lingkungan terisolasi tanpa memengaruhi sisa sistem Anda.
Instal Azure Cosmos DB untuk NoSQL Python SDK di lingkungan virtual.
pip install azure-cosmos
Membuat aplikasi Python
Di lingkungan Anda, buat file app.py baru dan tambahkan kode berikut ke dalamnya:
import json
import os
import sys
import uuid
from azure.core.exceptions import AzureError
from azure.cosmos import CosmosClient, PartitionKey
Kode sebelumnya mengimpor modul yang akan Anda gunakan di sisa artikel.
Menyambungkan ke Azure Cosmos DB for NoSQL
Untuk menyambungkan ke API untuk NoSQL Azure Cosmos DB, buat instans CosmosClient
kelas . Kelas ini adalah titik awal untuk melakukan semua operasi terhadap database.
Untuk menyambungkan ke API Anda untuk akun NoSQL menggunakan Microsoft Entra, gunakan prinsip keamanan. Jenis prinsipal yang tepat akan bergantung pada tempat Anda menghosting kode aplikasi. Tabel di bawah ini berfungsi sebagai panduan referensi singkat.
Tempat aplikasi berjalan | Prinsip keamanan |
---|---|
Komputer lokal (pengembangan dan pengujian) | Identitas pengguna atau perwakilan layanan |
Azure | Identitas terkelola |
Server atau klien di luar Azure | Perwakilan layanan |
Mengimpor Azure.Identity
Paket identitas azure berisi fungsionalitas autentikasi inti yang dibagikan di antara semua pustaka Azure SDK.
Impor paket identitas azure ke lingkungan Anda.
pip install azure-identity
Membuat CosmosClient dengan implementasi kredensial default
Jika Anda melakukan pengujian pada mesin lokal, atau aplikasi Anda akan berjalan di layanan Azure dengan dukungan langsung untuk identitas terkelola, dapatkan token OAuth dengan membuat instans DefaultAzureCredential
.
Di app.py Anda:
Dapatkan titik akhir untuk menyambungkan ke akun Anda dan atur sebagai variabel
COSMOS_ENDPOINT
lingkungan .Impor DefaultAzureCredential dan buat instansnya.
Buat instans baru kelas CosmosClient dengan TITIK AKHIR dan kredensial sebagai parameter.
from azure.identity import DefaultAzureCredential
ENDPOINT = os.environ["COSMOS_ENDPOINT"]
credential = DefaultAzureCredential()
client = CosmosClient(ENDPOINT, credential)
Penting
Untuk detail tentang cara menambahkan peran yang benar agar berfungsi DefaultAzureCredential
, lihat Mengonfigurasi kontrol akses berbasis peran dengan ID Microsoft Entra untuk akun Azure Cosmos DB Anda. Secara khusus, lihat bagian tentang membuat peran dan menetapkannya ke ID utama.
Bangun aplikasi Anda
Saat Anda membangun aplikasi, kode Anda utamanya akan berinteraksi dengan empat jenis sumber daya:
API untuk akun NoSQL, yang merupakan namespace layanan tingkat atas unik untuk data Azure Cosmos DB Anda.
Database, yang mengatur kontainer di akun Anda.
Kontainer, yang berisi sekumpulan item individual dalam database Anda.
Item, yang mewakili dokumen JSON dalam kontainer Anda.
Diagram berikut menunjukkan hubungan antara ketiga sumber daya ini.
Diagram hierarki memperlihatkan akun Azure Cosmos DB di bagian atas. Akun ini memiliki dua node database turunan. Salah satu node database tersebut memiliki dua node kontainer turunan. Sedangkan, node database lainnya hanya memiliki satu node kontainer turunan. Satu node kontainer tersebut memiliki tiga node item turunan.
Setiap jenis sumber daya diwakili oleh satu atau beberapa kelas Python terkait. Berikut adalah daftar kelas yang paling umum untuk pemrograman sinkron. (Ada kelas serupa untuk pemrograman asinkron di bawah namespace azure.cosmos.aio .)
Kelas | Deskripsi |
---|---|
CosmosClient |
Kelas ini menyediakan representasi logis sisi klien untuk layanan Azure Cosmos DB. Klien ini digunakan untuk mengonfigurasi dan menjalankan permintaan terhadap layanan. |
DatabaseProxy |
Antarmuka ke database yang mungkin, atau mungkin belum ada di layanan. Kelas ini tidak boleh diinstansiasi secara langsung. Sebagai gantinya, Anda harus menggunakan metode cosmosClient get_database_client . |
ContainerProxy |
Antarmuka untuk berinteraksi dengan kontainer Cosmos DB tertentu. Kelas ini tidak boleh diinstansiasi secara langsung. Sebagai gantinya, gunakan metode databaseProxy get_container_client untuk mendapatkan kontainer yang sudah ada, atau metode create_container untuk membuat kontainer baru. |
Panduan berikut menunjukkan cara menggunakan masing-masing kelas ini untuk membangun aplikasi Anda.
Panduan | Deskripsi |
---|---|
Membuat database | Membuat database |
Membuat kontainer | Membuat kontainer |
Contoh item | Membaca poin item tertentu |