Samouczek: pisanie funkcji zdefiniowanej przez użytkownika w języku C# dla zadania usługi Azure Stream Analytics (wersja zapoznawcza)
Ważne
Funkcje zdefiniowane przez użytkownika platformy .Net Standard dla usługi Azure Stream Analytics zostaną wycofane 30 września 2024 r. Po tej dacie nie będzie można używać tej funkcji. Przejdź do funkcji zdefiniowanych przez użytkownika w języku JavaScript dla usługi Azure Stream Analytics.
Zdefiniowane przez użytkownika funkcje w języku C# w programie Visual Studio pozwalają rozszerzyć język zapytań usługi Azure Stream Analytics przy użyciu własnych funkcji. Możesz ponownie używać istniejącego kodu (w tym bibliotek DLL), a także korzystać z matematycznej lub złożonej logiki języka C#. Istnieją trzy sposoby implementowania funkcji zdefiniowanych przez użytkownika:
- Pliki CodeBehind w projekcie usługi Stream Analytics
- Funkcje zdefiniowane przez użytkownika z lokalnego projektu języka C#
- Funkcje zdefiniowane przez użytkownika z istniejącego pakietu z konta magazynu.
W tym samouczku do zaimplementowania podstawowej funkcji języka C# jest używana metoda CodeBehind. Funkcja UDF dla zadań usługi Stream Analytics jest obecnie w wersji zapoznawczej i nie powinna być używana w obciążeniach produkcyjnych.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie funkcji zdefiniowanej przez użytkownika w języka C# przy użyciu metody CodeBehind.
- Przetestuj zadanie usługi Stream Analytics lokalnie.
- Publikowanie zadania na platformie Azure.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że następujące wymagania wstępne zostały spełnione:
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- Zainstaluj narzędzia Stream Analytics Tools for Visual Studio oraz obciążenia Programowanie na platformie Azure i Magazynowanie i przetwarzanie danych.
- Zapoznaj się z istniejącym przewodnikiem programistycznym usługi Stream Analytics Edge, jeśli tworzysz zadanie usługi IoT Edge.
Tworzenie kontenera na koncie usługi Azure Storage
Utworzony kontener służy do przechowywania skompilowanego pakietu języka C#. Jeśli tworzysz zadanie usługi Edge, to konto magazynu jest również używane do wdrażania pakietu na urządzeniu usługi IoT Edge. Dla każdego zadania usługi Stream Analytics użyj dedykowanego kontenera. Ponowne stosowanie tego samego kontenera dla wielu zadań usługi Stream Analytics Edge nie jest obsługiwane. Jeśli masz już konto magazynu z istniejącymi kontenerami, możesz go użyć. Jeśli nie, musisz utworzyć nowy kontener.
Tworzenie projektu usługi Stream Analytics w programie Visual Studio
Uruchom program Visual Studio.
Wybierz pozycję Plik > nowy > projekt.
Na liście szablonów po lewej stronie wybierz pozycję Stream Analytics, a następnie wybierz pozycję Aplikacja usługi Azure Stream Analytics Edge lub Aplikacja usługi Azure Stream Analytics.
Wprowadź nazwę, lokalizację oraz nazwę rozwiązania dla projektu i wybierz przycisk OK.
Konfigurowanie ścieżki pakietu zestawu
Otwórz program Visual Studio i przejdź do Eksploratora rozwiązań.
Kliknij dwukrotnie plik konfiguracji zadania
JobConfig.json
.Rozwiń sekcję Konfiguracja kodu skonfigurowana przez użytkownika, a następnie wypełnij konfigurację za pomocą następujących sugerowanych wartości:
Ustawienie Sugerowana wartość Zasób Ustawienia magazynu globalnego Wybierz źródło danych z bieżącego konta Subskrypcja usługi Storage globalnej Ustawienia < Twoja subskrypcja > Globalne konto magazynu Ustawienia magazynu < konto magazynu > Zasób Ustawienia magazynu kodu niestandardowego Wybierz źródło danych z bieżącego konta Niestandardowe konto magazynu kodu Ustawienia magazynu < konto magazynu > Niestandardowy kontener Ustawienia magazynu kodu < kontener magazynu >
Pisanie funkcji zdefiniowanej przez użytkownika w języku C# przy użyciu metody CodeBehind
Plik CodeBehind jest plikiem C# skojarzonym z pojedynczym skryptem zapytania ASA. Narzędzia programu Visual Studio automatycznie spakują plik CodeBehind i przekaże go na konto usługi Azure Storage po przesłaniu. Wszystkie klasy muszą być zdefiniowane jako publiczne, a wszystkie obiekty — jako statyczne publiczne.
W Eksploratorze rozwiązań rozwiń węzeł Script.asql, aby znaleźć plik CodeBehind Script.asaql.cs.
Zastąp kod następującym przykładem:
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; } } }
Implementowanie funkcji zdefiniowanej przez użytkownika
W Eksploratorze rozwiązań otwórz plik Script.asaql.
Zastąp istniejące zapytanie następującym zapytaniem:
SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint)) INTO Output FROM Input
Testowanie lokalne
Pobierz przykładowy plik danych symulatora temperatury.
W Eksploratorze rozwiązań rozwiń węzeł Dane wejściowe, kliknij prawym przyciskiem myszy plik Input.json i wybierz pozycję Dodaj lokalne dane wejściowe.
Określ ścieżkę pliku lokalnych danych wejściowych dla przykładowych pobranych danych i wybierz pozycję Zapisz.
Kliknij pozycję Uruchom lokalnie w Edytorze skryptów. Gdy uruchomienie lokalne spowoduje pomyślne zapisanie wyników danych wyjściowych, naciśnij dowolny klawisz, aby wyświetlić wyniki w formacie tabeli.
Można również wybrać pozycję Otwórz folder wyników, aby wyświetlić nieprzetworzone pliki w formacie JSON i CSV.
Debugowanie funkcji zdefiniowanej przez użytkownika
Funkcję zdefiniowaną przez użytkownika w języku C# można debugować lokalnie, tak samo jak standardowy kod języka C#.
Dodaj punkty przerwania w funkcji języka C#.
Naciśnij klawisz F5, aby uruchomić debugowanie. Program zatrzymuje się w punktach przerwania zgodnie z oczekiwaniami.
Publikowanie zadania na platformie Azure
Po przetestowaniu zapytania w środowisku lokalnym wybierz pozycję Prześlij na platformę Azure w Edytorze skryptów, aby opublikować zadanie na platformie Azure.
Wdrażanie na urządzeniach usługi IoT Edge
Jeśli zdecydujesz się utworzyć zadanie usługi Stream Analytics Edge, można go teraz wdrożyć jako moduł usługi IoT Edge. Postępuj zgodnie z instrukcjami z przewodnika Szybki start dotyczącego usługi IoT Edge, aby utworzyć centrum IoT Hub, zarejestrować urządzenie usługi IoT Edge, a następnie zainstaluj i uruchom środowisko uruchomieniowe usługi IoT Edge na urządzeniu. Następnie postępuj zgodnie z instrukcjami z samouczka dotyczącego wdrażania zadania, aby wdrożyć zadanie usługi Stream Analytics jako moduł usługi IoT Edge.
Następne kroki
W tym samouczku utworzono prostą funkcję zdefiniowaną przez użytkownika w języku C# przy użyciu funkcji CodeBehind, opublikowano zadanie na platformie Azure i wdrożono zadanie na urządzeniu platformy Azure lub usługi IoT Edge.
Aby dowiedzieć się więcej o różnych sposobach korzystania z funkcji zdefiniowanych przez użytkownika w języku C# dla zadań usługi Stream Analytics, przejdź do tego artykułu: