Jalankan kode Anda sesuai permintaan dengan Azure Functions

Selesai

Sekarang setelah kita membuat aplikasi fungsi, mari kita lihat cara membangun, mengonfigurasi, dan menjalankan fungsi. Kami akan menjalankan fungsi kami di latihan berikutnya, sehingga Anda tidak perlu menyelesaikan tugas apa pun di unit ini.

Memicu

Fungsi digerakkan oleh peristiwa, yang berarti dijalankan sebagai respons terhadap suatu peristiwa. Jenis peristiwa yang memulai fungsi disebut pemicu. Setiap fungsi harus dikonfigurasi dengan tepat satu pemicu.

Anda dapat memicu eksekusi fungsi dengan menggunakan permintaan HTTP, timer terjadwal, dan peristiwa dari layanan Azure berikut:

Layanan Azure Deskripsi pemicu
Penyimpanan Blob Memulai fungsi ketika blob baru atau diperbarui terdeteksi.
Azure Cosmos DB Memulai fungsi ketika menyisipkan dan pembaruan terdeteksi.
Event Grid Memulai fungsi saat peristiwa diterima dari Event Grid.
Event Hubs Memulai fungsi saat peristiwa diterima dari Azure Event Hubs.
Queue Storage Memulai fungsi saat item baru diterima pada antrean. Pesan antrean disediakan sebagai masukan ke fungsi.
Service Bus Memulai fungsi sebagai respons terhadap pesan dari antrean Service Bus.

Pengikatan

Pengikatan adalah cara deklaratif untuk menghubungkan data dan layanan ke fungsi Anda. Pengikatan berinteraksi dengan berbagai sumber data, yang berarti Anda tidak perlu menulis kode di fungsi untuk menghubungkan ke sumber data dan mengelola koneksi. Platform ini mengurus kompleksitas untuk Anda sebagai bagian dari kode pengikatan. Setiap pengikatan memiliki arah: Kode Anda membaca data dari pengikatan input , dan menulis data ke pengikatan output . Setiap fungsi dapat memiliki pengikatan nol atau lebih untuk mengelola data input dan output yang diproses oleh fungsi.

Pemicu adalah jenis pengikatan input yang memiliki kemampuan untuk memulai eksekusi beberapa kode.

Azure menyediakan sejumlah besar pengikatan untuk terhubung ke layanan penyimpanan dan pesan yang berbeda.

Menentukan pengikatan sampel

Mari kita lihat contoh mengonfigurasi fungsi dengan pengikatan input (pemicu) dan pengikatan output. Katakanlah kita ingin menulis baris baru ke penyimpanan Azure Table setiap kali pesan baru muncul di Azure Queue Storage. Skenario ini dapat diterapkan menggunakan pemicu Azure Queue Storage dan pengikatan output penyimpanan Azure Table.

Cuplikan berikut adalah file function.json untuk skenario ini.

{
  "bindings": [
    {
      "name": "order",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "myqueue-items",
      "connection": "MY_STORAGE_ACCT_APP_SETTING"
    },
    {
      "name": "$return",
      "type": "table",
      "direction": "out",
      "tableName": "outTable",
      "connection": "MY_TABLE_STORAGE_ACCT_APP_SETTING"
    }
  ]
}

Konfigurasi JSON kami menentukan bahwa fungsi kami dipicu saat pesan ditambahkan ke antrean bernama myqueue-items. Kemudian, nilai kembali fungsi kami ditulis ke outTable di penyimpanan Azure Table.

Untuk fungsi PowerShell, pengikatan output secara eksplisit ditulis dengan Push-OutputBinding cmdlet.

Contoh ini adalah ilustrasi sederhana tentang cara kami mengonfigurasi pengikatan untuk sebuah fungsi. Kita dapat mengubah output menjadi email menggunakan pengikatan SendGrid, atau menempatkan peristiwa ke Bus Layanan untuk memberi tahu beberapa komponen lain dalam arsitektur kita. Kita bahkan dapat memiliki beberapa pengikatan output untuk mendorong data ke berbagai layanan.

Tip

Untuk menampilkan dan mengedit konten function.js di portal Azure, dari Beranda, pilih aplikasi fungsi Anda, dan di panel kanan, pilih JSON View. Tampilan JSON Sumber Daya menampilkan ID Sumber Daya dan kode JSON yang dapat diedit. Untuk menutup tampilan JSON, pilih X di pojok kanan atas panel.

Tidak semua bahasa yang didukung oleh Functions menggunakan file function.json untuk menentukan fungsi.

Membuat aplikasi Functions di portal Azure

Azure Functions memiliki templat fungsi yang telah ditentukan sebelumnya, yang didasarkan pada jenis pemicu tertentu. Templat ini, dalam bahasa yang Anda pilih, memudahkan untuk mulai membuat fungsi pertama Anda.

Modul ini tidak didukung untuk semua bahasa yang didukung oleh Functions, dan portal itu sendiri tidak mendukung pembuatan fungsi dalam semua bahasa yang didukung oleh Functions.

Untuk bahasa yang didukung yang menggunakan file function.json untuk menentukan fungsi, Anda dapat membuat dan mengedit fungsi-fungsi ini langsung di portal Azure. Bahasa yang didukung portal ini meliputi: JavaScript, PowerShell, Python, dan C# Script (.csx). Bahasa yang menentukan fungsi langsung dalam kode itu sendiri harus dikembangkan di luar portal dan disebarkan ke Azure. Bahasa yang didukung nonportal ini meliputi: C#, Java, Python (model pemrograman v2), dan JavaScript/TypeScript (model pemrograman Node.js v4).

