Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam mulai cepat ini, Anda menyebarkan aplikasi Azure Cosmos DB for Table dasar menggunakan Azure SDK untuk Node.js. 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 untuk Node.js.
Dokumentasi Referensi API | Kode Sumber Pustaka | Paket (npm) | Azure Developer CLI
Prasyarat
- Azure Developer CLI
- Desktop Docker
- Node.js 22 atau yang lebih baru
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.
Buka terminal di direktori kosong.
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 loginGunakan
azd inituntuk menginisialisasi proyek.azd init --template cosmos-db-table-nodejs-quickstartSelama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up. Templat Bicep juga menyebarkan contoh aplikasi web.azd upSelama 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.
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.Gunakan URL di konsol untuk menavigasi ke aplikasi web Anda di browser. Amati output aplikasi yang sedang berjalan.
Memasang pustaka klien
Pustaka klien tersedia melalui npm, sebagai @azure/data-tables paket.
Buka terminal dan navigasi ke
/src/tsfolder .cd ./src/tsJika belum diinstal, instal
@azure/data-tablespaket menggunakannpm install.npm install --save @azure/data-tablesBuka dan tinjau file src/ts/package.json untuk memvalidasi bahwa entri
@azure/data-tablesada.
Buka terminal dan navigasi ke
/src/jsfolder .cd ./src/jsJika belum diinstal, instal
@azure/data-tablespaket menggunakannpm install.npm install --save @azure/data-tablesBuka dan tinjau file src/js/package.json untuk memvalidasi bahwa entri
@azure/data-tablesada.
Mengimpor pustaka
Impor DefaultAzureCredential, TableServiceClient, dan TableClient tipe ke dalam kode aplikasi Anda.
import { DefaultAzureCredential } from '@azure/identity';
import { TableServiceClient, TableClient } from '@azure/data-tables';
Impor semua jenis yang diperlukan ke dalam kode aplikasi Anda.
import { DefaultAzureCredential, TokenCredential } from '@azure/identity';
import { TableServiceClient, TableClient, TableEntityResult, GetTableEntityResponse, TableEntityResultPage, TableEntityQueryOptions } from '@azure/data-tables';
Model objek
| Nama | Deskripsi |
|---|---|
TableServiceClient |
Jenis ini adalah jenis klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun. |
TableClient |
Jenis ini mewakili klien tabel yang ada dalam 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 instans baru dari tipe TableServiceClient.
let client: TableServiceClient = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", "<credential>");
const credential = new DefaultAzureCredential();
let client = new TableServiceClient("<azure-cosmos-db-table-account-endpoint>", credential);
Dapatkan meja
Sampel ini membuat sebuah instans dari jenis TableClient menggunakan fungsi GetTableClient dari jenis TableServiceClient.
let table: TableClient = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
let table = new TableClient("<azure-cosmos-db-table-account-endpoint>", "<azure-cosmos-db-table-name>", credential);
Membuat entitas
Cara term mudah untuk membuat entitas baru dalam tabel adalah dengan memperoleh antarmuka baru dari TableEntity lalu membuat objek baru dari jenis tersebut.
export interface Product extends TableEntity {
name: string;
quantity: number;
price: number;
clearance: boolean;
}
const entity: Product = {
rowKey: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Cara term mudah untuk membuat item baru dalam tabel adalah dengan membangun objek JSON.
const entity = {
rowKey: 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
partitionKey: 'gear-surf-surfboards',
name: 'Yamba Surfboard',
quantity: 12,
price: 850.00,
clearance: false
};
Buat entitas dalam tabel menggunakan upsertEntity metode dari TableService instans.
await table.upsertEntity<Product>(entity, "Replace");
await table.upsertEntity(entity, "Replace");
Mendapatkan entitas
Anda dapat mengambil entitas tertentu dari tabel menggunakan getEntity metode , kunci baris untuk entitas, dan kunci partisi entitas.
const response: GetTableEntityResponse<TableEntityResult<Product>> = await table.getEntity<Product>(partitionKey, rowKey);
const entity: Product = response as Product;
const entity = await table.getEntity(partitionKey, rowKey);
Melakukan kueri entitas
Setelah menyisipkan entitas, Anda juga bisa menjalankan kueri untuk mendapatkan semua entitas yang cocok dengan filter tertentu dengan menggunakan listEntities filter OData.
const partitionKey: string = 'gear-surf-surfboards';
const filter: string = odata`PartitionKey eq '${partitionKey}'`
const queryOptions: TableEntityQueryOptions = { filter: filter }
const entities: PagedAsyncIterableIterator<TableEntityResult<Product>, TableEntityResultPage<Product>> = table.listEntities<Product>({ queryOptions: queryOptions });
const partitionKey = 'gear-surf-surfboards';
const entities = table.listEntities({
queryOptions: {
filter: odata`PartitionKey eq '${partitionKey}'`
}
});
Uraikan hasil kueri yang telah dipaginasi dengan menggunakan perulangan asinkron for await pada kumpulan data yang dipaginasi dari entities.
for await(const entity of entities) {
// Do something
}
for await(const entity of entities) {
// Do something
}
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan aplikasi sampel atau sumber daya, menghapus penyebaran terkait dan semua sumber daya.
azd down