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:

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

  1. Uruchom program Visual Studio.

  2. Wybierz pozycję Plik > nowy > projekt.

  3. 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.

  4. Wprowadź nazwę, lokalizację oraz nazwę rozwiązania dla projektu i wybierz przycisk OK.

    Create an Azure Stream Analytics Edge project in Visual Studio

Konfigurowanie ścieżki pakietu zestawu

  1. Otwórz program Visual Studio i przejdź do Eksploratora rozwiązań.

  2. Kliknij dwukrotnie plik konfiguracji zadania JobConfig.json.

  3. 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.

  1. W Eksploratorze rozwiązań rozwiń węzeł Script.asql, aby znaleźć plik CodeBehind Script.asaql.cs.

  2. 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

  1. W Eksploratorze rozwiązań otwórz plik Script.asaql.

  2. 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

  1. Pobierz przykładowy plik danych symulatora temperatury.

  2. 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.

    Add local input to Stream Analytics job in Visual Studio

  3. Określ ścieżkę pliku lokalnych danych wejściowych dla przykładowych pobranych danych i wybierz pozycję Zapisz.

    Local input configuration for Stream Analytics job in Visual Studio

  4. 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.

    Run Azure Stream Analytics job locally with Visual Studio

  5. Można również wybrać pozycję Otwórz folder wyników, aby wyświetlić nieprzetworzone pliki w formacie JSON i CSV.

    View results of local Azure Stream Analytics job with Visual Studio

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#.

  1. Dodaj punkty przerwania w funkcji języka C#.

    Add breakpoints to Stream Analytics user-defined function in Visual Studio

  2. Naciśnij klawisz F5, aby uruchomić debugowanie. Program zatrzymuje się w punktach przerwania zgodnie z oczekiwaniami.

    View Stream Analytics user-defined function debugging results

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.

Submit your Stream Analytics Edge job to Azure from Visual Studio

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: