Kursus
Azure Functions adalah bagian dari layanan komputasi serverless milik Microsoft. Layanan ini memungkinkan Anda menjalankan potongan kode kecil sebagai respons terhadap peristiwa tanpa harus mengelola server sendiri.
Misalnya, sebuah function bisa berjalan saat menerima permintaan HTTP, ketika sebuah file diunggah ke penyimpanan, atau ketika waktu terjadwal tercapai.
“Serverless” tidak berarti tanpa server sama sekali. Artinya, Azure mengelola infrastruktur untuk Anda. Azure menangani penyediaan, penskalaan, dan pemeliharaan di balik layar.
Dalam panduan ini, saya akan membahas komponen dasarnya: trigger, binding, opsi hosting, dan contoh praktik untuk memulai.
Apa Itu Azure Functions?
Azure Function adalah potongan kode kecil yang berjalan ketika dipicu oleh peristiwa yang Anda tentukan. Anda menulis logikanya, dan Azure mengurus sisanya.
Ada tiga gagasan yang mendefinisikan model ini.
- Eksekusi berbasis peristiwa memungkinkan kode berjalan hanya saat sesuatu terjadi, bukan sepanjang waktu.
- Penskalaan otomatis memungkinkan Azure menambah atau mengurangi sumber daya komputasi sesuai permintaan.
- Penetapan harga berbasis konsumsi, dalam beberapa rencana hosting, membuat Anda membayar hanya untuk waktu ketika kode Anda benar-benar berjalan.
Idealnya, satu function melakukan satu tugas, seperti mengubah ukuran gambar atau memproses pesan. Function App adalah kontainer yang menampung satu atau lebih function. Kontainer ini mengelola pengaturan bersama, seperti konfigurasi dan deployment, untuk semua function di dalamnya.
Cara Kerja Azure Functions
Siklus hidup sebuah function mengikuti pola sederhana sebagai berikut:
- Terjadi peristiwa, seperti unggahan file atau panggilan HTTP.
- Trigger mendeteksi peristiwa tersebut dan segera menjalankan function.
- Function menjalankan kodenya.
- Binding menghubungkan function ke layanan lain yang membaca input atau mengirim output yang diperlukan.
- Azure mengelola sumber daya komputasi di balik proses ini, tentu saja berdasarkan rencana hosting yang Anda pilih.
Alur ini pada dasarnya sama terlepas dari bahasa atau opsi hosting yang digunakan. Hanya trigger, kode, dan binding yang berubah.
Trigger di Azure Functions
Setiap function memiliki tepat satu trigger. Trigger menentukan bagaimana function itu mulai berjalan. Berikut jenis yang paling umum dan perlu Anda ketahui:
- HTTP Trigger: Menjalankan function saat menerima permintaan HTTP. Umum digunakan untuk membangun API.
- Timer Trigger: Menjalankan function berdasarkan jadwal, misalnya setiap jam atau sekali sehari.
- Blob Storage Trigger: Menjalankan function saat file ditambahkan atau diubah di Azure Blob Storage.
- Queue Trigger: Menjalankan function saat ada pesan baru yang masuk ke antrian.
- Event Hub Trigger: Menjalankan function sebagai respons terhadap aliran peristiwa. Sangat berguna untuk data dalam jumlah besar.
- Cosmos DB Trigger: Menjalankan function saat dokumen dibuat atau diperbarui di kontainer Cosmos DB, memanfaatkan Change Feed.
- Service Bus Trigger: Menjalankan function sebagai respons terhadap pesan dari antrian atau topik Azure Service Bus, umum untuk pengiriman pesan tingkat enterprise dan pemisahan sistem.
- Durable Functions: Ekstensi Azure Functions yang memungkinkan Anda menulis function stateful di lingkungan serverless untuk mengorkestrasi alur kerja kompleks dan multi-langkah.
Binding di Azure Functions
Saya rasa trigger dan binding sering tertukar, namun meski terlihat mirip, keduanya memiliki tugas yang berbeda. Trigger memulai function, sedangkan binding menghubungkan function ke data dengan membacanya atau mengirimkannya.
Input binding
Di sini, Anda memberi data ke function tanpa menulis kode integrasi kustom. Misalnya, function dapat membaca sebuah record dari basis data secara otomatis hanya dengan mendeklarasikan binding.
Output binding
Ini memungkinkan Anda mengirim hasil function ke tempat lain. Contohnya, Anda bisa menggunakan output binding untuk menulis pesan yang telah diproses ke antrian.
Berikut contoh untuk membantu: Trigger Blob Storage memulai function saat sebuah gambar diunggah. Output binding kemudian menyimpan gambar yang telah diubah ukurannya ke kontainer penyimpanan lain. Binding menangani koneksi penyimpanan, dan tidak diperlukan kode klien penyimpanan manual.
Cara Membuat Azure Function Pertama Anda
Berikut contoh sederhana function dengan HTTP trigger yang mengembalikan salam. Alurnya sebagai berikut:
- Buat Function App. Ini adalah kontainer untuk function Anda di Azure.
- Pilih runtime dan tentukan bahasa pemrograman yang ingin digunakan.
- Tambahkan function baru di dalam Function App Anda.
- Pilih HTTP trigger agar function merespons permintaan web.
- Tambahkan fungsionalitas sederhana seperti membaca nama dari permintaan dan mengembalikan “Halo, [nama].”
- Jalankan dan uji function menggunakan alat pengujian bawaan atau cukup kirim permintaan dari browser Anda.
- Deploy ke Azure agar dapat diakses secara langsung.
Saya sengaja membuat contoh ini kecil untuk menunjukkan polanya, dan biarkan kreativitas Anda mengembangkan sisanya.
Bahasa yang Didukung Azure Functions
Azure Functions mendukung banyak bahasa, seperti:
- C#
- JavaScript/TypeScript
- Python
- Java
- PowerShell
Dukungan dan model pengembangan dapat berbeda menurut bahasa dan versinya. Karena itu, saya sarankan memeriksa dokumentasi Azure terbaru sebelum memulai proyek baru karena detail ini sering berubah.
Opsi Hosting Azure Functions
Tidak semua Azure Function berjalan dengan cara yang sama. Azure menawarkan beberapa rencana hosting dengan pertukaran (trade-off) yang berbeda. Pilihan yang tepat bergantung pada kebutuhan Anda. Pertukaran utamanya adalah:
- Penskalaan: Beberapa rencana melakukan penskalaan otomatis dan instan, sementara yang lain memerlukan kendali yang lebih manual.
- Perilaku startup: Beberapa rencana menjaga function tetap “hangat”, artinya siap berjalan seketika, sementara yang lain memulai function sesuai permintaan.
- Jaringan: Beberapa rencana mendukung fitur jaringan lanjutan seperti koneksi ke jaringan virtual privat, sementara yang lain tidak.
- Biaya: Model harga sangat berbeda, dari bayar per eksekusi hingga biaya bulanan tetap.
Penskalaan dan Cold Start di Azure Functions
Ada dua konsep lagi yang penting saat function Anda berjalan di produksi. Yaitu:
Penskalaan otomatis
Di sini, Azure mengamati beban pada function Anda. Ketika permintaan meningkat, Azure menambah instance komputasi, dan ketika permintaan menurun, Azure menguranginya. Anda tidak perlu mengelolanya secara manual.
Cold start
Jika sebuah function tidak berjalan baru-baru ini, mungkin perlu jeda sejenak untuk memulai sebelum dapat menangani permintaan baru. Keterlambatan ini disebut cold start. Beberapa rencana hosting mengurangi atau menghindarinya dengan menjaga instance tetap hangat, seperti disebutkan.
Kasus Penggunaan Umum Azure Functions
Model berbasis peristiwa cocok untuk banyak masalah sehari-hari yang mungkin Anda temui. Di antaranya:
API dan webhook
Untuk menangani permintaan HTTP masuk tanpa harus menjalankan server web penuh selama 24/7.
Pemrosesan file dan gambar
Memicu function setiap kali ada file masuk ke penyimpanan, lalu ubah ukuran, konversi, atau cukup memindainya.
Pekerjaan terjadwal
Menjalankan tugas pembersihan, laporan, atau pengingat menggunakan timer tanpa perlu server yang selalu aktif.
Pipeline pemrosesan data
Memproses pesan atau peristiwa saat tiba, selangkah demi selangkah.
IoT dan pemrosesan peristiwa
Menangani volume besar data sensor atau perangkat saat dialirkan masuk.
Tugas latar belakang
Mengalihkan pekerjaan yang lambat atau sesekali, seperti mengirim email, agar tidak menghambat aplikasi utama Anda.
Pemantauan dan Pemecahan Masalah Azure Functions
Setelah function aktif, Anda memerlukan visibilitas terhadap kinerjanya.
Anda, misalnya, dapat melihat log yang menyimpan apa yang terjadi pada setiap run, yang sangat membantu untuk debugging. Anda juga dapat memeriksa Application Insights di alat Azure, yang melacak kinerja, permintaan, dan kegagalan di satu tempat terpusat.
Anda juga sebaiknya melacak kegagalan invocation agar tahu kapan dan mengapa sebuah function tidak selesai. Pemantauan kinerja membantu Anda mendeteksi function yang lambat sebelum menjadi masalah, dan tentu saja perilaku retry dapat dikonfigurasi sehingga eksekusi yang gagal akan mencoba lagi secara otomatis.
Kesimpulan
Azure Functions memberi Anda cara menjalankan kode sebagai respons terhadap peristiwa, tanpa harus mengelola server di bawahnya. Trigger menentukan kapan sebuah function dimulai. Binding, di sisi lain, memudahkan menghubungkan function tersebut ke layanan lain tanpa kode integrasi tambahan.
Saat Anda beralih dari function uji sederhana ke yang berjalan di produksi, pilihan hosting dan penskalaan menjadi jauh lebih penting. Rencana yang tepat memengaruhi biaya, sekaligus kecepatan dan keandalan.
Saya mengembangkan sistem AI terakselerasi yang memungkinkan kecerdasan di edge dengan pipeline ML federasi pada data terdesentralisasi dan beban kerja terdistribusi. Fokus kerja saya mencakup Model Besar, Pemrosesan Ucapan, Vision Komputer, Reinforcement Learning, dan Topologi ML tingkat lanjut.
FAQs
Apa itu Azure Functions?
Layanan serverless yang menjalankan potongan kode kecil sebagai respons terhadap peristiwa, tanpa Anda mengelola server.
Apa yang memicu Azure Function?
Peristiwa seperti permintaan HTTP, timer, unggahan file, atau pesan antrian.
Apa perbedaan antara trigger dan binding?
Trigger memulai function. Binding menghubungkannya ke layanan lain untuk input atau output.
Apa itu cold start?
Jeda singkat saat function mulai setelah tidak aktif.
Bahasa apa saja yang didukung Azure Functions?
C#, JavaScript/TypeScript, Python, Java, dan PowerShell.