Templat fungsi

Saat membuat fungsi pertama di portal, Anda dapat memilih pemicu yang telah ditentukan sebelumnya untuk fungsi Anda. Berdasarkan pilihan Anda, Azure menghasilkan kode default dan informasi konfigurasi, seperti membuat entri log peristiwa saat data input diterima.

Memilih templat dari panel Tambahkan fungsi menyediakan akses mudah ke lingkungan pengembangan, pemicu, dan dependensi yang paling umum. Saat membuat fungsi di portal Azure, Anda dapat memilih dari lebih dari 20 templat. Setelah dibuat, Anda dapat menyesuaikan kode lebih lanjut.

Saat Anda membuat fungsi dari templat, beberapa file dibuat, termasuk file konfigurasi, function.json, dan file kode sumber, index.js.

Anda dapat membuat atau mengedit fungsi untuk aplikasi fungsi Anda dengan memilih Fungsi di bawah kategori Fungsi dari menu Aplikasi Fungsi.

Saat Anda memilih fungsi yang dibuat di aplikasi fungsi Anda, panel Fungsi terbuka. Dengan memilih Kode + Pengujian dari menu Fungsi, Anda memiliki akses ke tindakan di bilah perintah untuk menguji dan menjalankan kode, untuk menyimpan atau membuang perubahan yang Anda buat, atau untuk mendapatkan URL yang diterbitkan. Dengan memilih Uji/Jalankan dari bilah perintah, Anda dapat menjalankan kasus penggunaan untuk permintaan yang menyertakan string dan nilai kueri. Jalur fungsi di atas kotak kode menampilkan nama file yang terbuka. Anda dapat memilih file tertentu dari menu tarik-turun untuk menguji atau mengedit, misalnya, function.json.

Screenshot of the function code and test editor showing the expanded Test/Run view, with menu options highlighted.

Pada gambar sebelumnya, panel sebelah kanan memiliki tab Input dan Output . Memilih tab Input memungkinkan Anda membuat dan menguji fungsi dengan menambahkan parameter kueri dan menyediakan nilai untuk string kueri Anda. Tab Output menampilkan hasil permintaan.

Menguji fungsi Azure Anda

Setelah membuat fungsi di portal, Anda harus mengujinya. Ada dua pendekatan:

  • Mengujinya di portal
  • Menjalankannya secara manual

Pengujian di portal Azure

Portal ini juga menyediakan cara yang mudah untuk menguji fungsi Anda. Seperti yang dijelaskan sebelumnya, pada cuplikan layar sebelumnya. Saat Anda memilih Jalankan di panel ini, hasilnya muncul di tab Output secara otomatis, dan panel Log terbuka untuk menampilkan status.

Menjalankan fungsi secara manual

Anda dapat memulai fungsi dengan memicu pemicu yang dikonfigurasi secara manual. Misalnya, jika menggunakan pemicu HTTP, Anda dapat menggunakan alat, seperti Postman atau cURL, untuk memulai permintaan HTTP ke URL titik akhir fungsi Anda, yang tersedia dari definisi fungsi (Dapatkan URL fungsi).

Dasbor Pemantauan dan Application Insights

Kemampuan untuk memantau fungsi Anda sangat penting selama pengembangan dan produksi. Portal Azure menyediakan dasbor pemantauan, yang Anda aktifkan dengan mengaktifkan integrasi Application Insights. Di menu Aplikasi Fungsi, di bagian Pengaturan, pilih Application Insights, pilih Aktifkan Application Insights, lalu pilih Terapkan. Dalam kotak dialog, pilih Ya. Dasbor Application Insights menyediakan cara cepat untuk melihat riwayat operasi fungsi dengan menampilkan stempel waktu, kode hasil, durasi, dan ID operasi yang diisi oleh Application Insights.

Screenshot showing the HTTP function Application Insights dashboard with function results, corresponding HTTP status codes, and the Monitoring menu items highlighted.

Panel log streaming

Setelah mengaktifkan Application Insights di portal Azure, Anda dapat menambahkan pernyataan pengelogan ke fungsi untuk penelusuran kesalahan. Metode yang disebut untuk setiap bahasa melewati objek "pengelogan", yang dapat digunakan untuk menambahkan informasi log ke panel Log di panel Kode + Uji saat menjalankan pengujian.

Tulis ke log dari kode Anda menggunakan log metode pada objek, yang diteruskan context ke handler. Contoh berikut menulis ke tingkat log default (informasi):

context.log('Enter your logging statement here');

Tulis ke log dari kode Anda menggunakan Write-Host cmdlet, seperti yang ditunjukkan dalam contoh berikut:

Write-Host "Enter your logging statement here"

Kesalahan, kegagalan, peringatan, dan anomali

Anda dapat menggunakan Metrik atau opsi dari kategori Selidiki di menu Fungsi untuk memantau performa, mendiagnosis kegagalan, atau mengonfigurasi puluhan buku kerja yang telah ditentukan sebelumnya untuk mengelola aplikasi fungsi Anda. Semuanya mulai dari kesalahan kompilasi dan peringatan dalam kode, hingga statistik penggunaan berdasarkan peran.