Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 C#-funktioner (UDF:er) som skapats i Visual Studio kan du utöka Frågespråket för Azure Stream Analytics med dina egna funktioner. Du kan återanvända befintlig kod (inklusive DLL:er) och använda matematisk 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 från ett befintligt paket i ett lagringskonto.
I den här handledningen används metoden CodeBehind för implementeringen av 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 tutorialen lär du dig följande:
- Skapa en C#-användardefinierad funktion med hjälp av CodeBehind.
- Testa Stream Analytics-jobbet lokalt.
- Publicera ditt jobb till Azure.
Förutsättningar
Kontrollera att du har slutfört följande krav innan du börjar:
- Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Installera Stream Analytics-verktyg för Visual Studio och arbetsbelastningar för Azure-utveckling eller 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 dedikerad 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 och välj OK.
Konfigurera sammansättningspaketets sökväg
Öppna Visual Studio och gå till Solution Explorer.
Dubbelklicka på jobbkonfigurationsfilen.
JobConfig.jsonExpandera avsnittet User-Defined Code Configuration och fyll i konfigurationen med följande föreslagna värden:
Setting Föreslaget värde Resurs för globala lagringsinställningar Välj datakälla från aktuellt konto Prenumeration på globala lagringsinställningar < din prenumeration > Global lagringsinställningar lagringskonto < ditt lagringskonto > Resurs för lagringsinställningar för anpassad kod Välj datakälla från aktuellt konto Lagringskonto för anpassade kodlagringsinställningar < ditt lagringskonto > Container för lagringsinställningar för anpassad kod < din lagringscontainer >
Skriva 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 expanderar du Script.asql för att hitta filen Script.asaql.cs CodeBehind.
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 användardefinierad funktion (UDF)
Öppna filen Script.asaql i Solution Explorer.
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 Explorerexpanderar du Indata, högerklickar påInput.jsonoch väljer Lägg till lokala indata.
Ange sökvägen till den lokala indatafilen för exempeldata som du laddade ned och Spara.
Klicka på Kör lokalt i skriptredigeraren. När den lokala körningen har sparat utdataresultatet trycker du på valfri tangent för att se resultatet i tabellformat.
Du kan också välja Öppna resultatmapp för att se rådatafilerna i JSON- och CSV-format.
Felsöka en UDF
Du kan felsöka C# UDF lokalt på samma sätt som du felsöker C#-standardkoden.
Lägg till brytpunkter i C#-funktionen.
Tryck på F5 för att börja felsöka. Programmet stoppas vid brytpunkterna som förväntat.
Publicera ditt jobb till Azure
När du har testat frågan lokalt väljer du Skicka till Azure i skriptredigeraren för att publicera jobbet till 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 för IoT Edge för att skapa en IoT Hub, registrera en IoT Edge-enhet och installera och starta IoT Edge-körningen på enheten. Följ sedan handledningen deployera jobbet för att 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: