Öğretici: Azure Stream Analytics işi için C# kullanıcı tanımlı işlev yazma (Önizleme)

Önemli

Azure Stream Analytics için .Net Standard kullanıcı tanımlı işlevler 30 Eylül 2024'te kullanımdan kaldırılacaktır. Bu tarihten sonra özelliği kullanmak mümkün olmayacaktır. Lütfen Azure Stream Analytics için JavaScript kullanıcı tanımlı işlevlerine geçin.

Visual Studio'da oluşturulan C# kullanıcı tanımlı işlevler (UDF), Azure Stream Analytics sorgu dilini kendi işlevlerinizi kullanarak genişletmenizi sağlar. C# ile var olan kodu (DLL'ler dahil) yeniden kullanabilir, matematiksel veya karmaşık mantıklardan faydalanabilirsiniz. UDF'leri uygulamanın üç yolu vardır:

  • Stream Analytics projesinde CodeBehind dosyaları
  • Yerel C# projesinden UDF'ler
  • Depolama hesabından mevcut bir paketten UDF'ler.

Bu öğreticide CodeBehind yöntemi kullanılarak basit bir C# işlevi uygulanmaktadır. Stream Analytics işleri için UDF özelliği şu anda önizleme aşamasındadır ve üretim iş yüklerinde kullanılmamalıdır.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • CodeBehind kullanarak C# ile kullanıcı tanımlı işlev oluşturma.
  • Stream Analytics işinizi yerel olarak test edin.
  • İşinizi Azure'da yayımlayın.

Önkoşullar

Başlamadan önce aşağıdaki önkoşulları tamamladığınızdan emin olun:

Azure Depolama Hesabınızda kapsayıcı oluşturma

Oluşturduğunuz kapsayıcı, derlenmiş C# paketini depolamak için kullanılır. Bir Edge işi oluşturursanız bu depolama hesabı paketi IoT Edge cihazınıza dağıtmak için de kullanılır. Her Stream Analytics işi için ayrı bir kapsayıcı kullanın. Birden çok Stream Analytics Edge işi için aynı kapsayıcının yeniden kullanılması desteklenmez. Kapsayıcı bulunan bir depolama hesabınız varsa onu kullanabilirsiniz. Aksi takdirde yeni bir kapsayıcı oluşturmanız gerekir.

Visual Studio'da Stream Analytics projesi oluşturma

  1. Visual Studio’yu çalıştırın.

  2. Dosya > Yeni Proje'yi> seçin.

  3. Soldaki şablonlar listesinde Stream Analytics'i ve ardından Azure Stream Analytics Edge Uygulaması veya Azure Stream Analytics Uygulaması'nı seçin.

  4. Projenin Ad, Konum ve Çözüm adı değerlerini girip Tamam'ı seçin.

    Create an Azure Stream Analytics Edge project in Visual Studio

Derleme paketi yolunu yapılandırma

  1. Visual Studio'yu açın ve Çözüm Gezgini'ne gidin.

  2. İş yapılandırma dosyasına (JobConfig.json) çift tıklayın.

  3. Kullanıcı Tanımlı Kod Yapılandırması bölümünü genişletin ve yapılandırmaya aşağıdaki önerilen değerleri ekleyin:

    Ayar Önerilen Değer
    Genel Depolama Ayarlar Kaynağı Geçerli hesaptaki veri kaynağını seçin
    Genel Depolama Ayarlar Aboneliği < aboneliğiniz >
    Genel Depolama Ayarlar Depolama Hesabı < depolama hesabınız >
    Özel Kod Depolama Ayarlar Kaynağı Geçerli hesaptaki veri kaynağını seçin
    Özel Kod Depolama Ayarlar Depolama Hesabı < depolama hesabınız >
    Özel Kod Depolama Ayarlar Kapsayıcısı < depolama kapsayıcınız >

CodeBehind ile C# UDF yazma

CodeBehind dosyası, tek bir ASA sorgu betiğiyle ilişkilendirilmiş bir C# dosyasıdır. Visual Studio araçları, CodeBehind dosyasını otomatik olarak sıkıştırıp gönderildikten sonra Azure depolama hesabınıza yükler. Tüm sınıfların genel, tüm nesnelerin de statik genel olarak tanımlanması gerekir.

  1. Çözüm Gezgini'nde Script.asql dosyasını genişleterek Script.asaql.cs CodeBehind dosyasını bulun.

  2. Kodu aşağıdaki örnekle değiştirin:

        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; 
                } 
            } 
        } 
    

UDF'yi uygulama

  1. Çözüm Gezgini'nde Script.asaql dosyasını açın.

  2. Var olan sorguyu aşağıdaki sorguyla değiştirin:

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

Yerel ortamda test etme

  1. Sıcaklık simülatörü örnek veri dosyasını indirin.

  2. Çözüm Gezgini'nde Girişler'i genişletin, Input.json dosyasına sağ tıklayın ve Yerel Giriş Ekle'yi seçin.

    Add local input to Stream Analytics job in Visual Studio

  3. İndirdiğiniz örnek verilerin yerel giriş dosyası yolunu belirtin ve Kaydet'i seçin.

    Local input configuration for Stream Analytics job in Visual Studio

  4. Betik düzenleyicisinde Yerel Olarak Çalıştır'a tıklayın. Yerel çalıştırma çıkış sonuçlarını başarıyla kaydettikten sonra sonuçları tablo biçiminde görmek için herhangi bir tuşa basın.

    Run Azure Stream Analytics job locally with Visual Studio

  5. İsterseniz Sonuç Klasörünü Aç'ı seçerek JSON ve CSV biçimindeki ham dosyaları da görüntüleyebilirsiniz.

    View results of local Azure Stream Analytics job with Visual Studio

UDF'de hata ayıklama

C# UDF hatalarını yerel ortamda standart C# kodunda olduğu gibi ayıklayabilirsiniz.

  1. C# işlevinize kesme noktaları ekleyin.

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

  2. Hata ayıklamaya başlamak için F5'e basın. Program, kesme noktalarınızda beklendiği gibi durur.

    View Stream Analytics user-defined function debugging results

İşinizi Azure'da yayımlama

Sorgunuzu yerel ortamda test ettikten sonra işi Azure'da yayımlamak için betik düzenleyicisinde Azure'a Gönder'i seçin.

Submit your Stream Analytics Edge job to Azure from Visual Studio

IoT Edge'e cihazlarına dağıtma

Stream Analytics Edge işi oluşturmayı seçerseniz, bu iş artık IoT Edge modülü olarak dağıtılabilir. IoT Edge hızlı başlangıcını izleyerek bir IoT Hub oluşturun, ona bir IoT Edge cihazını kaydedin ve cihazınızda IoT Edge çalışma zamanını çalıştırın. Ardından işi dağıtma öğreticisini izleyerek Stream Analytics işinizi IoT Edge modülü olarak dağıtın.

Sonraki adımlar

Bu öğreticide CodeBehind kullanarak basit bir C# kullanıcı tanımlı işlev oluşturdunuz, işinizi Azure'da yayımladınız ve işi Azure veya IoT Edge cihazına dağıttınız.

Stream Analytics işlerinde C# kullanıcı tanımlı işlevleri kullanmanın farklı yolları hakkında daha fazla bilgi edinmek için şu makaleye geçin: