Teilen über


Lernprogramm: Schreiben einer benutzerdefinierten C#-Funktion für azure Stream Analytics-Auftrag (Vorschau)

Von Bedeutung

.Net Standard-benutzerdefinierte Funktionen für Azure Stream Analytics werden am 30. September 2024 eingestellt. Nach diesem Datum ist es nicht möglich, das Feature zu verwenden. Wechseln Sie zu benutzerdefinierten JavaScript-Funktionen für Azure Stream Analytics.

Mit in Visual Studio erstellten benutzerdefinierten C#-Funktionen (USER-Defined Functions, UDFs) können Sie die Azure Stream Analytics-Abfragesprache mit Ihren eigenen Funktionen erweitern. Sie können vorhandenen Code (einschließlich DLLs) wiederverwenden und mathematische oder komplexe Logik mit C# verwenden. Es gibt drei Möglichkeiten zum Implementieren von UDFs:

  • CodeBehind-Dateien in einem Stream Analytics-Projekt
  • UDFs aus einem lokalen C#-Projekt
  • UDFs aus einem vorhandenen Paket aus einem Speicherkonto.

In diesem Lernprogramm wird die CodeBehind-Methode verwendet, um eine einfache C#-Funktion zu implementieren. Das UDF-Feature für Stream Analytics-Aufträge befindet sich derzeit in der Vorschau und sollte nicht in Produktionsworkloads verwendet werden.

In diesem Tutorial erfahren Sie, wie:

  • Erstellen Sie eine benutzerdefinierte C#-Funktion mit CodeBehind.
  • Testen Sie Ihren Stream Analytics-Auftrag lokal.
  • Veröffentlichen Sie Ihren Auftrag in Azure.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllt haben:

Erstellen eines Containers in Ihrem Azure Storage-Konto

Der von Ihnen erstellte Container dient zum Speichern des kompilierten C#-Pakets. Wenn Sie einen Edgeauftrag erstellen, wird dieses Speicherkonto auch verwendet, um das Paket auf Ihrem IoT Edge-Gerät bereitzustellen. Verwenden Sie einen dedizierten Container für jeden Stream Analytics-Auftrag. Das Erneute Verwenden desselben Containers für mehrere Stream Analytics Edge-Aufträge wird nicht unterstützt. Wenn Sie bereits über ein Speicherkonto mit vorhandenen Containern verfügen, können Sie es verwenden. Wenn nicht, müssen Sie einen neuen Container erstellen.

Erstellen eines Stream Analytics-Projekts in Visual Studio

  1. Starten Sie Visual Studio.

  2. Wählen Sie Datei > Neu > Projekt aus.

  3. Wählen Sie in der Vorlagenliste auf der linken Seite Stream Analytics und dann Azure Stream Analytics Edge-Anwendung oder Azure Stream Analytics-Anwendung aus.

  4. Geben Sie den Projektnamen, den Speicherort und den Lösungsnamen ein, und wählen Sie OK aus.

    Erstellen eines Azure Stream Analytics Edge-Projekts in Visual Studio

Konfigurieren des Assemblypaketpfads

  1. Öffnen Sie Visual Studio, und navigieren Sie zum Projektmappen-Explorer.

  2. Doppelklicken Sie auf die Jobkonfigurationsdatei, JobConfig.json.

  3. Erweitern Sie die Sektion benutzerdefinierte Code-Konfiguration und füllen Sie die Konfiguration mit den folgenden vorgeschlagenen Werten aus:

    Einstellung Vorgeschlagener Wert
    Ressource für globale Speichereinstellungen Datenquelle aus aktuellem Konto auswählen
    Abonnement für globale Speichereinstellungen < Ihr Abonnement >
    Global Storage Settings Storage Account (Speicherkonto für globale Speichereinstellungen) < Ihr Speicherkonto >
    Ressource für benutzerdefinierte Codespeichereinstellungen Datenquelle aus aktuellem Konto auswählen
    Custom Code Storage Settings Storage Account (Speicherkonto für Speichereinstellungen für benutzerdefinierten Code) < Ihr Speicherkonto >
    Custom Code Storage Settings Container (Container für Speichereinstellungen für benutzerdefinierten Code) < Ihr Speichercontainer >

Schreiben einer C#-UDF mit CodeBehind

Eine CodeBehind-Datei ist eine C#-Datei, die einem einzelnen ASA-Abfrageskript zugeordnet ist. Visual Studio-Tools zippen die CodeBehind-Datei automatisch und laden sie bei der Übermittlung in Ihr Azure-Speicherkonto hoch. Alle Klassen müssen als öffentlich definiert werden, und alle Objekte müssen als statisch öffentlich definiert werden.

  1. Erweitern Sie im Projektmappen-Explorer den Eintrag Script.asql, um auf die CodeBehind-Datei Script.asaql.cs zuzugreifen.

  2. Ersetzen Sie den Code durch das folgende Beispiel:

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

UDF implementieren

  1. Öffnen Sie im Lösungs-Explorer die Datei Script.asaql.

  2. Ersetzen Sie die vorhandene Abfrage durch die folgende Abfrage:

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

Lokale Tests

  1. Laden Sie die Beispieldatendatei des Temperatursimulators herunter.

  2. Erweitern Sie im Projektmappen-Explorer den Eintrag Eingaben, klicken Sie mit der rechten Maustaste auf Input.json, und wählen Sie Lokale Eingabe hinzufügen.

    Hinzufügen lokaler Eingaben zum Stream Analytics-Auftrag in Visual Studio

  3. Geben Sie den lokalen Pfad der Eingabedatei für die heruntergeladenen Beispieldaten an und speichern Sie.

    Lokale Eingabekonfiguration für Stream Analytics-Auftrag in Visual Studio

  4. Klicken Sie im Skript-Editor auf "Lokal ausführen ". Sobald die lokale Ausführung die Ausgabeergebnisse erfolgreich gespeichert hat, drücken Sie eine beliebige Taste, um die Ergebnisse im Tabellenformat anzuzeigen.

    Ausführen eines Azure Stream Analytics-Auftrags lokal mit Visual Studio

  5. Sie können auch " Ergebnisordner öffnen " auswählen, um die Rohdateien im JSON- und CSV-Format anzuzeigen.

    Anzeigen der Ergebnisse des lokalen Azure Stream Analytics-Auftrags mit Visual Studio

Debuggen einer UDF

Sie können Ihre C#-UDF lokal auf die gleiche Weise debuggen, wie Sie C#-Standardcode debuggen.

  1. Fügen Sie Haltepunkte in Ihrer C#-Funktion hinzu.

    Hinzufügen von Haltepunkten zur benutzerdefinierten Stream Analytics-Funktion in Visual Studio

  2. Drücken Sie F5 , um mit dem Debuggen zu beginnen. Das Programm stoppt wie erwartet an Ihren Breakpoints.

    Anzeigen von benutzerdefinierten Debugergebnissen für Stream Analytics-Funktionen

Veröffentlichen Ihres Auftrags in Azure

Nachdem Sie Ihre Abfrage lokal getestet haben, wählen Sie im Skript-Editor "An Azure senden " aus, um den Auftrag in Azure zu veröffentlichen.

Übermitteln Ihres Stream Analytics Edge-Auftrags von Visual Studio an Azure

Bereitstellen auf IoT Edge-Geräten

Wenn Sie sich entschieden haben, einen Stream Analytics Edge-Auftrag zu erstellen, kann er jetzt als IoT Edge-Modul bereitgestellt werden. Folgen Sie der IoT Edge-Schnellstartanleitung , um einen IoT Hub zu erstellen, ein IoT Edge-Gerät zu registrieren und die IoT Edge-Laufzeit auf Ihrem Gerät zu installieren und zu starten. Folgen Sie dann dem Bereitstellungstutorial, um Ihren Stream Analytics-Job als IoT Edge-Modul bereitzustellen.

Nächste Schritte

In diesem Lernprogramm haben Sie eine einfache benutzerdefinierte C#-Funktion mit CodeBehind erstellt, Ihren Auftrag in Azure veröffentlicht und den Auftrag auf Azure- oder IoT Edge-Gerät bereitgestellt.

Weitere Informationen zu den verschiedenen Möglichkeiten zur Verwendung von benutzerdefinierten C#-Funktionen für Stream Analytics-Aufträge finden Sie in diesem Artikel: