Öğ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' ler), Azure Stream Analytics sorgu dilini kendi işlevlerinizle genişletmenize olanak tanır. Mevcut kodu (DLL'ler dahil) yeniden kullanabilir ve C# ile matematiksel veya karmaşık mantık kullanabilirsiniz. UDF'leri uygulamanın üç yolu vardır:

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

Bu öğreticide, temel bir C# işlevi uygulamak için CodeBehind yöntemi kullanılı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 eğitimde şunları öğreniyorsunuz:

  • CodeBehind kullanarak C# kullanıcı tanımlı bir işlev oluşturun.
  • 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ılmış bir kapsayıcı kullanın. Birden çok Stream Analytics Edge işi için aynı kapsayıcının yeniden kullanılması desteklenmez. Mevcut kapsayıcılara sahip bir depolama hesabınız varsa bunları kullanabilirsiniz. Aksi takdirde yeni bir kapsayıcı oluşturmanız gerekir.

Visual Studio'da Stream Analytics projesi oluşturma

  1. Visual Studio'yu başlatı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. Proje Adı, Konum ve Çözüm adını girin ve Tamam'ı seçin.

    Visual Studio'da Azure Stream Analytics Edge projesi oluşturma

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. User-Defined Kod Yapılandırması bölümünü genişletin ve yapılandırmayı aşağıdaki önerilen değerlerle doldurun:

    Setting Önerilen Değer
    Genel Depolama Ayarları Kaynağı Geçerli hesaptan veri kaynağı seçme
    Genel Depolama Ayarları Aboneliği < aboneliğiniz >
    Genel Depolama Ayarları Depolama Hesabı < depolama hesabınız >
    Özel Kod Depolama Ayarları Kaynağı Geçerli hesaptan veri kaynağı seçme
    Ö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 genel olarak tanımlanmalı ve tüm nesneler statik genel olarak tanımlanmalıdır.

  1. Çözüm Gezgini'ndeScript.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'ndeScript.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 test

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

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

    Visual Studio'da Stream Analytics işine yerel giriş ekleme

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

    Visual Studio'da Stream Analytics işi için yerel giriş yapılandırması

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

    Visual Studio ile Azure Stream Analytics işini yerel olarak çalıştırma

  5. Ham dosyaları JSON ve CSV biçiminde görmek için Sonuçlar Klasörünü Aç'ı da seçebilirsiniz.

    Visual Studio ile yerel Azure Stream Analytics işinin sonuçlarını görüntüleme

UDF hatalarını ayıklama

C# UDF'nizde de standart C# kodunda hata ayıkladığınız gibi yerel olarak hata ayıklayabilirsiniz.

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

    Visual Studio'da Stream Analytics kullanıcı tanımlı işlevine kesme noktaları ekleme

  2. Hata ayıklamayı başlatmak için F5 tuşuna basın. Program, kesme noktalarınızda beklendiği gibi durur.

    Stream Analytics kullanıcı tanımlı işlev hata ayıklama sonuçlarını görüntüleme

İşinizi Azure'da yayımlama

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

Stream Analytics Edge işinizi Visual Studio'dan Azure'a gönderme

IoT Edge 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 IoT Hub oluşturun, bir IoT Edge cihazı kaydedin ve cihazınıza IoT Edge çalışma zamanını yükleyin ve başlatın. Ardından Stream Analytics işinizi bir IoT Edge modülü olarak dağıtmak için işi dağıt öğreticisini izleyin.

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: