JavaScript: Menyimpan data di MongoDB dengan Azure Function

Buat Azure Function API untuk menyimpan data dengan Mongoose API ke Cosmos DB, lalu sebarkan aplikasi Fungsi ke cloud Azure untuk hosting dengan titik akhir HTTP publik.

Flow chart showing path of HTTP request to pass data through Azure Function and store in Cosmos D B.

Kode sumber lengkap untuk aplikasi Azure Function ini:

Siapkan lingkungan pengembangan Anda

Instal perangkat lunak berikut:

Perangkat lunak berikut diinstal sebagai bagian dari tutorial nanti:

1. Masuk ke Azure di Visual Studio Code

Jika Anda telah menggunakan ekstensi layanan Azure, Anda seharusnya sudah masuk dan dapat melompati langkah ini.

Setelah Anda memasang ekstensi di Visual Studio Code, Anda perlu masuk ke akun Azure Anda.

  1. Di Visual Studio Code, pilih ikon Azure explorer, lalu pilih Masuk ke Azure, dan ikuti petunjuknya.

    Sign in to Azure through VS Code

  2. Setelah masuk, verifikasi bahwa alamat email akun Azure Anda muncul di Bilah Status dan langganan Anda muncul di Azure explorer:

    VS Code Azure explorer showing subscriptions

2. Buat grup sumber daya Azure

Grup sumber daya adalah kumpulan sumber daya berbasis wilayah. Dengan membuat grup sumber daya, lalu membuat sumber daya dalam grup itu, di akhir tutorial, Anda dapat menghapus grup sumber daya tanpa harus menghapus setiap sumber daya satu per satu.

  1. Di Visual Studio Code, pilih penjelajah Azure, lalu langganan Anda di bawah Grup Sumber Daya.

  2. Pilih + untuk membuat grup sumber daya baru.

  3. Gunakan tabel berikut untuk menyelesaikan petunjuk:

    Perintah Nilai
    Masukkan nama grup sumber daya baru. cosmosdb-mongodb-function-resource-group
    Pilih lokasi untuk sumber daya baru. Pilih lokasi geografis yang dekat dengan Anda.

3. Buat aplikasi Functions lokal

