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 panduan cepat ini, Anda menerapkan aplikasi dasar Azure Cosmos DB for NoSQL menggunakan Azure SDK untuk Node.js. Azure Cosmos DB for NoSQL adalah penyimpanan data tanpa skema yang memungkinkan aplikasi menyimpan data yang tidak terstruktur di cloud. Kueri data dalam kontainer Anda dan lakukan operasi umum pada item individual menggunakan Azure SDK untuk Node.js.
Dokumentasi referensi API | Kode sumber pustaka | Paket (npm) | Azure Developer CLI
Prasyarat
- Azure Developer CLI (Antarmuka Baris Perintah untuk Pengembang Azure)
- Docker Desktop
- 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 azure Cosmos DB untuk akun NoSQL dan menyebarkan aplikasi sampel dalam 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 login
Gunakan
azd init
untuk menginisialisasi proyek.azd init --template cosmos-db-nosql-nodejs-quickstart
Selama inisialisasi, konfigurasikan nama lingkungan yang unik.
Sebarkan akun Azure Cosmos DB menggunakan
azd up
. Templat Bicep tersebut juga menyebarkan aplikasi web sampel.azd up
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.
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 Manajer Paket Node, dalam paket @azure/cosmos
.
Buka terminal dan navigasi ke
/src
folder .cd ./src
Jika belum diinstal, instal
@azure/cosmos
paket menggunakannpm install
.npm install --save @azure/cosmos
Selain itu, instal paket
@azure/identity
jika belum terinstal.npm install --save @azure/identity
Buka dan tinjau file src/package.json untuk memvalidasi bahwa
azure-cosmos
entri danazure-identity
keduanya ada.
Mengimpor pustaka
Impor DefaultAzureCredential
dan CosmosClient
jenis ke dalam kode aplikasi Anda.
import { DefaultAzureCredential } from '@azure/identity';
import { CosmosClient } from '@azure/cosmos';
Impor semua jenis yang diperlukan ke dalam kode aplikasi Anda.
import { PagedAsyncIterableIterator } from '@azure/core-paging';
import { DefaultAzureCredential, TokenCredential } from '@azure/identity';
import { Container, CosmosClient, Database, FeedResponse, ItemResponse, SqlQuerySpec } from '@azure/cosmos';
Model objek
Nama | Deskripsi |
---|---|
CosmosClient |
Kelas ini adalah kelas klien utama dan digunakan untuk mengelola metadata atau database di seluruh akun. |
Database |
Kelas ini mewakili database dalam akun. |
Container |
Kelas ini terutama digunakan untuk melakukan operasi baca, perbarui, dan hapus pada kontainer atau item yang disimpan dalam kontainer. |
PartitionKey |
Kelas ini mewakili kunci partisi logis. Kelas ini diperlukan untuk banyak operasi dan pertanyaan yang umum. |
SqlQuerySpec |
Antarmuka ini mewakili kueri SQL dan parameter kueri apa pun. |
Contoh kode
- Autentikasi klien
- Mendapatkan database
- Mendapatkan kontainer
- Membuat sebuah item
- Dapatkan item
- Kueri item
Kode sampel dalam templat menggunakan database bernama cosmicworks
dan kontainer bernama products
. Kontainer products
berisi detail seperti nama, kategori, kuantitas, pengidentifikasi unik, dan bendera penjualan untuk setiap produk. Kontainer menggunakan /category
properti sebagai kunci partisi logis.
Mengautentikasi klien
Sampel ini membuat instans baru jenis CosmosClient
dan mengautentikasi menggunakan DefaultAzureCredential
instans.
const credential = new DefaultAzureCredential();
const client = new CosmosClient({
'<azure-cosmos-db-nosql-account-endpoint>',
aadCredentials: credential
});
const credential: TokenCredential = new DefaultAzureCredential();
const client = new CosmosClient({
'<azure-cosmos-db-nosql-account-endpoint>',
aadCredentials: credential
});
Akses database
Gunakan client.database
untuk mengambil database yang sudah ada bernama cosmicworks
.
const database = client.database('cosmicworks');
const database: Database = client.database('cosmicworks');
Dapatkan kontainer
Ambil kontainer products
yang sudah ada menggunakan database.container
.
const container = database.container('products');
const container: Container = database.container('products');
Membuat barang
Buat objek baru dengan semua anggota yang ingin Anda serialkan ke JSON. Dalam contoh ini, tipe memiliki pengidentifikasi unik, dan bidang untuk kategori, nama, jumlah, harga, dan penjualan. Buat item dalam kontainer menggunakan container.items.upsert
. Metode ini melakukan "upsert" pada item, yaitu dengan efektif menggantikan item jika sudah ada.
const item = {
'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
'category': 'gear-surf-surfboards',
'name': 'Yamba Surfboard',
'quantity': 12,
'price': 850.00,
'clearance': false
};
let response = await container.items.upsert(item);
const item: Product = {
'id': 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb',
'category': 'gear-surf-surfboards',
'name': 'Yamba Surfboard',
'quantity': 12,
'price': 850.00,
'clearance': false
};
let response: ItemResponse<Product> = await container.items.upsert<Product>(item);
Bacalah item
Lakukan operasi baca titik dengan menggunakan bidang pengidentifikasi unik (id
) dan kunci partisi. Gunakan container.item
untuk mendapatkan pointer ke item dan item.read
untuk mengambil item tertentu secara efisien.
const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';
let response = await container.item(id, partitionKey).read();
let read_item = response.resource;
const id = 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';
const partitionKey = 'gear-surf-surfboards';
let response: ItemResponse<Product> = await container.item(id, partitionKey).read<Product>();
let read_item: Product = response.resource!;
Buat kueri item
Lakukan kueri melalui beberapa item dalam kontainer menggunakan container.items.query
. Temukan semua item dalam kategori tertentu menggunakan kueri berparameter ini:
SELECT * FROM products p WHERE p.category = @category
Ambil semua hasil kueri menggunakan query.fetchAll
. Telusuri hasil kueri.
const querySpec = {
query: 'SELECT * FROM products p WHERE p.category = @category',
parameters: [
{
name: '@category',
value: 'gear-surf-surfboards'
}
]
};
let response = await container.items.query(querySpec).fetchAll();
for (let item of response.resources) {
// Do something
}
const querySpec: SqlQuerySpec = {
query: 'SELECT * FROM products p WHERE p.category = @category',
parameters: [
{
name: '@category',
value: 'gear-surf-surfboards'
}
]
};
let response: FeedResponse<Product> = await container.items.query<Product>(querySpec).fetchAll();
for (let item of response.resources) {
// Do something
}
Jelajahi sampel Anda
Gunakan ekstensi Visual Studio Code untuk Azure Cosmos DB untuk menjelajahi data NoSQL Anda. Anda dapat melakukan operasi database inti termasuk, tetapi tidak terbatas pada:
- Melakukan kueri menggunakan buku catatan atau editor kueri
- Memodifikasi, memperbarui, membuat, dan menghapus item
- Mengimpor data massal dari sumber lain
- Mengelola database dan kontainer
Untuk informasi selengkapnya, lihat Cara menggunakan ekstensi Visual Studio Code untuk menjelajahi Azure Cosmos DB untuk data NoSQL.
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan aplikasi sampel atau sumber daya, hapus penyebaran terkait dan semua sumber daya tersebut.
azd down