Output Azure Functions dari Azure Stream Analytics

Azure Functions adalah layanan komputasi tanpa server yang dapat Anda gunakan untuk menjalankan kode sesuai permintaan tanpa harus memprovisikan atau mengelola infrastruktur secara eksplisit. Ini memungkinkan Anda menerapkan kode yang dipicu oleh peristiwa yang terjadi di Azure atau layanan mitra. Kemampuan Azure Functions dalam merespons pemicu ini menjadikannya output alami untuk Azure Stream Analytics. Adaptor output ini memungkinkan pengguna untuk menghubungkan Stream Analytics ke Azure Functions, dan menjalankan skrip atau sepotong kode sebagai respons terhadap berbagai peristiwa.

Azure Functions output dari Stream Analytics tidak tersedia di Microsoft Azure yang dioperasikan oleh 21Vianet dan Azure Jerman (T-Systems International). Koneksi ke Azure Functions di dalam jaringan virtual (VNet) dari pekerjaan Azure Stream Analytics yang berjalan di kluster multi-penyewa juga tidak didukung.

Azure Stream Analytics memanggil Azure Functions melalui pemicu HTTP. Adaptor output Azure Functions tersedia dengan properti yang dapat dikonfigurasi berikut:

Nama properti Deskripsi
Aplikasi fungsi Nama aplikasi Azure Functions Anda.
Fungsi Nama fungsi di aplikasi Azure Functions Anda.
Kunci Jika Anda ingin menggunakan Fungsi Azure dari langganan lain, Anda bisa melakukannya dengan menyediakan kunci untuk mengakses fungsi Anda.
Ukuran batch maksimum Properti yang memungkinkan Anda mengatur ukuran maksimum untuk setiap batch output yang dikirim ke fungsi Azure Anda. Unit input berada di byte. Secara default, nilai ini diatur ke 262.144 byte (256 KB).
Jumlah batch maksimum Properti yang memungkinkan Anda menentukan jumlah maksimum peristiwa di setiap batch yang dikirim ke Azure Functions. Nilai defaultnya adalah 100.

Azure Stream Analytics mengharapkan status HTTP 200 dari aplikasi Functions untuk batch yang berhasil diproses.

Saat Azure Stream Analytics menerima pengecualian 413 ("http Request Entity Too Large") dari fungsi Azure, itu mengurangi ukuran batch yang dikirim ke Azure Functions. Di kode fungsi Azure Anda, gunakan pengecualian ini untuk memastikan bahwa Azure Stream Analytics tidak mengirim batch besar. Pastikan bahwa nilai jumlah dan ukuran batch maksimum yang digunakan dalam fungsi sejalan dengan nilai yang dimasukkan di portal Azure Stream Analytics.

Catatan

Selama koneksi pengujian, Azure Stream Analytics (POST) mengirim kumpulan kosong ke Azure Functions untuk menguji apakah koneksi antara keduanya berfungsi. Pastikan aplikasi Functions Anda menangani permintaan batch kosong untuk memastikan koneksi pengujian lolos.

Selain itu, dalam situasi di mana tidak ada pendaratan peristiwa di jendela waktu, tidak ada output yang dihasilkan. Akibatnya, fungsi computeResult tidak dipanggil. Perilaku ini sejalan dengan fungsi agregat berjendela bawaan.

Pemartisian

Kunci partisi didasarkan pada klausul PARTITION BY dalam kueri. Jumlah penulis output mengikuti pemartisian input untuk kueri yang sepenuhnya dapat disejajarkan.

Ukuran batch output

Ukuran batch default adalah 262.144 byte (256 KB). Jumlah peristiwa default per batch adalah 100. Ukuran batch dapat dikonfigurasi dan dapat ditingkatkan atau diturunkan dalam opsi output Azure Stream Analytics.

Batasan

Azure Functions harus menyelesaikan permintaannya dalam waktu kurang dari 100 detik saat klien HTTP kehabisan waktu setelah 100 detik. Jika dibutuhkan lebih dari 100 detik bagi Azure Functions untuk memproses suatu batch data, ada batas waktu yang akan memicu percobaan ulang. Percobaan ulang ini dapat menghasilkan data duplikat karena Azure Functions akan memproses kembali data dan berpotensi menghasilkan output yang sama. Karena output mungkin telah dihasilkan sebagian dalam permintaan sebelumnya

Sampel kode

Output Azure Functions dapat digunakan untuk menyampaikan pesan ke database yang tidak didukung, seperti Redis, atau memperbarui tabel di Azure SQL.

Langkah berikutnya