Bagikan melalui


Mulai Cepat: Menggunakan Azure Cosmos DB untuk Tabel dengan Azure SDK untuk Python

Dalam panduan cepat ini, Anda mengimplementasikan aplikasi Azure Cosmos DB for Table yang sederhana menggunakan Azure SDK untuk Python. Azure Cosmos DB for Table adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data tabel terstruktur di cloud. Anda mempelajari cara membuat tabel, baris, dan melakukan tugas dasar dalam sumber daya Azure Cosmos DB Anda menggunakan Azure SDK for Python.

Dokumentasi referensi API | Kode sumber pustaka | Paket (PyPI) | Azure Developer CLI

Prasyarat

  • Azure Developer CLI
  • Desktop Docker
  • Python 3.12

Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.

Menginisialisasi proyek

Gunakan Azure Developer CLI (azd) untuk membuat akun Azure Cosmos DB for Table dan menyebarkan aplikasi sampel kontainer. Aplikasi sampel menggunakan pustaka klien untuk mengelola, membuat, membaca, dan mengkueri data sampel.

  1. Buka terminal di direktori kosong.

  2. Jika Anda belum diautentikasi, autentikasi ke Azure Developer CLI menggunakan azd auth login. Ikuti langkah-langkah yang ditentukan oleh alat untuk mengautentikasi ke CLI menggunakan kredensial Azure pilihan Anda.

    azd auth login
    
  3. Gunakan azd init untuk menginisialisasi proyek.

    azd init --template cosmos-db-table-python-quickstart
    
  4. Selama inisialisasi, konfigurasikan nama lingkungan yang unik.

  5. Sebarkan akun Azure Cosmos DB menggunakan azd up. Templat Bicep juga menyebarkan contoh aplikasi web.

    azd up
    
  6. Selama proses provisi, pilih langganan Anda, lokasi yang diinginkan, dan grup sumber daya target. Tunggu hingga proses provisi selesai. Prosesnya dapat memakan waktu sekitar lima menit.

  7. Setelah provisi sumber daya Azure Anda selesai, URL ke aplikasi web yang sedang berjalan disertakan dalam output.

    Deploying services (azd deploy)
    
      (✓) Done: Deploying service web
    - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io>
    
    SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
    
  8. Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.

Cuplikan layar aplikasi web yang sedang berjalan.

Memasang pustaka klien

Pustaka klien tersedia melalui PyPi, sebagai azure-data-tables paket.

  1. Buka terminal dan navigasi ke /src folder .

    cd ./src
    
  2. Jika belum diinstal, instal azure-data-tables paket menggunakan pip install.

    pip install azure-data-tables
    
  3. Buka dan tinjau file src/requirements.txt untuk memvalidasi bahwa entri ada azure-data-tables .

Mengimpor pustaka

DefaultAzureCredential Impor jenis dan TableServiceClient ke dalam kode aplikasi Anda.

from azure.data.tables import TableServiceClient
from azure.identity import DefaultAzureCredential

Model objek

Nama Deskripsi
TableServiceClient Jenis ini adalah jenis klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun.
TableClient Tipe ini mewakili klien untuk tabel dalam suatu akun.

Contoh kode

Kode sampel dalam templat menggunakan tabel bernama cosmicworks-products. Tabel cosmicworks-products berisi detail seperti nama, kategori, kuantitas, harga, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Kontainer menggunakan pengidentifikasi unik sebagai kunci baris dan kategori sebagai kunci partisi.

Mengautentikasi klien

Sampel ini membuat instance baru dari jenis TableServiceClient.

credential = DefaultAzureCredential()

client = TableServiceClient(endpoint="<azure-cosmos-db-table-account-endpoint>", credential=credential)

Dapatkan meja

Sampel ini membuat instansiasi jenis TableClient menggunakan fungsi GetTableClient dari jenis TableServiceClient.

table = client.get_table_client("<azure-cosmos-db-table-name>")

Membuat entitas

Cara termudah untuk membuat entitas baru dalam tabel adalah dengan membuat objek baru dengan memastikan Anda menentukan properti RowKey dan PartitionKey yang wajib.

new_entity = {
    "RowKey": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    "PartitionKey": "gear-surf-surfboards",
    "Name": "Yamba Surfboard",
    "Quantity": 12,
    "Sale": False,
}

Buat entitas dalam tabel menggunakan upsert_entity.

created_entity = table.upsert_entity(new_entity)

Mendapatkan entitas

Anda dapat mengambil entitas tertentu dari tabel menggunakan get_entity.

existing_entity = table.get_entity(
    row_key="aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
    partition_key="gear-surf-surfboards",
)

Mengkueri entitas

Setelah menyisipkan entitas, Anda juga dapat menjalankan kueri untuk mendapatkan semua entitas yang cocok dengan filter tertentu dengan menggunakan query_entities filter OData string.

category = "gear-surf-surfboards"
# Ensure the value is OData-compliant by escaping single quotes
safe_category = category.replace("'", "''")
filter = f"PartitionKey eq '{safe_category}'"
entities = table.query_entities(query_filter=filter)

Uraikan hasil kueri yang dipaginasi dengan menggunakan perulangan for .

for entity in entities:
    # Do something

Membersihkan sumber daya

Saat Anda tidak lagi memerlukan aplikasi sampel atau sumber daya, hapus penyebaran dan semua sumber daya yang sesuai.

azd down