Självstudie: Skriva en användardefinierad C#-funktion för Azure Stream Analytics-jobb (förhandsversion)
Viktigt!
.Net Standard-användardefinierade funktioner för Azure Stream Analytics dras tillbaka den 30 september 2024. Efter det datumet går det inte att använda funktionen. Övergå till användardefinierade JavaScript-funktioner för Azure Stream Analytics.
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
- 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 i förhandsversion och bör inte användas i produktionsarbetsbelastningar.
I den här självstudien lär du dig att:
- Skapa en användardefinierad funktion i C# med CodeBehind.
- Testa Stream Analytics-jobbet lokalt.
- Publicera ditt jobb 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 utvecklingsguiden för Stream Analytics Edge om du skapar ett IoT Edge-jobb.
Skapa en container i ditt Azure Storage-konto
Containern som du skapar används för att lagra det kompilerade C#-paketet. Om du skapar ett Edge-jobb används det här lagringskontot också för att distribuera paketet till din IoT Edge-enhet. Använd en särskild container för varje Stream Analytics-jobb. Återanvändning av samma container för flera Stream Analytics Edge-jobb stöds inte. 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 Fil > nytt > projekt.
I malllistan till vänster väljer du Stream Analytics och 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,
JobConfig.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 Global lagringsresurs Inställningar Välj datakälla från det aktuella kontot Global Storage Inställningar-prenumeration < din prenumeration > Globalt lagringskonto Inställningar lagring < ditt lagringskonto > Anpassad kodlagring Inställningar resurs Välj datakälla från det aktuella kontot Lagringskonto för anpassad kod Inställningar < ditt lagringskonto > Anpassad kodlagring Inställningar container < din lagringscontainer >
Skriv en C#-UDF med CodeBehind
En CodeBehind-fil är en C#-fil som är associerad med ett enda ASA-frågeskript. Visual Studio-verktyg zippar automatiskt CodeBehind-filen och laddar upp den till ditt Azure Storage-konto när den skickas in. 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 fråga:
SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint)) INTO Output FROM Input
Lokal testning
Ladda ned exempeldatafilen för temperatursimulatorn.
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 stoppas vid brytpunkterna 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 skapa 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 skapade du en enkel C#-användardefinierad funktion med hjälp av CodeBehind, publicerade jobbet till Azure och distribuerade jobbet till Azure- eller IoT Edge-enheten.
Om du vill veta mer om de olika sätten att använda användardefinierade C#-funktioner för Stream Analytics-jobb fortsätter du till den här artikeln: