Share via


Zelfstudie: Een door de gebruiker gedefinieerde C#-functie schrijven voor een Azure Stream Analytics-taak (preview)

Belangrijk

Door de gebruiker gedefinieerde .Net Standard-functies voor Azure Stream Analytics worden op 30 september 2024 buiten gebruik gesteld. Na die datum is het niet mogelijk om de functie te gebruiken. Overgang naar door de gebruiker gedefinieerde JavaScript-functies voor Azure Stream Analytics.

Met door de gebruiker gedefinieerde C#-functies (UDF’s) die zijn gemaakt in Visual Studio kunt u de Azure Stream Analytics-querytaal uitbreiden met uw eigen functies. U kunt bestaande code (inclusief DLL-bestanden) opnieuw gebruiken en wiskundige of complexe logica gebruiken met C#. Er zijn drie manieren waarop UDF's kunnen worden geïmplementeerd:

  • CodeBehind-bestanden in een Stream Analytics-project
  • UDF's van een lokaal C#-project
  • UDF's van een bestaand pakket vanuit een opslagaccount.

In deze zelfstudie wordt de CodeBehind-methode gebruikt om een eenvoudige C#-functie te implementeren. De UDF-functie voor Stream Analytics-taken is momenteel in de previewfase en mag niet worden gebruikt voor productieworkloads.

In deze zelfstudie leert u het volgende:

  • Een door de gebruiker gedefinieerde C#-functie maken met CodeBehind.
  • Uw Stream Analytics-taak lokaal testen.
  • Uw job naar Azure publiceren.

Vereisten

Voordat u begint, moet aan de volgende vereisten zijn voldaan:

Een container in uw Azure Storage-account maken

De container die u maakt, wordt gebruikt om het gecompileerde C#-pakket op te slaan. Als u een Edge-taak maakt, wordt dit opslagaccount ook gebruikt om het pakket te implementeren op uw IoT Edge-apparaat. Gebruik een specifieke container voor elke Stream Analytics-taak. Het hergebruik van dezelfde container voor meerdere Stream Analytics Edge-taken wordt niet ondersteund. Als u al een opslagaccount met bestaande containers hebt, kunt u die gebruiken. Zo niet, dan moet u een nieuwe container maken.

Een Stream Analytics-project in Visual Studio aanmaken

  1. Start Visual Studio.

  2. Selecteer Bestand > nieuw > project.

  3. Selecteer Stream Analyticsin de sjablonenlijst aan de linkerkant en selecteer vervolgens Azure Stream Analytics Edge Application of Azure Stream Analytics Application.

  4. Voer de Naam, Locatieen Oplossingsnaam van het project in en selecteer OK.

    Create an Azure Stream Analytics Edge project in Visual Studio

Pad van assembly-pakket configureren

  1. Open Visual Studio en ga naar de Solution Explorer.

  2. Dubbelklik op het taakconfiguratiebestand JobConfig.json.

  3. Vouw de sectie Configuratie van de door de gebruiker gedefinieerde code uit en vul de configuratie in met de volgende voorgestelde waarden:

    Instelling Voorgestelde waarde
    Resource globale opslaginstellingen Kies gegevensbron van het huidige account
    Abonnement voor globale opslaginstellingen < uw abonnement >
    Globale opslaginstellingen opslagaccount < uw opslagaccount >
    Resource aangepaste code opslaginstellingen Kies gegevensbron van het huidige account
    Aangepaste code opslaginstellingen opslagaccount < uw opslagaccount >
    Container aangepaste code opslaginstellingen < uw opslagcontainer >

Een C#-UDF schrijven met CodeBehind

Een CodeBehind-bestand is een C#-bestand dat is gekoppeld aan een enkel ASA-queryscript. Visual Studio-hulpprogramma's zipt automatisch het CodeBehind-bestand en uploadt het naar uw Azure-opslagaccount na verzending. Alle klassen moeten zijn gedefinieerd als openbaar en alle objecten moeten zijn gedefinieerd als statisch openbaar.

  1. Vouw in Solution ExplorerScript.asql uit om het CodeBehind-bestand Script.asaql.cs te zoeken.

  2. Vervang de code door het volgende voorbeeld:

        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; 
                } 
            } 
        } 
    

De UDF implementeren

  1. Open in Solution Explorer het bestand Script.asaql.

  2. Vervang de bestaande query door de volgende query:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

Lokaal testen

  1. Download het bestand met voorbeeldgegevens voor de temperatuursimulator.

  2. Vouw in Solution ExplorerInvoer uit, klik met de rechtermuisknop op Input.json en selecteer Lokale invoer toevoegen.

    Add local input to Stream Analytics job in Visual Studio

  3. Geef het pad van het lokale invoerbestand op voor de voorbeeldgegevens die u hebt gedownload en selecteer Opslaan.

    Local input configuration for Stream Analytics job in Visual Studio

  4. Klik op Lokaal uitvoeren in de scripteditor. Nadat de resultaten van het uitvoeren zijn opgeslagen, drukt u op een willekeurige toets om de resultaten weer te geven in tabelindeling.

    Run Azure Stream Analytics job locally with Visual Studio

  5. U kunt ook Map met resultaten openen om de onbewerkte bestanden in JSON- en CSV-indeling weer te geven.

    View results of local Azure Stream Analytics job with Visual Studio

Fouten opsporen in een UDF

U kunt lokaal fouten opsporen in uw C# UDF, op dezelfde manier als dat u fouten opspoort in standaard C#-code.

  1. Onderbrekingspunten in uw C#-functie toevoegen.

    Add breakpoints to Stream Analytics user-defined function in Visual Studio

  2. Druk op F5 om de foutopsporing te starten. Het programma stopt op uw onderbrekingspunten zoals verwacht.

    View Stream Analytics user-defined function debugging results

Uw taak publiceren naar Azure

Nadat u de query lokaal hebt getest, selecteert u Verzenden naar Azure in de scripteditor om de taak naar Azure te publiceren.

Submit your Stream Analytics Edge job to Azure from Visual Studio

Implementeren naar IoT Edge-apparaten

Als u ervoor kiest om een Stream Analytics Edge-taak te bouwen, kan deze nu worden geïmplementeerd als een IoT Edge-module. Volg de IoT Edge-snelstart om een IoT Hub te maken, een IoT Edge-apparaat te registeren en de IoT Edge-runtime op uw apparaat te installeren en starten. Volg vervolgens de zelfstudie de taak implementeren om uw Stream Analytics-taak als een IoT Edge-module te implementeren.

Volgende stappen

In deze zelfstudie hebt u een eenvoudige door de gebruiker gedefinieerde C#-functie aangemaakt met CodeBehind, uw taak gepubliceerd naar Azure en de taak geïmplementeerd op Azure of IoT Edge-apparaten.

Als u meer wilt weten over de verschillende manieren waarop u door de gebruiker gedefinieerde C#-functies voor Stream Analytics-taken kunt gebruiken, gaat u verder met het volgende artikel: