Latihan - Buat fungsi secara lokal menggunakan Core Tools

Selesai

Alat Inti Azure Functions memungkinkan Anda mengembangkan fungsi secara lokal di komputer Anda sendiri dengan:

  • Membuat file dan folder yang diperlukan untuk proyek fungsi.
  • Menyediakan host Functions yang berjalan secara lokal dari direktori akar proyek Anda.

Anda memutuskan untuk memulai pekerjaan Anda secara lokal dengan Azure Functions dengan mengembangkan fungsi yang menghitung minat sederhana. Akhirnya, Anda dapat membuat fungsi yang lebih kompleks yang bekerja sama dan memanggil layanan dan database lain. Menggunakan Core Tools untuk membangun fungsi yang melakukan perhitungan pinjaman dasar adalah awal yang baik. Anda juga ingin mencoba menjalankan fungsi Anda di komputer Anda sendiri sebelum menerbitkannya ke Azure. Anda dapat melakukan semuanya dari Azure Cloud Shell menggunakan Alat Inti.

Azure Cloud Shell dilengkapi dengan Alat Core, CLI Azure, dan editor yang dapat Anda gunakan untuk menulis kode. Pastikan untuk memilih Aktifkan kotak pasir di atas sebelum Anda melanjutkan.

Membuat proyek Azure Functions lokal

Dalam latihan ini, gunakan Cloud Shell untuk mengembangkan fungsi JavaScript pertama Anda menggunakan Core Tools. Cloud Shell sudah memiliki versi Core Tools dan Node.js yang benar yang terinstal.

  1. Dari folder akar, jalankan func init untuk membuat proyek fungsi di folder baru loan-wizard .

    func init loan-wizard
    
  2. Saat diminta untuk memilih runtime pekerja, masukkan 3 untuk simpul.

  3. Saat diminta untuk memilih bahasa, masukkan 1 untuk javascript.

    Output mencantumkan file yang ditulis ke disk, termasuk file-file ini:

    • host.json mendukung konfigurasi tingkat aplikasi untuk instans runtime dan jenis pemicu dan pengikatan tertentu.
    • local.settings.json mengatur perilaku khusus lokal dan pengaturan aplikasi (variabel lingkungan lokal).
    • package.json adalah file khusus JavaScript yang melacak paket apa pun yang Anda instal dan gunakan dalam kode Anda.
    • .gitignore dan extensions.json adalah file konfigurasi yang digunakan oleh alat kontrol versi Git dan Visual Studio Code. Anda dapat mengabaikannya untuk saat ini.

Membuat fungsi yang dipicu HTTP

Saatnya untuk membuat fungsi Anda!

  1. Di Cloud Shell, navigasikan ke direktori baru loan-wizard .

    cd ~/loan-wizard
    
  2. Jalankan func new untuk memulai wizard pembuatan fungsi.

    func new
    
  3. Saat diminta untuk memilih templat, masukkan 7 untuk pemicu HTTP.

  4. Ketika diminta untuk memberikan nama fungsi untuk pemicu HTTP, masukkan simple-interest.

  5. Jalankan perintah berikut untuk membuka editor Cloud Shell.

    code .
    

    Screenshot showing the simple-interest folder with the function.json file open in Cloud Shell code editor.

    Wizard membuat file baru dalam proyek fungsi di bawah src/functions disebut simple-interest.js, yang memiliki konten templat default. Kode ini mendukung model pemrograman Node.js v4 untuk Azure Functions. Luangkan waktu sejenak untuk menjelajahi file proyek menggunakan editor. Cuplikan layar menunjukkan folder yang diperluas dengan simple-interest.js terbuka di editor.

Mengimplementasikan fungsi bunga sederhana

Implementasi fungsi default yang dibuat Core Tools untuk kami di simple-interest.js mencari input yang disebut name dalam string kueri atau isi permintaan HTTP masuk dan mengembalikan string Hello, [name]. Ini adalah ilustrasi yang baik tentang cara menggunakan pemicu HTTP, tetapi Anda ingin mengganti kode tersebut dengan kode yang menghitung minat sederhana dari tiga parameter input.

  1. Di panel FILES editor, perluas folder fungsi src>dan pilih simple-interest.js untuk membuka file di editor.

  2. Ganti konten lengkap simple-interest.js dengan kode berikut:

    const { app } = require('@azure/functions');
    
    app.http('simple-interest', {
        methods: ['GET','POST'],
        authLevel: 'anonymous',
        handler: async (request, context) => {
            const principal = parseFloat(request.query.get('principal'));
            const rate = parseFloat(request.query.get('rate'));
            const term = parseFloat(request.query.get('term'));
    
          if ([principal, rate, term].some(isNaN)) {
            // If any empty or non-numeric values, return a 400 response with an
            // error message
            return {
              status: 400,
              body: "Please supply principal, rate and term in the query string"
            };
          } else {
            // Otherwise set the response body to the product of the three values
            return { body: principal * rate * term };
          }
        }
    });
    

    Skrip ini mencari parameter bernama principal, rate, dan term dalam string kueri permintaan HTTP. Kemudian mengembalikan hasil perhitungan bunga sederhana (principal * rate * term).

  3. Simpan file dengan menekan Ctrl+S, dan tutup editor dengan menekan Ctrl+Q.

Jalankan fungsi di Cloud Shell

Untuk menjalankan fungsi baru Anda secara lokal untuk mencobanya, gunakan func start untuk memulai runtime Functions (func.exe) dalam proses latar belakang sehingga Anda dapat menggunakan baris perintah saat sedang berjalan. Kemudian, gunakan alat baris perintah, curl, untuk berinteraksi dengan fungsi .

Jika Anda menggunakan Core Tools dari komputer Anda sendiri, Anda dapat menggunakan curl dari jendela terminal kedua atau browser web. Output yang dihasilkan oleh Core Tools muncul secara real time di jendela terminal pertama. Di Cloud Shell, Anda terbatas pada satu terminal, jadi Anda perlu menjalankan Core Tools (func.exe) dalam proses latar belakang.

  1. Jalankan perintah berikut untuk memulai host Functions secara tersembunyi di latar belakang.

    func start &> ~/output.txt &
    

    Seperti func new, Cloud Shell masih harus berada dalam direktori loan-wizard.

    Host Functions sekarang menulis outputnya ke file ~/output.txt. Anda dapat terus menggunakan baris perintah saat sedang berjalan.

    Gunakan perintah ps untuk memverifikasi bahwa proses func sedang berjalan.

  2. Masukkan perintah berikut untuk melihat log output.

    code ~/output.txt
    

    Dalam output, Anda akan melihat pesan yang mencantumkan Functions: simple-interest: tersedia sebagai permintaan http://localhost:7071/api/simple-interestHTTP GET dan POST .

    Catatan

    Jika Anda melihat pesan kesalahan, pilih Ctrl+C untuk menghentikan host. Pastikan bahwa konten file kode Anda sama dengan sampel.

    URL localhost ini tidak diterbitkan ke web, hanya dapat diakses dari alat yang berjalan di sesi Cloud Shell Anda.

  3. Tutup editor dengan memilih Ctrl+Q.

  4. Jalankan perintah berikut untuk mengirim permintaan HTTP GET ke fungsi yang berjalan secara lokal.

    curl "http://localhost:7071/api/simple-interest" -w "\n"
    

    Output, Please supply principal, rate and term in the query string, menunjukkan bahwa fungsi kami berhasil dipanggil dan dapat mengembalikan respons, tetapi Anda tidak memanggilnya seperti yang dimaksudkan. Anda perlu memberikan parameter sebagai bagian dari permintaan HTTP.

  5. Panggil fungsi lagi. Kali ini, berikan nilai untuk setiap parameter string kueri.

    curl "http://localhost:7071/api/simple-interest?principal=5000&rate=.035&term=36" -w "\n"
    

    Kali ini, outputnya adalah 6300. Fungsi Anda berfungsi seperti yang diharapkan!

  6. Masukkan perintah berikut untuk kembali melihat log output.

    code ~/output.txt
    

    Setelah entri log startup, Anda melihat menambahkan serangkaian entri log bertanda waktu untuk setiap kali Anda memanggil fungsi dengan curl:

    [2024-02-20T06:25:56.700Z] Executing 'Functions.simple-interest' (Reason='This function was programmatically called via the host APIs.', Id=5daf20c3-f204-41bb-a5b9-021acaf17c04)
    [2024-02-20T06:25:56.893Z] Executed 'Functions.simple-interest' (Succeeded, Id=5daf20c3-f204-41bb-a5b9-021acaf17c04, Duration=228ms)
    
    
  7. Tutup editor dengan memilih Ctrl+Q.