Bagikan melalui


Mulai cepat: Menggunakan Azure Cosmos DB untuk NoSQL dengan Azure SDK untuk Node.js

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 Paket kode | sumber pustaka (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.

  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-nosql-nodejs-quickstart
    
  4. Selama inisialisasi, konfigurasikan nama lingkungan yang unik.

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

    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.

Cuplikan layar aplikasi web yang sedang berjalan.

Memasang pustaka klien

Pustaka klien tersedia melalui Node Package Manager, sebagai @azure/cosmos paket.

  1. Buka terminal dan navigasi ke /src folder .

    cd ./src
    
  2. Jika belum diinstal, instal @azure/cosmos paket menggunakan npm install.

    npm install --save @azure/cosmos
    
  3. Selain itu @azure/identity , instal paket jika belum diinstal.

    npm install --save @azure/identity
    
  4. Buka dan tinjau file src/package.json untuk memvalidasi bahwa azure-cosmos entri dan azure-identity keduanya ada.

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 kueri umum.
SqlQuerySpec Antarmuka ini mewakili kueri SQL dan parameter kueri apa pun.

Contoh kode

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
});

Mendapatkan database

Gunakan client.database untuk mengambil database yang sudah ada bernama cosmicworks.

const database = client.database('cosmicworks');
const database: Database = client.database('cosmicworks');

Mendapatkan kontainer

Ambil kontainer yang products ada menggunakan database.container.

const container = database.container('products');
const container: Container = database.container('products');

Membuat item

Buat objek baru dengan semua anggota yang ingin Anda serialkan ke JSON. Dalam contoh ini, jenis memiliki pengidentifikasi unik, dan bidang untuk kategori, nama, kuantitas, harga, dan penjualan. Buat item dalam kontainer menggunakan container.items.upsert. Metode ini "upsert" item secara efektif mengganti 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);

Baca 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. Mengulangi 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 scrapbook 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 data Azure Cosmos DB for NoSQL.

Membersihkan sumber daya

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

azd down