Öğretici: Azure Stream Analytics işi için C# Kullanıcı tanımlı bir işlev yazma (Önizleme)
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 uygulamak için kullanabileceğiniz üç yöntem vardır: Stream Analytics projesinde CodeBehind dosyaları kullanma, yerel C# projesindeki UDF'leri alma veya bir depolama hesabındaki pakette bulunan UDF'leri alma. 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 önizlemededir ve üretim iş yükleri içinde kullanılmamalıdır.
Bu öğreticide şunların nasıl yapıldığı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 bir 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.
- Bir IoT Edge 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ı, derlenen C# paketini depolamak için kullanılacaktır. Bir Edge işi oluşturursanız bu depolama hesabı, paketi IoT Edge cihazınıza dağıtmak için de kullanılacaktır. Her Stream Analytics işi için ayrı bir kapsayıcı kullanın. Bir kapsayıcının birden fazla Stream Analytics Edge işi için kullanılması desteklenmez. Kapsayıcı bulunan bir depolama hesabınız varsa onu kullanabilirsiniz. Yoksa 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' yi seçin ve 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 (
EdgeJobConfig.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ğinizi < > 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ği ile ilişkili bir C# dosyasıdır. Gönderme işlemi sırasında Visual Studio araçları CodeBehind dosyasını otomatik olarak sıkıştırıp 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ğıdakiyle 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 beklendiği gibi kesme noktalarında 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 artık bir 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 'a veya IoT Edge cihaza dağıttınız.
Stream Analytics işleri için C# Kullanıcı tanımlı işlevleri kullanmanın farklı yolları hakkında daha fazla bilgi edinmek için bu makaleye devam edin: