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

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 in een lokaal C#-project of UDF's van een bestaand pakket van 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 aanmaakt, wordt dit opslagaccount ook gebruikt voor het implementeren van het pakket op uw IoT Edge-apparaat. Gebruik een specifieke container voor elke Stream Analytics-taak. 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, maak dan een nieuwe container.

Een Stream Analytics-project in Visual Studio aanmaken

  1. Start Visual Studio.

  2. Selecteer Bestand > Nieuw > Project.

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

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

    Een Azure Stream Analytics Edge-project in Visual Studio maken

Pad van assembly-pakket configureren

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

  2. Dubbelklik op het taakconfiguratiebestand EdgeJobConfig.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. De Visual Studio-hulpprogramma's zippen het CodeBehind-bestand automatisch en uploaden het naar uw Azure-opslagaccount wanneer u het verzendt. Alle klassen moeten zijn gedefinieerd als openbaar en alle objecten moeten zijn gedefinieerd als statisch openbaar.

  1. Vouw in Solution Explorer Script.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:

        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 Explorer Invoer uit, klik met de rechtermuisknop op Input.json en selecteer Lokale invoer toevoegen.

    Lokale invoer toevoegen aan een Stream Analytics-taak in Visual Studio

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

    Lokale invoer configureren voor een Stream Analytics-taak 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.

    Azure Stream Analytics-taak lokaal uitvoeren met Visual Studio

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

    Resultaten van lokale Azure Stream Analytics-taak weergeven met 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.

    Onderbrekingspunten toevoegen aan een door de gebruiker gedefinieerde Stream Analytics-functie in Visual Studio

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

    De foutopsporingsresultaten van de door de gebruiker gedefinieerde Stream Analytics-functie weergeven

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.

Uw Stream Analytics Edge-taak verzenden naar Azure vanuit Visual Studio

Implementeren naar IoT Edge-apparaten

Als u een Stream Analytics Edge-taak wilt compileren, kan dit 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: