Udostępnij za pośrednictwem


Debugowanie funkcji zdefiniowanych przez użytkownika w usłudze Azure Stream Analytics

Jeśli funkcje zdefiniowane przez użytkownika (UDF) nie działają zgodnie z oczekiwaniami, należy je debugować, aby znaleźć problem. Funkcje zdefiniowane przez użytkownika można debugować dla zadań usługi Stream Analytics podczas uruchamiania zadań lokalnie przy użyciu programu Visual Studio Code lub Visual Studio.

Po uruchomieniu zadania względem strumienia danych wejściowych na żywo lokalnie naśladuje tylko wykonywanie aparatu usługi Azure Stream Analytics w chmurze w jednym węźle. Lokalne testowanie danych na żywo nie może zastąpić testów wydajności i skalowalności, które wykonujesz w chmurze, ale oszczędzasz czas podczas testowania funkcjonalnego, nie trzeba przesyłać zadania do chmury za każdym razem, gdy chcesz przetestować. Ponadto zasady czasu są wyłączone dla lokalnego uruchamiania z danymi lokalnymi lub przykładowymi, ale zasady czasu są obsługiwane na potrzeby testowania danych na żywo.

Wybieranie języka

Funkcje zdefiniowane przez użytkownika dla usługi Azure Stream Analytics można napisać przy użyciu platformy .NET (C#) lub języka JavaScript.

Funkcje w języku C#

Podczas pisania funkcji zdefiniowanych przez użytkownika platformy .NET przy użyciu programu Visual Studio uzyskasz taki sam poziom obsługi, jak w przypadku dowolnego projektu klasy platformy .NET. Ta obsługa obejmuje:

  • Obsługa kompilacji, taka jak sprawdzanie składni i obsługa kompilatora.

  • Możliwość dodawania, kompilowania i odwołowania się do projektu i artefaktów języka C# w rozwiązaniu usługi Stream Analytics.

  • Łatwe ponowne użycie kodu hermetyzowanego w projekcie z możliwością udostępniania.

  • Debugowanie obsługi bezpośrednio w programie Visual Studio. Ustaw projekt usługi Stream Analytics jako projekt początkowy i ustaw punkty przerwania w kodzie języka C#. Następnie naciśnij F5 , aby debugować kod języka C#, tak jak w przypadku dowolnego innego projektu języka C#.

Funkcje w języku JavaScript

JavaScript to kolejna opcja tworzenia funkcji w usłudze Stream Analytics. Kod JavaScript jest bezpośrednio umieszczany w obszarze funkcji projektu usługi Stream Analytics, co sprawia, że udostępnianie w projektach jest trudniejsze.

Kompilacja odbywa się po skompilowaniu lub wykonaniu projektu usługi Stream Analytics. Prawdopodobieństwo znalezienia problemu tylko w czasie wykonywania jest wyższe. Brak obsługi debugowania funkcji Języka JavaScript bezpośrednio w usłudze Stream Analytics.

Opcje debugowania dla języka JavaScript

Ponieważ funkcja JavaScript w usłudze Stream Analytics nie obsługuje debugowania bezpośrednio, możesz debugować, hermetyzując funkcję w witrynie HTML i uzyskując dane wyjściowe z tego miejsca.

W poniższym przykładzie pokazano, jak debugować funkcje zdefiniowane przez użytkownika w języku JavaScript z pewnymi ograniczeniami w zintegrowanym środowisku uruchomieniowym w programie Visual Studio Code.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że projekt usługi Azure Stream Analytics zawiera następujące elementy:

  • Dane wejściowe
  • Dane wyjściowe
  • Zapytanie usługi Stream Analytics (asaql)
  • Konfiguracja zadania usługi Stream Analytics (JobConfig.json)
  • Funkcja UDF języka JavaScript

Przygotowywanie plików

Na poniższej ilustracji plik zapytania asaql zawiera tylko wywołanie funkcji UDF, fxcharCount. Ta zmiana gwarantuje, że po wprowadzeniu zmian nadal będzie można skompilować projekt.

Plik zapytania testowego usługi Stream Analytics

Utwórz dodatkowy folder w obszarze Testy w celu hostowania pliku testowego, który jest wywoływany w celu wykonania testu za pomocą funkcji JavaScript. W tym przykładzie nazwa folderu to fxcharCount , a nazwa testu jest Test_UDF.js.

Na poniższej ilustracji przedstawiono kod w pliku testowym, który ładuje plik funkcji i wykonuje funkcję. Ten przykład jest prosty, ale można załadować dodatkowe pliki danych testowych i wykonać pętlę, choć dodatkowe testy w celu uzyskania danych wyjściowych. Notacja wywołania funkcji różni się nieco od typowych wywołań, ponieważ plik jest przywoływany i nie jest ładowany do środowiska uruchomieniowego, co umożliwia debugowanie.

Plik testowy usługi Stream Analytics

W funkcji dodaj następujące wiersze kodu do pliku, aby uwidocznić metody. Nie mają wpływu na możliwość kompilowania kodu w programie Visual Studio Code.

var methods = {};
methods.fxchartCount = fxchartCount;
exports.data = methods;

Stream Analytics JavaScript UDF

Instalowanie obsługi debugowania

Aby debugować, należy pobrać i zainstalować node.js. Zainstaluj poprawną wersję zgodnie z używaną platformą. Po zainstalowaniu środowiska uruchomieniowego Node.js ponownie uruchom program Visual Studio Code, aby zaimplementować zmiany.

Wybierz pozycję Uruchom i debuguj lub naciśnij CTRL + SHIFT + D , aby rozpocząć debugowanie. Zostanie wyświetlone pole kombi, w którym można wybrać node.js jako środowisko uruchomieniowe. Jeśli zainstalowano tylko Node.js, jest on używany domyślnie. W razie potrzeby należy przejść przez kod i do pliku satelitarnego przy użyciu F11.

Uruchamianie i debugowanie funkcji udf usługi Stream Analytics

Debugowanie agregacji zdefiniowanych przez użytkownika

Możesz użyć metody debugowania dla funkcji UDF języka JavaScript do debugowania agregacji zdefiniowanych przez użytkownika (UDA). W tym przykładzie do pliku zapytania asaql i pliku testowego jest dodawany uda.

Podobnie jak w przypadku funkcji zdefiniowanej przez użytkownika, należy dołączyć wywołanie do uda, aby upewnić się, że projekt zostanie skompilowany po wprowadzeniu zmian.

Dodawanie uda do aplikacji asaql

W pliku Test_UDA.js odwołujesz się do pliku UDA, tak jak w przypadku funkcji zdefiniowanej przez użytkownika. Ponadto wywołujesz metody main(), init()i accumulate(). Metoda accumulate() jest wywoływana w pętli, aby umieścić wartości w stosie stanu. Metoda jest wywoływana computeresult() w celu skomponowania końcowego zapytania.

Plik testowy UDA

Podobnie jak w przykładzie funkcji zdefiniowanej przez użytkownika, do samego uda należy dodać kod, aby uwidocznić odpowiednie metody.

var methods = {};
methods.main = main;
methods.init = main.init;
methods.accumulate = main.accumulate;
methods.computeResult = main.computeResult;
exports.data = methods;

Kod dodany do uda

Wybierz pozycję Uruchom i debuguj lub naciśnij CTRL + SHIFT + D , aby rozpocząć debugowanie. Zostanie wyświetlone pole kombi, w którym można wybrać node.js jako środowisko uruchomieniowe. Jeśli zainstalowano tylko Node.js, jest on używany domyślnie. W razie potrzeby należy przejść przez kod i do pliku satelitarnego przy użyciu F11.

Uruchamianie i debugowanie usługi Stream Analytics uda

Następne kroki