Dela via


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 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:

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

  1. Starta Visual Studio.

  2. Välj Fil > nytt > projekt.

  3. I malllistan till vänster väljer du Stream Analytics och sedan Azure Stream Analytics Edge-program eller Azure Stream Analytics-program.

  4. Ange projektets namn, plats och lösningsnamn och välj OK.

    Skapa ett Azure Stream Analytics Edge-projekt i Visual Studio

Konfigurera sammansättningspaketets sökväg

  1. Öppna Visual Studio och gå till Solution Explorer.

  2. Dubbelklicka på jobbkonfigurationsfilen. JobConfig.json

  3. Expandera 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.

  1. I Solution Explorer expanderar du Script.asql för att hitta filen Script.asaql.cs CodeBehind.

  2. 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)

  1. Öppna filen Script.asaql i Solution Explorer.

  2. 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

  1. Ladda ned exempeldatafilen för temperatursimulatorn.

  2. I Solution Explorerexpanderar du Indata, högerklickar påInput.jsonoch väljer Lägg till lokala indata.

    Lägga till lokala indata till Stream Analytics-jobb i Visual Studio

  3. Ange sökvägen till den lokala indatafilen för exempeldata som du laddade ned och Spara.

    Lokal indatakonfiguration för Stream Analytics-jobb i Visual Studio

  4. 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.

    Köra Azure Stream Analytics-jobb lokalt med Visual Studio

  5. Du kan också välja Öppna resultatmapp för att se rådatafilerna i JSON- och CSV-format.

    Visa resultat från det lokala Azure Stream Analytics-jobbet med Visual Studio

Felsöka en UDF

Du kan felsöka C# UDF lokalt på samma sätt som du felsöker C#-standardkoden.

  1. Lägg till brytpunkter i C#-funktionen.

    Lägga till brytpunkter i stream analytics-användardefinierad funktion i Visual Studio

  2. Tryck på F5 för att börja felsöka. Programmet stoppas vid brytpunkterna som förväntat.

    Visa resultat för användardefinierad funktionsfelsökning i Stream Analytics

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.

Skicka ditt Stream Analytics Edge-jobb till Azure från Visual Studio

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: