Mulai cepat: Memigrasikan aplikasi web MongoDB Node.js yang sudah ada ke Azure Cosmos DB

BERLAKU UNTUK: API Azure Cosmos DB untuk MongoDB

Dalam mulai cepat ini, Anda membuat dan mengelola akun Azure Cosmos DB untuk akun Mongo DB API dengan menggunakan Azure Cloud Shell, dan dengan aplikasi MEAN (MongoDB, Express, Angular, dan Node.js) yang dikloning dari GitHub. Azure Cosmos DB adalah layanan database multi-model yang memungkinkan Anda membuat dan kueri dokumen, tabel, nilai-kunci, dan database grafik dengan kemampuan distribusi global dan skala horizontal dengan cepat.

Prasyarat

  • Artikel ini memerlukan Azure CLI versi 2.0 atau yang lebih baru. Jika menggunakan Azure Cloud Shell, berarti versi terbaru sudah terpasang.

Mengkloning aplikasi sampel

Jalankan perintah berikut untuk mengkloning repositori sampel. Repositori sampel ini berisi aplikasi MEAN.js default.

  1. Buka perintah, buat folder baru bernama git-samples, lalu tutup perintah.

    mkdir "C:\git-samples"
    
  2. Buka jendela terminal git, seperti git bash, dan gunakan perintah cd untuk mengubah ke folder baru untuk memasang aplikasi sampel.

    cd "C:\git-samples"
    
  3. Jalankan perintah berikut untuk mengkloning repositori sampel. Perintah ini membuat salinan aplikasi sampel di komputer Anda.

    git clone https://github.com/prashanthmadi/mean
    

Jalankan aplikasi

Aplikasi MongoDB yang ditulis Node.js terhubung ke database Azure Cosmos DB Anda, yang mendukung klien MongoDB. Dengan kata lain, transparan terhadap aplikasi bahwa data disimpan dalam database Azure Cosmos DB.

Instal paket yang diperlukan dan mulai aplikasi.

cd mean
npm install
npm start

Aplikasi akan mencoba untuk terhubung ke sumber MongoDB dan gagal, melanjutkan dan keluar dari aplikasi ketika output menghasilkan "[MongoError: connect ECONNREFUSED 127.0.0.1:27017]".

Masuk ke Azure

Jika Anda menggunakan Azure CLI yang terinstal, masuk ke langganan Azure Anda dengan perintah masuk az dan ikuti petunjuk di layar. Anda dapat melewati langkah ini jika Anda menggunakan Azure Cloud Shell.

az login 

Menambahkan modul Azure Cosmos DB

Jika Anda menggunakan Azure CLI yang terinstal, periksa apakah komponen cosmosdb sudah diinstal dengan menjalankan perintah az. Jika cosmosdb ada dalam daftar perintah dasar, lanjutkan ke perintah berikutnya. Anda dapat melewati langkah ini jika Anda menggunakan Azure Cloud Shell.

Jika cosmosdb tidak ada dalam daftar perintah dasar, instal ulang Azure CLI.

Membuat grup sumber daya

Buat grup sumber daya dengan buat grup az. Grup sumber daya Azure adalah kontainer logis tempat sumber daya Azure seperti aplikasi web, database, dan akun penyimpanan disebarkan dan dikelola.

Contoh berikut membuat grup sumber daya di wilayah Eropa Barat. Pilih nama unik untuk grup sumber daya.

Jika Anda menggunakan Azure Cloud Shell, pilih Coba, ikuti perintah di layar untuk masuk, lalu salin perintah ke prompt perintah.

az group create --name myResourceGroup --location "West Europe"

Membuat akun Azure Cosmos DB

Buat akun Cosmos dengan perintah az cosmosdb create.

Dalam perintah berikut, harap ganti nama akun Cosmos unik Anda sendiri di mana Anda melihat tempat penampung <cosmosdb-name>. Nama unik ini akan digunakan sebagai bagian dari titik akhir Cosmos DB Anda (https://<cosmosdb-name>.documents.azure.com/), sehingga namanya harus unik di semua akun Cosmos di Azure.

az cosmosdb create --name <cosmosdb-name> --resource-group myResourceGroup --kind MongoDB

Parameter --kind MongoDB ini memungkinkan koneksi klien MongoDB.

Saat akun Azure Cosmos DB dibuat, Azure CLI menampilkan informasi yang mirip dengan contoh berikut.

Catatan

Contoh ini menggunakan JSON sebagai format output Azure CLI, yang merupakan default. Untuk menggunakan format output lain, lihat Format output untuk perintah Azure CLI.

{
  "databaseAccountOfferType": "Standard",
  "documentEndpoint": "https://<cosmosdb-name>.documents.azure.com:443/",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Document
DB/databaseAccounts/<cosmosdb-name>",
  "kind": "MongoDB",
  "location": "West Europe",
  "name": "<cosmosdb-name>",
  "readLocations": [
    {
      "documentEndpoint": "https://<cosmosdb-name>-westeurope.documents.azure.com:443/",
      "failoverPriority": 0,
      "id": "<cosmosdb-name>-westeurope",
      "locationName": "West Europe",
      "provisioningState": "Succeeded"
    }
  ],
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.DocumentDB/databaseAccounts",
  "writeLocations": [
    {
      "documentEndpoint": "https://<cosmosdb-name>-westeurope.documents.azure.com:443/",
      "failoverPriority": 0,
      "id": "<cosmosdb-name>-westeurope",
      "locationName": "West Europe",
      "provisioningState": "Succeeded"
    }
  ]
} 

Menyambungkan aplikasi Node.js Anda ke database

Dalam langkah ini, Anda menghubungkan aplikasi MEAN.js Anda ke akun database Azure Cosmos DB yang baru saja Anda buat.

Mengonfigurasi string koneksi di aplikasi Node.js Anda

Di repositori MEAN.js Anda, buka config/env/local-development.js.

Ganti isi file ini dengan kode berikut. Pastikan juga untuk mengganti dua tempat penampung <cosmosdb-name> dengan nama akun Cosmos Anda.

'use strict';

module.exports = {
  db: {
    uri: 'mongodb://<cosmosdb-name>:<primary_master_key>@<cosmosdb-name>.documents.azure.com:10255/mean-dev?ssl=true&sslverifycertificate=false'
  }
};

Mengambil kunci

Untuk menyambungkan ke database Cosmos, Anda memerlukan kunci database. Gunakan perintah az cosmosdb keys list untuk mengambil kunci utama.

az cosmosdb keys list --name <cosmosdb-name> --resource-group myResourceGroup --query "primaryMasterKey"

Azure CLI menghasilkan informasi yang mirip dengan contoh berikut.

"RUayjYjixJDWG5xTqIiXjC..."

Salin nilai primaryMasterKey. Tempelkan ini di atas <primary_master_key> di local-development.js.

Simpan perubahan Anda.

Jalankan aplikasi lagi.

Jalankan npm start lagi.

npm start

Pesan konsol akan memberi tahu Anda bahwa lingkungan pengembangan sedang berjalan.

Buka http://localhost:3000 di browser. Pilih Daftar di menu atas dan coba buat dua pengguna dummy.

Aplikasi MEAN.js sampel menyimpan data pengguna dalam database. Jika Anda berhasil dan MEAN.js secara otomatis masuk ke pengguna yang dibuat, maka koneksi Azure Cosmos DB Anda berfungsi.

MEAN.js connects successfully to MongoDB

Menampilkan data di Data Explorer

Data yang disimpan dalam database Cosmos tersedia untuk dilihat dan dikueri di portal Azure.

Untuk menampilkan, mengkueri, dan bekerja dengan data pengguna yang dibuat di langkah sebelumnya, masuk ke portal Microsoft Azure di browser web Anda.

Di kotak Pencarian teratas, masukkan Azure Cosmos DB. Ketika bilah akun Cosmos Anda terbuka, pilih akun Cosmos Anda. Di navigasi kiri, pilih Data Explorer. Perluas koleksi Anda di panel Koleksi, lalu Anda bisa menampilkan dokumen dalam koleksi, kueri data, dan bahkan membuat dan menjalankan prosedur, pemicu, dan UDF yang disimpan.

Data Explorer in the Azure portal

Menyebarkan aplikasi Node.js ke Azure

Dalam langkah ini, Anda menyebarkan aplikasi Node.js Anda ke Cosmos DB.

Anda mungkin memperhatikan bahwa file konfigurasi yang Anda ubah sebelumnya adalah untuk lingkungan pengembangan (/config/env/local-development.js). Saat Anda menyebarkan aplikasi ke App Service, aplikasi tersebut akan berjalan di lingkungan produksi secara default. Kini, Anda perlu membuat perubahan yang sama ke file konfigurasi masing-masing.

Di repositori MEAN.js Anda, buka config/env/production.js.

Di objek db, ganti nilai uri seperti yang ditunjukkan dalam contoh berikut. Pastikan untuk mengganti tempat penampung seperti sebelumnya.

'mongodb://<cosmosdb-name>:<primary_master_key>@<cosmosdb-name>.documents.azure.com:10255/mean?ssl=true&sslverifycertificate=false',

Catatan

Opsi ssl=true ini penting karena persyaratan Cosmos DB. Untuk informasi selengkapnya, lihat Persyaratan string koneksi.

Di terminal, lakukan semua perubahan Anda pada Git. Anda dapat menyalin kedua perintah untuk menjalankannya bersama-sama.

git add .
git commit -m "configured MongoDB connection string"

Membersihkan sumber daya

Setelah selesai dengan aplikasi dan akun Azure Cosmos DB, Anda dapat menghapus sumber daya Azure yang dibuat sehingga tidak dikenakan lebih banyak biaya. Untuk menghapus sumber daya:

  1. Di portal Azure, cari dan pilih Grup sumber daya.

  2. Dari daftar, pilih grup sumber daya yang Anda buat untuk mulai cepat ini.

    Select the resource group to delete

  3. Di panel Gambaran umum grup sumber daya, pilih Hapus grup sumber daya.

    Delete the resource group

  4. Di jendela berikutnya, masukkan nama grup sumber daya yang akan dihapus, lalu pilih Hapus.

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara membuat akun Azure Cosmos DB MongoDB API menggunakan Azure Cloud Shell, dan membuat dan menjalankan aplikasi MEAN.js untuk menambahkan pengguna ke akun. Kini Anda dapat mengimpor data tambahan ke akun Azure Cosmos DB.

Apakah Anda sedang mencoba membuat perencanaan kapasitas untuk migrasi ke Azure Cosmos DB? Anda dapat menggunakan informasi tentang kluster database Anda yang ada saat ini untuk perencanaan kapasitas.