Öğ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 aboneliğiniz yoksa ücretsiz hesap oluşturun.
- Visual Studio için Stream Analytics araçlarını ve Azure geliştirme veya Veri Depolama ve İşleme iş yüklerini yükleyin.
- IoT Edge işi oluşturuyorsanız mevcut Stream Analytics Edge geliştirme kılavuzuna göz atın.
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
Visual Studio’yu çalıştırın.
Dosya > Yeni Proje'yi> seçin.
Soldaki şablonlar listesinde Stream Analytics'i ve ardından Azure Stream Analytics Edge Uygulaması veya Azure Stream Analytics Uygulaması'nı seçin.
Projenin Ad, Konum ve Çözüm adı değerlerini girip Tamam'ı seçin.
Derleme paketi yolunu yapılandırma
Visual Studio'yu açın ve Çözüm Gezgini'ne gidin.
İş yapılandırma dosyasına (
JobConfig.json
) çift tıklayın.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.
Çözüm Gezgini'nde Script.asql dosyasını genişleterek Script.asaql.cs CodeBehind dosyasını bulun.
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
Çözüm Gezgini'nde Script.asaql dosyasını açın.
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
Çözüm Gezgini'nde Girişler'i genişletin, Input.json dosyasına sağ tıklayın ve Yerel Giriş Ekle'yi seçin.
İndirdiğiniz örnek verilerin yerel giriş dosyası yolunu belirtin ve Kaydet'i seçin.
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.
İsterseniz Sonuç Klasörünü Aç'ı seçerek JSON ve CSV biçimindeki ham dosyaları da görüntüleyebilirsiniz.
UDF'de hata ayıklama
C# UDF hatalarını yerel ortamda standart C# kodunda olduğu gibi ayıklayabilirsiniz.
C# işlevinize kesme noktaları ekleyin.
Hata ayıklamaya başlamak için F5'e basın. Program, kesme noktalarınızda beklendiği gibi durur.
İş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.
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: