Tutorial: Menulis fungsi C# yang ditentukan pengguna untuk pekerjaan Azure Stream Analytics (Pratinjau)

Penting

Fungsi yang ditentukan pengguna .Net Standard untuk Azure Stream Analytics akan dihentikan pada 30 September 2024. Setelah tanggal tersebut, tidak akan mungkin untuk menggunakan fitur tersebut. Silakan transisi ke fungsi yang ditentukan pengguna JavaScript untuk Azure Stream Analytics.

Fungsi C# yang ditentukan pengguna (UDF) yang dibuat di Visual Studio, memungkinkan Anda memperluas bahasa kueri Azure Stream Analytics dengan fungsi Anda sendiri. Anda dapat menggunakan kembali kode yang ada (termasuk DLL) dan menggunakan logika matematika atau kompleks dengan C#. Ada tiga cara untuk menerapkan UDF:

  • File CodeBehind dalam proyek Azure Stream Analytics
  • UDF dari proyek C# lokal
  • UDF dari paket yang ada dari akun penyimpanan.

Tutorial ini menggunakan metode CodeBehind untuk mengimplementasikan fungsi C# dasar. Fitur UDF untuk pekerjaan Analisis Aliran saat ini dalam pratinjau dan tidak boleh digunakan dalam beban kerja produksi.

Dalam tutorial ini, Anda akan mempelajari cara:

  • Membuat fungsi C# yang ditentukan pengguna menggunakan CodeBehind.
  • Menguji pekerjaan Analisis Aliran Anda secara lokal.
  • Menerbitkan pekerjaan Anda ke Azure.

Prasyarat

Sebelum memulai, pastikan Anda telah menyelesaikan prasyarat berikut:

Membuat kontainer di Akun Azure Storage Anda

Kontainer yang Anda buat digunakan untuk menyimpan paket C# yang dikompilasi. Jika Anda membuat pekerjaan Edge, akun penyimpanan ini juga digunakan untuk menyebarkan paket ke perangkat IoT Edge Anda. Gunakan kontainer khusus untuk setiap tugas Analisis Aliran. Menggunakan kembali kontainer yang sama untuk beberapa pekerjaan Azure Stream Analytics Edge tidak didukung. Jika Anda sudah memiliki akun penyimpanan dengan kontainer yang ada, Anda dapat menggunakannya. Jika tidak, Anda perlu membuat kontainer baru.

Membuat proyek Analisis Aliran di Visual Studio

  1. Mulai Visual Studio.

  2. Pilih File >> Project Baru.

  3. Di daftar templat di sebelah kiri, pilih Analisis Aliran, lalu pilihAplikasi Azure Stack Edge Azure Stream Analytics atau Aplikasi Azure Stream Analytics.

  4. Masukkan Nama proyek, Lokasi, dan Nama solusi, dan pilih OK.

    Create an Azure Stream Analytics Edge project in Visual Studio

Mengonfigurasi jalur paket assembly

  1. Buka Visual Studio dan navigasikan ke Penjelajah Solusi.

  2. Klik dua kali file konfigurasi pekerjaan, JobConfig.json.

  3. Perluas bagian Konfigurasi Kode yang Ditentukan Pengguna, dan isi konfigurasi dengan nilai yang disarankan berikut ini:

    Pengaturan Nilai yang disarankan
    Sumber Daya Pengaturan Azure Storage Global Pilih sumber data dari akun saat ini
    Langganan Pengaturan Penyimpanan Global < langganan Anda >
    Akun Penyimpanan Pengaturan Penyimpanan Global < akun penyimpanan Anda >
    Sumber Daya Pengaturan Azure Storage Kode Kustom Pilih sumber data dari akun saat ini
    Akun Storage Pengaturan Azure Storage Kode Kustom < akun penyimpanan Anda >
    Kontainer Pengaturan Azure Storage Kode Kustom < kontainer penyimpanan Anda>

Menulis C# UDF dengan CodeBehind

File CodeBehind adalah file C# yang terkait dengan satu skrip kueri ASA. Alat Visual Studio secara otomatis meng-zip file CodeBehind dan mengunggahnya ke akun penyimpanan Azure Anda setelah pengiriman. Semua kelas harus didefinisikan sebagai publik, dan semua objek harus didefinisikan sebagai publik statis.

  1. Di Penjelajah Solusi, perluas Script.asql untuk menemukan file CodeBehind Script.asaql.cs.

  2. Ganti kode ini dengan sampel berikut:

        using System; 
        using System.Collections.Generic; 
        using System.IO; 
        using System.Linq; 
        using System.Text; 
    
        namespace ASAEdgeUDFDemo 
        { 
            public class Class1 
            { 
                // Public static function 
                public static Int64 SquareFunction(Int64 a) 
                { 
                    return a * a; 
                } 
            } 
        } 
    

Menerapkan UDF

  1. Di Penjelajah Solusi, buka file Script.asaql.

  2. Ganti kueri yang sudah ada dengan kueri berikut:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

Pengujian lokal

  1. Unduh file data sampel simulator suhu.

  2. Di Penjelajah Solusi, perlua Input, klik kanan Input.js, dan pilih Tambahkan Input Lokal.

    Add local input to Stream Analytics job in Visual Studio

  3. Tentukan jalur file input lokal untuk contoh data yang Anda unduh dan Simpan.

    Local input configuration for Stream Analytics job in Visual Studio

  4. Klik Jalankan Secara Lokal di editor skrip. Setelah eksekusi lokal berhasil menyimpan hasil output, tekan tombol apa pun untuk melihat hasil dalam format tabel.

    Run Azure Stream Analytics job locally with Visual Studio

  5. Anda juga dapat memilih Buka Folder Hasil untuk melihat file mentah dalam format JSON dan CSV.

    View results of local Azure Stream Analytics job with Visual Studio

Men-debug UDF

Anda dapat men-debug C# UDF Anda secara lokal dengan cara yang sama Anda debug kode C# standar.

  1. Tambahkan titik henti dalam fungsi C# Anda.

    Add breakpoints to Stream Analytics user-defined function in Visual Studio

  2. Tekan F5 untuk mulai penelusuran kesalahan. Program berhenti pada titik henti Anda seperti yang diharapkan.

    View Stream Analytics user-defined function debugging results

Menerbitkan pekerjaan Anda ke Azure

Setelah menguji kueri secara lokal, pilih Kirim ke Azure di editor skrip untuk menerbitkan pekerjaan ke Azure.

Submit your Stream Analytics Edge job to Azure from Visual Studio

Menyebarkan ke perangkat IoT Edge

Jika Anda memilih untuk membangun pekerjaan Azure Stream Analytics Edge, pekerjaan tersebut sekarang dapat disebarkan sebagai modul IoT Edge. Ikuti mulai cepat IoT Edge untuk membuat IoT Hub, mendaftarkan perangkat IoT Edge, dan menginstal dan memulai runtime IoT Edge di perangkat Anda. Lalu ikuti tutorial sebarkan tugas untuk menyebarkan pekerjaan Analisis Aliran Anda sebagai modul IoT Edge.

Langkah berikutnya

Dalam tutorial ini, Anda membuat fungsi C# sederhana yang ditentukan pengguna menggunakan CodeBehind, menerbitkan pekerjaan Anda ke Azure, dan menyebarkan pekerjaan ke perangkat Azure atau IoT Edge.

Untuk mempelajari selengkapnya tentang berbagai cara menggunakan fungsi yang ditentukan pengguna C# untuk pekerjaan Analisis Aliran, lanjutkan ke artikel ini: