Latihan - Buat fungsi secara lokal menggunakan Core Tools
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.
Dari folder akar, jalankan
func init
untuk membuat proyek fungsi di folder baruloan-wizard
.func init loan-wizard
Saat diminta untuk memilih runtime pekerja, masukkan 3 untuk simpul.
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!
Di Cloud Shell, navigasikan ke direktori baru
loan-wizard
.cd ~/loan-wizard
Jalankan
func new
untuk memulai wizard pembuatan fungsi.func new
Saat diminta untuk memilih templat, masukkan 7 untuk pemicu HTTP.
Ketika diminta untuk memberikan nama fungsi untuk pemicu HTTP, masukkan
simple-interest
.Jalankan perintah berikut untuk membuka editor Cloud Shell.
code .
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.
Di panel FILES editor, perluas folder fungsi src>dan pilih simple-interest.js untuk membuka file di editor.
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
, danterm
dalam string kueri permintaan HTTP. Kemudian mengembalikan hasil perhitungan bunga sederhana (principal * rate * term
).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.
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 direktoriloan-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 prosesfunc
sedang berjalan.Masukkan perintah berikut untuk melihat log output.
code ~/output.txt
Dalam output, Anda akan melihat pesan yang mencantumkan
Functions: simple-interest:
tersedia sebagai permintaanhttp://localhost:7071/api/simple-interest
HTTP 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.
Tutup editor dengan memilih Ctrl+Q.
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.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!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)
Tutup editor dengan memilih Ctrl+Q.