Buat aplikasi Azure Functions (tanpa server) lokal yang berisi fungsi pemicu HTTP.

  1. Di Visual Studio Code, pilih penjelajah Azure, lalu pilih Buat Proyek Baru di bagian Functions:

    Create a local Function app in VS Code

  2. Gunakan tabel berikut untuk menyelesaikan pembuatan proyek Azure Functions lokal:

    Perintah Nilai Catatan
    Pilih folder yang akan berisi proyek fungsi Anda. Pilih folder saat ini, yang merupakan nilai default.
    Pilih bahasa TypeScript
    Pilih templat untuk fungsi pertama proyek Anda Pemicu HTTP API dipanggil dengan permintaan HTTP.
    Menyediakan nama fungsi category Rute API adalah /api/category
    Tingkat Ootorisasi Fungsi Ini mengunci API jarak jauh ke permintaan yang meneruskan kunci fungsi dengan permintaan. Saat mengembangkan secara lokal, Anda tidak memerlukan kunci fungsi.

    Proses ini tidak membuat sumber daya Azure Function berbasis cloud. Langkah itu akan datang kemudian.

  3. Saat Visual Studio Code menyelesaikan pembuatan proyek, Anda memiliki folder yang dinamai untuk fungsi, kategori dengan tiga file:

    Filename Deskripsi
    index.ts Kode sumber yang menanggapi permintaan HTTP.
    function.json Konfigurasi pengikatan untuk pemicu HTTP.
    sample.dat File data tempat penampung untuk menunjukkan bahwa Anda dapat memiliki file lain di folder. Anda dapat menghapus file ini, jika diinginkan, karena tidak digunakan dalam tutorial ini.
  4. Di Visual Studio Code, buka terminal bash terintegrasi, Ctrl + ` dan instal dependensi aplikasi Azure Function:

    npm install
    
  5. Tambahkan paket alat inti Azure Function, yang diperlukan untuk menjalankan aplikasi Azure Function secara lokal:

    npm install --global azure-functions-core-tools@3
    
  6. Dalam file ./category/index.ts, tambahkan pesan context.log baru untuk mencetak nama ke log fungsi, disorot dalam kode berikut:

    import { AzureFunction, Context, HttpRequest } from "@azure/functions"
    
    const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
        context.log('HTTP trigger function processed a request.');
        const name = (req.query.name || (req.body && req.body.name));
        context.log(`*** HTTPExample name: ${name}`);
        const responseMessage = name
            ? "Hello, " + name + ". This HTTP triggered function executed successfully."
            : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";
    
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: responseMessage
        };
    
    };
    
    export default httpTrigger;
    

4. Jalankan fungsi serverless lokal

Jalankan proyek Azure Functions secara lokal untuk mengujinya sebelum disebarkan ke Azure.

  1. Dalam Visual Studio Code, file ./category/index.ts, atur titik impas pada blok context.res akhir, di akhir fungsi.

  2. Di Visual Studio Code, tekan F5 untuk meluncurkan penelusur kesalahan dan lampirkan ke host Azure Functions.

    Anda juga dapat menggunakan perintah menu DebugStart>Mulai Penelusuran Kesalahan.

  3. Output dari alat Functions Core muncul di panel Terminal.

    Partial screenshot of VSCode output terminal panel when debugging locally

  4. Untuk menyalin URL fungsi lokal, gunakan penjelajah Azure, klik kanan nama fungsi, kategori, lalu pilih Salin URL Fungsi.

    Partial screenshot of Visual Studio Code, with the Azure Function's button named Copy Function URL highlighted.

  5. Di browser Anda, tempel URL, lalu tambahkan ?name=YOUR-NAME ke akhir URL, ganti YOUR-NAME dengan nama Anda:

    Screenshot of web browser displaying results of HTTP trigger function parsing URL parameters.

    Karena fungsi berjalan secara lokal, API lokal Anda tidak memerlukan kunci fungsi untuk bekerja dengan sukses.

  6. Untuk melihat seluruh respons HTTP, gunakan perintah cURL berikut di terminal:

    curl http://localhost:7071/api/category?name=john --verbose
    
  7. Responnya adalah:

    *   Trying ::1:7071...
    *   Trying 127.0.0.1:7071...
    * Connected to localhost (127.0.0.1) port 7071 (#0)
    > GET /api/category?name=john HTTP/1.1
    > Host: localhost:7071
    > User-Agent: curl/7.75.0
    > Accept: */*
    >
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    < Date: Tue, 21 Sep 2021 17:35:05 GMT
    < Content-Type: text/plain; charset=utf-8
    < Server: Kestrel
    < Transfer-Encoding: chunked
    < Request-Context: appId=cid-v1:e981b763-c455-4e32-852c-73765b048a0f
    <
    Hello, john. This HTTP triggered function executed successfully.* Connection #0 to host localhost left intact
    

5. Atur dan berhenti di titik istirahat di aplikasi serverless

Dengan fungsi Anda berjalan secara lokal, atur titik henti pada berbagai bagian kode.

  1. Buka index.ts, lalu klik margin di sebelah kiri terakhir context.res, di jendela editor.

  2. Titik merah kecil muncul untuk menunjukkan titik henti.

  3. Ubah nilai ?name= untuk URL di terminal bash terintegrasi dan kirim kembali permintaan ke fungsi.

  4. Saat browser membuat permintaan itu, VS Code menghentikan kode fungsi pada titik henti itu:

    Screenshot of Visual Studio Code with breakpoint activated and Closure (httpTrigger) variables displaying request values.

    Perluas elemen Variabel bernama Closure (httpTrigger) untuk melihat properti permintaan. Anda dapat melihat semua properti yang diteruskan ke fungsi.

  5. Hentikan penelusur kesalahan di Visual Studio Code, ShiftF5 + F5.

6. Buat aplikasi Fungsi dan sebarkan ke Azure

  1. Di Visual Studio Code, pilih penjelajah Azure, lalu di bawah Fungsi, pilih ikon Sebarkan ke aplikasi Fungsi untuk menyebarkan aplikasi Anda:

    Deploy to Azure Functions command

    Sebagai alternatif, Anda dapat menyebarkan dengan membuka Command Palette (F1), memasukkan 'deploy to function app' untuk memfilter perintah, lalu pilih perintah Azure Functions: Deploy to Function App.

  2. Gunakan tabel berikut untuk menyelesaikan perintah untuk membuat sumber daya Azure Function baru.

    Perintah Nilai Catatan
    Pilih Aplikasi Fungsi di Azure Membuat aplikasi Fungsi baru di Azure (Tingkat Lanjut) Buat sumber daya berbasis cloud untuk fungsi.
    Masukkan nama unik secara global untuk Aplikasi Fungsi baru Nama tersebut menjadi bagian dari URL API. API dipanggil dengan permintaan HTTP. Karakter yang valid untuk nama aplikasi fungsi adalah 'a-z', '0-9', dan '-'. Contohnya cosmosdb-mongodb-function-app.
    Memilih tumpukan runtime Pilih tumpukan Node.js dengan deskriptor LTS. Memilih Node.js 14 LTS
    Pilih OS. Windows
    Pilih grup sumber daya untuk sumber daya baru. cosmosdb-mongodb-function-resource-group Pilih grup sumber daya yang Anda buat di artikel pertama seri ini.
    Pilih lokasi untuk sumber daya baru. Pilih wilayah yang direkomendasikan.
    Pilih paket hosting. Consumption
    Pilih akun penyimpanan. + Buat akun penyimpanan baru bernama cosmosdbmongodbstorage.
    Pilih sumber daya Application Insights untuk aplikasi Anda. Buat sumber daya Application Insights baru bernama cosmosdb-mongodb-function-app-insights.
  3. Panel Output Visual Studio Code untuk Azure Functions menunjukkan kemajuan:

    12:26:48 PM: Creating new function app "Visual Studio Codecosmosdb-mongodb-function-app"...
    12:27:09 PM: Successfully created function app "Visual Studio Codecosmosdb-mongodb-function-app": https://Visual Studio Codecosmosdb-mongodb-function-app.azurewebsites.net
    12:27:38 PM Visual Studio Codecosmosdb-mongodb-function-app: Starting deployment...
    12:27:40 PM Visual Studio Codecosmosdb-mongodb-function-app: Creating zip package...
    12:27:41 PM Visual Studio Codecosmosdb-mongodb-function-app: Uploading zip package to storage container...
    12:27:41 PM Visual Studio Codecosmosdb-mongodb-function-app: Zip package size: 2.73 kB
    12:27:44 PM Visual Studio Codecosmosdb-mongodb-function-app: Deployment successful.
    12:27:44 PM Visual Studio Codecosmosdb-mongodb-function-app: Started postDeployTask "npm install (functions)".
    12:27:55 PM Visual Studio Codecosmosdb-mongodb-function-app: Syncing triggers...
    12:27:57 PM Visual Studio Codecosmosdb-mongodb-function-app: Querying triggers...
    12:28:01 PM Visual Studio Codecosmosdb-mongodb-function-app: WARNING: Some http trigger urls cannot be displayed in the output window because they require an authentication token. Instead, you may copy them from the Azure Functions explorer.
    

    Saat menyebarkan, seluruh aplikasi Fungsi disebarkan, setiap perubahan pada API individual disebarkan sekaligus.

  4. Saat sumber daya dibuat, pemberitahuan muncul, biasanya di sudut kiri bawah Visual Studio Code.

  5. Dalam pemberitahuan, pilih Log aliran dan tetap buka tampilan saat Anda mengajukan permintaan ke API di bagian berikutnya.

7. Jalankan fungsi serverless jarak jauh

  1. Setelah penyebaran selesai, buka penjelajah Azure, perluas node untuk langganan Azure Anda, perluas node untuk aplikasi Functions Anda, lalu perluas Fungsi (hanya baca). Klik kanan nama fungsi, category dan pilih Salin URL Fungsi:

    Copy function URL command

  2. Tempelkan URL ke browser web. URL menyertakan tombol fungsi, code, sebagai parameter kueri.

  3. Tambahkan pasangannama/nilai kueri,&name=YOUR-NAME, ke URL. Browser menunjukkan fungsi yang berhasil berjalan di cloud.

    Screenshot of a browser showing the result of the API returns successfully.

  4. Sekarang hapus parameter string kueri code= dari URL dan kirimkan URL di browser lagi. Ini menyimulasikan permintaan yang tidak diotorisasi ke API aman Anda.

    Screenshot of a browser showing the result of the API returns an HTTP error code of 401.

  5. Tinjau proses masuk streaming Visual Studio Code untuk menemukan output Andacontext.log.

8. Tambahkan Cosmos DB untuk integrasi API MongoDB

Cosmos DB menyediakan API MongoDB untuk menyediakan titik integrasi yang sudah dikenal.

  1. Di Visual Studio Code, pilih Azure Explorer, lalu di bawah Database, pilih + untuk memulai proses pembuatan.

    Gunakan tabel berikut untuk menyelesaikan perintah untuk membuat sumber daya Azure Cosmos DB baru.

    Perintah Nilai Catatan
    Memilih Azure Database Server Azure Cosmos DB untuk MongoDB API
    Berikan nama akun Cosmos DB. cosmosdb-mongodb-database Nama menjadi bagian dari URL API.
    Pilih model kapasitas. Throughput yang tersedia
    Pilih grup sumber daya untuk sumber daya baru. cosmosdb-mongodb-function-resource-group Pilih grup sumber daya yang Anda buat di artikel pertama seri ini.
    Pilih lokasi untuk sumber daya baru. Pilih wilayah yang direkomendasikan.
  2. Di terminal Visual Studio Code, instal paket npm:

    npm install mongoose
    
  3. Di Visual Studio Code, buat subdirektori bernama lib, buat file bernama ./azure-cosmosdb-mongodb.ts dan salin kode berikut ke dalamnya.

    import { Schema, model, connect } from "mongoose";
    
    let db=null;
    
    const CategorySchema = new Schema(
      { categoryName: String },
      { timestamps: true }
    );
    const CategoryModel = model("Category", CategorySchema, "Bookstore");
    
    export const init = async () => {
      if(!db) {
        db = await connect(process.env["CosmosDbConnectionString"]);
      }
    };
    export const addItem = async (doc) => {
      const modelToInsert = new CategoryModel();
      modelToInsert["categoryName"] = doc.name;
    
      return await modelToInsert.save();
    };
    export const findItemById = async (id) => {
      return await CategoryModel.findById(id);
    };
    export const findItems = async (query = {}) => {
      return await CategoryModel.find({});
    };
    export const deleteItemById = async (id) => {
      return await CategoryModel.findByIdAndDelete(id);
    };
    

    File ini berisi skema luwak sederhana untuk kontainer Kategori.

  4. Di Visual Studio Code, buka file ./category/index.ts dan ganti seluruh kode file dengan yang berikut:

    import { AzureFunction, Context, HttpRequest } from "@azure/functions";
    import * as db from "../lib/azure-cosmosdb-mongodb";
    
    const httpTrigger: AzureFunction = async function (
      context: Context,
      req: HttpRequest
    ): Promise<void> {
      try {
        let response = null;
    
        // create 1 db connection for all functions
        await db.init();
    
        switch (req.method) {
          case "GET":
            if (req?.query.id || (req?.body && req?.body?.id)) {
              response = {
                documentResponse: await db.findItemById(req?.body?.id),
              };
            } else {
              // allows empty query to return all items
              const dbQuery =
                req?.query?.dbQuery || (req?.body && req?.body?.dbQuery);
              response = {
                documentResponse: await db.findItems(dbQuery),
              };
            }
            break;
          case "POST":
            if (req?.body?.document) {
              const insertOneResponse = await db.addItem(req?.body?.document);
              response = {
                documentResponse: insertOneResponse,
              };
            } else {
              throw Error("No document found");
            }
    
            break;
          case "DELETE":
            if (req?.query?.id || (req?.body && req?.body?.id)) {
              response = {
                documentResponse: await db.deleteItemById(req?.body?.id),
              };
            } else {
              throw Error("No id found");
            }
    
            break;
          default:
            throw Error(`${req.method} not allowed`)
        }
    
        context.res = {
          body: response,
        };
      } catch (err) {
        context.log(`*** Error throw: ${JSON.stringify(err)}`);
    
        context.res = {
          status: 500,
          body: err,
        };
      }
    };
    
    export default httpTrigger;
    
  5. Di Visual Studio Code, buka file ./category/function.json dan ubah properti metode untuk menyertakan hapus.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "req",
          "methods": [
            "get",
            "post",
            "delete"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "res"
        }
      ],
      "scriptFile": "../dist/category/index.js"
    }
    

9. Tambahkan string koneksi database ke proyek lokal

  1. Di Visual Studio Code, pilih penjelajah Azure, lalu di bawah Database, klik kanan database Anda dan pilih Salin String Koneksi.

    Partial screenshot of Visual Studio Code, showing the Azure explorer with a database selected and the right-click menu highlighting Copy Connection String.

  2. Buka file ./local.settings.json dan tambahkan properti CosmosDbConnectionString baru dan tempelkan dalam string koneksi database sebagai nilai.

    {
      "IsEncrypted": false,
      "Values": {
        
        "FUNCTIONS_WORKER_RUNTIME": "node",
        "CosmosDbConnectionString": ""
      }
    }
    

10. Gunakan API Fungsi Azure

Menambahkan item ke database dengan API

  1. Di Visual Studio Code, tekan F5 untuk meluncurkan penelusur kesalahan dan lampirkan ke host Azure Functions.

    Anda juga dapat menggunakan perintah menu DebugStart>Mulai Penelusuran Kesalahan.

  2. Gunakan perintah curl berikut di terminal bash terintegrasi untuk menambahkan John ke database Anda:

    curl -X POST http://localhost:7071/api/category \
       -H 'Content-Type: application/json' \
       -d '{"document":{"name":"John"}}' --verbose
    
  3. Respons mencakup ID item baru:

    {
      "documentResponse": {
        "_id": "614a45d97ccca62acd742550",
        "categoryName": "John",
        "createdAt": "2021-09-21T20:51:37.669Z",
        "updatedAt": "2021-09-21T20:51:37.669Z",
        "__v": 0
      }
    }
    
  4. Gunakan perintah curl berikut di terminal bash terintegrasi untuk menambahkan Sally ke database Anda:

    curl -X POST http://localhost:7071/api/category \
       -H 'Content-Type: application/json' \
       -d '{"document":{"name":"Sally"}}' --verbose
    
  5. Respons mencakup ID item baru:

    {
      "documentResponse": {
        "_id": "614a45d97bbba62acd742550",
        "categoryName": "Sally",
        "createdAt": "2021-09-21T20:51:37.669Z",
        "updatedAt": "2021-09-21T20:51:37.669Z",
        "__v": 0
      }
    }
    

Mendapatkan semua item dari database dengan API

  1. Gunakan perintah curl berikut untuk mendapatkan semua item dari database:

    curl -X GET http://localhost:7071/api/category \
       -H 'Content-Type: application/json' --verbose
    
  2. Respons mencakup ID item baru:

    {
      "documentResponse": [
        {
          "_id": "614a45d97ccca62acd742550",
          "categoryName": "John",
          "createdAt": "2021-09-21T20:51:25.288Z",
          "updatedAt": "2021-09-21T20:51:25.288Z",
          "__v": 0
        },
        {
          "_id": "614a45d97bbba62acd742550",
          "categoryName": "Sally",
          "createdAt": "2021-09-21T20:51:37.669Z",
          "updatedAt": "2021-09-21T20:51:37.669Z",
          "__v": 0
        }
      ]
    }
    

Melihat semua data dengan ekstensi Visual Studio Code

  1. Di Visual Studio Code, pilih Azure Explorer, lalu di bawah Database, klik kanan sumber daya Cosmos DB Anda, lalu database Uji, lalu koleksi Bookstore.

  2. Pilih salah satu item yang tercantum untuk melihat data di Cosmos DB.

    Partial screenshot of Visual Studio Code, showing the Azure explorer with the Databases with a selected item displayed in the reading pane.

Mendapatkan satu item dari database dengan API

  1. Gunakan perintah curl berikut untuk mendapatkan satu item dari database. Ganti DOCUMENT_ID dengan salah satu ID dari respons langkah sebelumnya:

    curl -X GET http://localhost:7071/api/category \
       -H 'Content-Type: application/json' \
       -d '{"id":"DOCUMENT_ID"}' --verbose
    
  2. Respons mencakup ID item baru:

    {
      "documentResponse": {
        "_id": "614a45cd7ccca62acd74254e",
        "categoryName": "John",
        "createdAt": "2021-09-21T20:51:25.288Z",
        "updatedAt": "2021-09-21T20:51:25.288Z",
        "__v": 0
      }
    }
    
  3. Kembali ke bagian Database Azure Explorer di Visual Studio Code, klik kanan cosmos DB Anda dan pilih Refresh untuk memverifikasi bahwa item tersebut telah dihapus dari sumber daya cloud.

Menghapus satu item dari database dengan API

  1. Gunakan perintah curl berikut untuk menghapus satu item dari database. Ganti DOCUMENT_ID dengan salah satu ID dari respons langkah sebelumnya:

    curl -X DELETE http://localhost:7071/api/category \
       -H 'Content-Type: application/json' \
       -d '{"id":"DOCUMENT_ID"}' --verbose
    
  2. Respons mencakup ID item baru:

    {
      "documentResponse": {
        "_id": "614a45cd7ccca62acd74254e",
        "categoryName": "John",
        "createdAt": "2021-09-21T20:51:25.288Z",
        "updatedAt": "2021-09-21T20:51:25.288Z",
        "__v": 0
      }
    }
    

11. Sebarkan ulang aplikasi fungsi untuk menyertakan kode database

  1. Di Visual Studio Code, pilih Azure Explorer, lalu di bawah Fungsi, pilih ikon sebarkan untuk memulai proses penyebaran.

    Partial screenshot of Visual Studio Code, showing the Azure explorer with the Functions deploy icon highlighted.

  2. Di jendela pop-up, pilih aplikasi fungsi yang sama, cosmosdb-mongodb-function-app untuk memulai penyebaran.

  3. Tunggu hingga penyebaran selesai sebelum melanjutkan.

12. Tambahkan string koneksi database ke fungsi jarak jauh

  1. Di Visual Studio Code, di Azure Explorer, di bawah Fungsi, pilih dan perluas aplikasi Fungsi Anda.

  2. Klik kanan Pengaturan Aplikasi dan pilih Tambahkan Pengaturan Baru.

    Partial screenshot of Visual Studio Code, showing the Azure explorer with the Functions Application Settings, with the Add new setting menu item highlighted.

  3. Masukkan nama pengaturan aplikasi, CosmosDbConnectionString dan tekan enter. Tinggalkan jendela pop berikutnya.

  4. Untuk mendapatkan string koneksi, pilih Azure Explorer, lalu di bawah Database, klik kanan database Anda dan pilih Salin String Koneksi.

  5. Tempelkan nilai ke jendela pop-up yang masih terbuka.

13. Gunakan Fungsi Azure berbasis cloud

  1. Masih di Azure Explorer, di area Fungsi, pilih dan perluas fungsi Anda lalu node Fungsi, yang mencantumkan API, kategori.

  2. Klik kanan item kategori dan pilih Salin URL Fungsi.

  3. Gunakan perintah cURL berikut, dan ganti YOUR-FUNCTION-URL. Jalankan setiap perintah di terminal secara berurutan.

    curl -X POST YOUR-FUNCTION-URL \
       -H 'Content-Type: application/json' \
       -d '{"document":{"name":"John"}}' --verbose
    
    curl -X POST YOUR-FUNCTION-URL \
       -H 'Content-Type: application/json' \
       -d '{"document":{"name":"Sally"}}' --verbose
    
    curl -X GET YOUR-FUNCTION-URL \
       -H 'Content-Type: application/json' --verbose
    
  4. Gunakan perintah cURL berikut, dan ganti YOUR-FUNCTION-URL dan DOCUMENT_ID dengan ID dari perintah sebelumnya. Jalankan setiap perintah di terminal secara berurutan.

    curl -X GET YOUR-FUNCTION-URL \
       -H 'Content-Type: application/json' \
       -d '{"id":"DOCUMENT_ID"}' --verbose
    
    curl -X DELETE YOUR-FUNCTION-URL \
       -H 'Content-Type: application/json' \
       -d '{"id":"DOCUMENT_ID"}' --verbose
    

14. Buat kueri log Fungsi Azure Anda

Untuk mencari log, gunakan portal Azure.

  1. Di Visual Studio Code, pilih Azure Explorer, lalu di bawah Fungsi, klik kanan aplikasi fungsi Anda, lalu pilih Buka di Portal.

    Ini membuka portal Azure ke Fungsi Azure Anda.

  2. Pilih Pengaturan, pilih Application Insights, lalu pilih Lihat data Application Insights.

    Browser screenshot showing menu choices. Select **Application Insights** from the Settings, then select **View Application Insights data**.

    Tautan ini membawa Anda ke sumber daya metrik terpisah yang dibuat untuk Anda saat membuat Fungsi Azure dengan Visual Studio Code.

  3. Dari bagian Pemantauan, pilih Log. Jika jendela pop-up Kueri muncul, pilih X di pojok kanan atas pop-up untuk menutupnya.

  4. Di panel Kueri Baru 1, pada tab Tabel, klik dua kali tabel jejak.

    Ini memasukkan kueri Kusto, traces ke jendela kueri.

  5. Eedit kueri untuk mencari log kustom:

    traces 
    | where message startswith "***"
    
  6. Pilih Jalankan.

    Jika log tidak menampilkan hasil apa pun, mungkin karena ada penundaan beberapa menit antara permintaan HTTP ke Azure Function dan ketersediaan log di Kusto. Tunggu beberapa menit dan jalankan kueri lagi.

    Browser screenshot showing Azure portal Kusto query result for Trace table.

    Anda tidak perlu melakukan apa pun tambahan untuk mendapatkan informasi pencatatan ini:

    • Kode menggunakan fungsi context.log yang disediakan oleh kerangka Kerja Fungsi. Dengan menggunakan context, bukan console, pengelogan Anda dapat disaring ke fungsi individu tertentu. Ini berguna jika aplikasi Fungsi Anda memiliki banyak fungsi.
    • Aplikasi Fungsi menambahkan Application Insights untuk Anda.
    • Alat Kueri Kusto disertakan dalam portal Azure.
    • Anda dapat mengeklik traces alih-alih harus belajar menulis Kueri Kusto untuk mendapatkan bahkan informasi minimum dari log Anda.

15. Bersihkan sumber daya

Aplikasi Fungsi yang Anda buat menyertakan sumber daya yang dapat dikenakan biaya minimal (lihat Harga Fungsi). Hapus grup sumber daya untuk menghapus semua sumber daya dalam satu tindakan.

  1. Di Visual Studio Code, dari penjelajah Azure, temukan grup sumber daya di bagian Grup Sumber Daya, cosmosdb-mongodb-function-resource-group.

  2. Klik kanan nama grup sumber daya, lalu pilih Hapus.

    Use the Visual Studio Code extension, Azure Resource Groups, to delete the resource group and all resources within the group.

Langkah berikutnya

Pelajari lebih lanjut tentang Azure Functions:

Lihat ekstensi Azure lainnya:

Untuk mempelajari lebih lanjut tentang bekerja dengan Azure menggunakan Node.js, kunjungi sumber daya di bawah ini: