Hinweis
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.
Wenn benutzerdefinierte Funktionen (UDF) nicht erwartungsgemäß funktionieren, müssen Sie sie debuggen, um das Problem zu ermitteln. Sie können UDFs für Ihre Stream Analytics-Aufträge, wenn Sie Ihre Aufträge lokal ausführen, mit Visual Studio Code oder Visual Studio debuggen.
Wenn Sie Ihren Auftrag lokal mit einem Liveeingabestream ausführen, wird die Ausführung der Azure Stream Analytics-Cloud-Engine lediglich auf einem Knoten imitiert. Das lokale Testen von Livedaten kann die in der Cloud durchgeführten Leistungs- und Skalierbarkeitstests zwar nicht ersetzen, Sie können aber während der Funktionstests Zeit sparen, weil Sie Ihren Auftrag nicht bei jedem Testen in die Cloud übermitteln müssen. Außerdem sind Zeitrichtlinien für die lokale Ausführung mit lokalen oder Beispieldaten deaktiviert, aber für Livedatentests werden Zeitrichtlinien unterstützt.
Auswählen Ihrer Sprache
Sie können UDFs für Azure Stream Analytics mit .NET (C#) oder JavaScript schreiben.
Funktionen in C#
Wenn Sie .NET-UDFs mit Visual Studio schreiben, erhalten Sie dasselbe Maß an Unterstützung, wie für jedes beliebige .NET-Klassenprojekt. Diese Unterstützung umfasst Folgendes:
Kompilierungsunterstützung, z. B. Syntaxprüfung und Compilerunterstützung.
Die Möglichkeit ein C#-Projekt und Artefakte in Ihrer Stream Analytics-Lösung hinzuzufügen, zu erstellen und darauf zu verweisen.
Einfache Wiederverwendung von Code, der in ein freigegebenes Projekt gekapselt ist.
Unterstützung für das direkte Debuggen in Visual Studio. Legen Sie das Stream Analytics-Projekt als Startprojekt fest, und setzen Sie Haltepunkte im C#-Code. Drücken Sie dann F5, um C#-Code zu debuggen, wie Sie es bei jedem anderen C#-Projekt machen würden.
Funktionen in JavaScript
JavaScript ist eine weitere Option zum Erstellen von Funktionen in Stream Analytics. Der JavaScript-Code wird direkt in den Funktionsbereich des Stream Analytics-Projekts eingefügt, was die projektübergreifende gemeinsame Nutzung erschwert.
Die Kompilierung erfolgt, wenn das Stream Analytics-Projekt kompiliert oder ausgeführt wird. Es ist wahrscheinlicher, dass ein Problem erst zur Laufzeit entdeckt wird. Es gibt keine Unterstützung für das direkte Debuggen von JavaScript-Funktionen in Stream Analytics.
Debugoptionen für JavaScript
Da keine Unterstützung für das direkte Debuggen von JavaScript-Funktionen in Stream Analytics vorhanden ist, können Sie Debuggen, indem Sie die Funktion in eine HTML-Website kapseln und die Ausgabe von dort abrufen.
Im folgenden Beispiel wird gezeigt, wie Sie JavaScript-UDFs mit einigen Einschränkungen in einer integrierten Laufzeitumgebung in Visual Studio Code debuggen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Ihr Azure Stream Analytics-Projekt die folgenden Elemente enthält:
- Eine Eingabe
- Eine Ausgabe
- Eine Stream Analytics-Abfrage (.asaql)
- Eine Stream Analytics-Auftragskonfiguration (JobConfig.json)
- Eine JavaScript-UDF
Vorbereiten von Dateien
In der folgenden Abbildung enthält die .asaql-Abfragedatei nur den Aufruf der UDF fxcharCount. Durch diese Änderung wird sichergestellt, dass Sie das Projekt auch nach dem Vornehmen von Änderungen noch kompilieren können.
Erstellen Sie einen zusätzlichen Ordner in Tests, um die Testdatei zu hosten, die aufgerufen wird, um den Test mit der JavaScript-Funktion auszuführen. In diesem Beispiel lautet der Name des Ordners fxcharCount, und der Name des Tests ist Test_UDF.js.
Die folgende Abbildung zeigt den Code in der Testdatei, der die Funktionsdatei lädt und die Funktion ausführt. Dieses Beispiel ist einfach, aber Sie könnten auch zusätzliche Testdatendateien laden und weitere Tests durchlaufen, um die Ausgabe zu erhalten. Die Notation des Funktionsaufrufs unterscheidet sich geringfügig von den gängigen Aufrufen, da auf die Datei verwiesen wird, und sie nicht in die Laufzeit geladen wird, sodass sie debuggt werden kann.
Fügen Sie in der Funktion der Datei die folgenden Codezeilen hinzu, um die Methoden verfügbar zu machen. Sie wirken sich nicht auf die Kompilierfähigkeit des Codes in Visual Studio Code aus.
var methods = {};
methods.fxchartCount = fxchartCount;
exports.data = methods;
Installieren von Debugunterstützung
Um zu debuggen, müssen Sie node.jsherunterladen und installieren. Installieren Sie die richtige Version entsprechend der von Ihnen verwendeten Plattform. Nachdem Sie die „node.js“-Laufzeit installiert haben, starten Sie Visual Studio Code neu, um die Änderungen zu implementieren.
Wählen Sie Ausführen und debuggen aus, oder drücken Sie STRG+UMSCHALT+D, um das Debuggen zu starten. Ein Kombinationsfeld wird angezeigt, in dem Sie node.js als Laufzeit auswählen können. Wenn Sie nur „node.js“ installiert haben, wird sie standardmäßig verwendet. Sie sollten in der Lage sein, den Code schrittweise zu durchlaufen und bei Bedarf mit F11 in die Satellitendatei zu wechseln.
Debuggen benutzerdefinierter Aggregate
Sie können die Debugmethode für JavaScript-UDFs zum Debuggen von benutzerdefinierten Aggregaten (UDA) verwenden. In diesem Beispiel wird der .asaql-Abfragedatei und der Testdatei ein UDA hinzugefügt.
Wie bei der UDF fügen Sie auch einen Aufruf des UDA ein, um sicherzustellen, dass sich das Projekt nach dem Vornehmen von Änderungen noch kompilieren lässt.
In der Datei Test_UDA.js verweisen Sie auf die UDA-Datei, wie Sie es mit der UDF getan haben. Außerdem rufen Sie main(), init() und accumulate() auf. Die accumulate()-Methode wird in einer Schleife aufgerufen, um die Werte in den Zustandsstapel einzufügen. Die computeresult()-Methode wird aufgerufen, um die abschließende Abfrage zu verfassen.
Wie im UDF-Beispiel muss dem UDA selbst Code hinzugefügt werden, um die relevanten Methoden verfügbar zu machen.
var methods = {};
methods.main = main;
methods.init = main.init;
methods.accumulate = main.accumulate;
methods.computeResult = main.computeResult;
exports.data = methods;
Wählen Sie Ausführen und debuggen aus, oder drücken Sie STRG+UMSCHALT+D, um das Debuggen zu starten. Ein Kombinationsfeld wird angezeigt, in dem Sie node.js als Laufzeit auswählen können. Wenn Sie nur „node.js“ installiert haben, wird sie standardmäßig verwendet. Sie sollten in der Lage sein, den Code schrittweise zu durchlaufen und bei Bedarf mit F11 in die Satellitendatei zu wechseln.