Självstudie: skriva en C#-användardefinierad funktion för Azure Stream Analytics jobb (förhands granskning)
Med användardefinierade funktioner med C# (UDF skapas i Visual Studio) kan du utöka Azure Stream Analytics-frågespråket med dina egna funktioner. Du kan återanvända befintlig kod (inklusive DLL-filer) och använda matematiska eller komplex logik med C#. Det finns tre sätt att implementera UDF:er: CodeBehind-filer i ett Stream Analytics-projekt, UDF:er från ett lokalt C#-projekt eller UDF:er från ett befintligt paket från ett lagringskonto. Den här självstudien använder metoden CodeBehind för att implementera en grundläggande C#-funktion. UDF-funktionen för Stream Analytics jobb är för närvarande en för hands version och bör inte användas i produktions arbets belastningar.
I den här guiden får du lära dig att:
- Skapa en användardefinierad funktion i C# med CodeBehind.
- Testa ditt Stream Analytics jobb lokalt.
- Publicera jobbet till Azure.
Förutsättningar
Innan du börjar bör du kontrollera att du har slutfört följande krav:
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Installera Stream Analytics-verktygen för Visual Studio och arbetsbelastningen Azure development (Azure-utveckling) eller Data Storage and Processing (Datalagring och bearbetning).
- Ta en titt på den befintliga Stream Analytics Edge Development guide om du skapar ett IoT Edge jobb.
Skapa en container i ditt Azure Storage-konto
Den behållare som du skapar kommer att användas för att lagra det kompilerade C#-paketet. Om du skapar ett Edge-jobb kommer det här lagrings kontot också att användas för att distribuera paketet till din IoT Edge-enhet. Använd en särskild container för varje Stream Analytics-jobb. Det går inte att använda samma container för flera Stream Analytics Edge-jobb. Om du redan har ett lagringskonto med befintliga containrar kan du använda dem. Annars måste du skapa en ny container.
Skapa ett Stream Analytics-projekt i Visual Studio
Starta Visual Studio.
Välj Arkiv > Nytt > Projekt.
Välj Stream Analytics i listan mallar till vänster och välj sedan Azure Stream Analytics Edge-program eller Azure Stream Analytics program.
Ange projektets namn, plats och lösningsnamn. Välj sedan OK.

Konfigurera sökvägen för sammansättningspaketet
Öppna Visual Studio och navigera till Solution Explorer.
Dubbelklicka på jobbets konfigurationsfil,
EdgeJobConfig.json.Expandera avsnittet användardefinierade kod Configuration avsnittet och fyll i konfigurationen med följande föreslagna värden:
Inställning Föreslaget värde Resurs för globala lagrings inställningar Välj datakälla från det aktuella kontot Prenumeration på globala lagrings inställningar < prenumerationen > Lagrings konto för globala lagrings inställningar < ditt lagrings konto > Resurs för anpassade kod lagrings inställningar Välj datakälla från det aktuella kontot Lagrings konto för anpassade kod lagrings inställningar < ditt lagrings konto > Behållare för lagrings inställningar för anpassade koder < lagrings container >
Skriv en C#-UDF med CodeBehind
En CodeBehind-fil är en C#-fil som associeras med ett enda ASA-frågeuttryck. Visual Studio-verktyg kommer automatiskt komprimera CodeBehind-filen och överföra den till Azure storage-kontot när den skickas. Alla klasser måste definieras som offentliga och alla objekt måste definieras som statiska offentliga.
I Solution Explorer, expandera Script.asql för att hitta CodeBehind-filen Script.asaql.cs.
Ersätt koden med följande exempel:
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; } } }
Implementera en användardefinerad funktion
I Solution Explorer öppnar du filen Script.asaql.
Ersätt den befintliga frågan med följande:
SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint)) INTO Output FROM Input
Lokal testning
I Solution Explorer, expandera Indata, högerklicka på Input.json och välj Lägg till lokala indata.

Ange den lokala indatafilens sökväg för de exempeldata som du hämtade och spara.

Klicka på Kör lokalt i Skriptredigeraren. När resultatet har sparats för lokal körning trycker du på valfri tangent för att se resultatet i tabellformat.

Du kan också välja Öppna resultatmappen för att se raw-filer i JSON- och CSV-format.

Felsöka en UDF
Du kan felsöka dina C#-UDF:er lokalt på samma sätt som du skulle felsöka standard-C#-kod.
Lägga till brytpunkter i en C#-funktion.

Starta felsökningen genom att trycka på F5. Programmet kommer att avbrytas vid dina brytpunkter som förväntat.

Publicera ditt jobb på Azure
När du har testat din fråga lokalt väljer du skicka till Azure i skriptredigeraren för att publicera projektet på Azure.

Distribuera till IoT Edge-enheter
Om du väljer att bygga ett Stream Analytics Edge-jobb kan det nu distribueras som en IoT Edge modul. Följ snabbstarten om IoT Edge för att skapa en IoT-hubb, registrera en IoT Edge-enhet och installera och starta IoT Edge-körningen på din enhet. Följ sedan självstudien om att distribuera jobbet om du vill distribuera ditt Stream Analytics-jobb som en IoT Edge-modul.
Nästa steg
I den här självstudien har du skapat en enkel C#-användardefinierad funktion med hjälp av CodeBehind, publicerat jobbet till Azure och distribuerat jobbet till Azure eller IoT Edge enhet.
Om du vill veta mer om de olika sätten att använda C#-användardefinierade funktioner för Stream Analytics jobb kan du fortsätta till den här artikeln: