Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
- Installieren Sie Stream Analytics-Tools für Visual Studio und die Azure-Entwicklungs - oder Datenspeicher- und Verarbeitungsworkloads .
- Sehen Sie sich den vorhandenen Stream Analytics Edge-Entwicklungsleitfaden an, wenn Sie einen IoT Edge-Auftrag erstellen.
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
Starten Sie Visual Studio.
Wählen Sie Datei > Neu > Projekt aus.
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.
Geben Sie den Projektnamen, den Speicherort und den Lösungsnamen ein, und wählen Sie OK aus.
Konfigurieren des Assemblypaketpfads
Öffnen Sie Visual Studio, und navigieren Sie zum Projektmappen-Explorer.
Doppelklicken Sie auf die Jobkonfigurationsdatei,
JobConfig.json.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.
Erweitern Sie im Projektmappen-Explorer den Eintrag Script.asql, um auf die CodeBehind-Datei Script.asaql.cs zuzugreifen.
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
Öffnen Sie im Lösungs-Explorer die Datei Script.asaql.
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
Laden Sie die Beispieldatendatei des Temperatursimulators herunter.
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.
Geben Sie den lokalen Pfad der Eingabedatei für die heruntergeladenen Beispieldaten an und speichern Sie.
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.
Sie können auch " Ergebnisordner öffnen " auswählen, um die Rohdateien im JSON- und CSV-Format anzuzeigen.
Debuggen einer UDF
Sie können Ihre C#-UDF lokal auf die gleiche Weise debuggen, wie Sie C#-Standardcode debuggen.
Fügen Sie Haltepunkte in Ihrer C#-Funktion hinzu.
Drücken Sie F5 , um mit dem Debuggen zu beginnen. Das Programm stoppt wie erwartet an Ihren Breakpoints.
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.
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: