Udostępnij za pośrednictwem


Samouczek: niestandardowe deserializatory platformy .NET dla usługi Azure Stream Analytics w programie Visual Studio Code (wersja zapoznawcza)

Ważne

Deserializator niestandardowy platformy .net dla usługi Azure Stream Analytics zostanie wycofany 30 września 2024 r. Po tej dacie nie będzie można używać tej funkcji.

Usługa Azure Stream Analytics ma wbudowaną obsługę trzech formatów danych: JSON, CSV i Avro, jak pokazano w tym kodzie. Za pomocą niestandardowych deserializacji platformy .NET można przetwarzać dane w innych formatach, takich jak bufor protokołu, bond i inne formaty zdefiniowane przez użytkownika dla zadań w chmurze. W tym samouczku przedstawiono sposób tworzenia, testowania i debugowania niestandardowego deserializacji platformy .NET dla zadania usługi Azure Stream Analytics przy użyciu programu Visual Studio Code.

Dowiesz się, jak:

  • Utwórz niestandardowy deserializator dla buforu protokołu.
  • Tworzenie zadania usługi Azure Stream Analytics w programie Visual Studio Code.
  • Skonfiguruj zadanie usługi Stream Analytics tak, aby używało niestandardowego deserializacji.
  • Uruchom zadanie usługi Stream Analytics lokalnie, aby przetestować i debugować niestandardowy deserializator.

Wymagania wstępne

  • Zainstaluj zestaw .NET Core SDK i uruchom ponownie program Visual Studio Code.

  • Skorzystaj z tego przewodnika Szybki start , aby dowiedzieć się, jak utworzyć zadanie usługi Stream Analytics przy użyciu programu Visual Studio Code.

Tworzenie niestandardowego deserializacji

  1. Otwórz terminal i uruchom następujące polecenie, aby utworzyć bibliotekę klas platformy .NET w programie Visual Studio Code dla niestandardowego deserializatora o nazwie ProtobufDeserializer.

    dotnet new classlib -o ProtobufDeserializer
    
  2. Przejdź do katalogu projektu ProtobufDeserializer i zainstaluj pakiety NuGet Microsoft.Azure.StreamAnalytics i Google.Protobuf .

    dotnet add package Microsoft.Azure.StreamAnalytics
    
    dotnet add package Google.Protobuf
    
  3. Dodaj klasę MessageBodyProto i klasę MessageBodyDeserializer do projektu.

  4. Skompiluj projekt ProtobufDeserializer .

Dodawanie projektu usługi Azure Stream Analytics

Otwórz program Visual Studio Code i wybierz klawisze Ctrl+Shift+P , aby otworzyć paletę poleceń. Następnie wprowadź asa i wybierz pozycję ASA: Utwórz nowy projekt. Nadaj mu nazwę ProtobufCloudDeserializer.

Konfigurowanie zadania usługi Stream Analytics

  1. Kliknij dwukrotnie JobConfig.json. Użyj domyślnych konfiguracji z wyjątkiem następujących ustawień:

    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 >
    CustomCodeStorage Ustawienia konto magazynu < konto magazynu >
    Kontener customCodeStorage Ustawienia < kontener magazynu >
  2. W obszarze Folder Inputs (Dane wejściowe) otwórz input.json. Wybierz pozycję Dodaj dane wejściowe na żywo i dodaj dane wejściowe z usługi Azure Data Lake Storage Gen2/Blob Storage, a następnie wybierz pozycję Wybierz z subskrypcji platformy Azure. Użyj domyślnych konfiguracji z wyjątkiem następujących ustawień:

    Ustawienie Sugerowana wartość
    Nazwisko Dane wejściowe
    Subskrypcja < Twoja subskrypcja >
    Konto magazynu < konto magazynu >
    Kontener < kontener magazynu >
    Typ serializacji Wybierz pozycję Niestandardowa
    SerializacjaProjectPath Wybierz pozycję Wybierz ścieżkę projektu biblioteki z listy CodeLens i wybierz projekt biblioteki ProtobufDeserializer utworzony w poprzedniej sekcji. Wybieranie projektu kompilacji w celu skompilowania projektu
    SerializationClassName Wybierz pozycję wybierz klasę deserializacji z funkcji CodeLens, aby automatycznie wypełnić nazwę klasy i ścieżkę biblioteki DLL
    Nazwa klasy MessageBodyProto.MessageBodyDeserializer

    Dodaj niestandardowe dane wejściowe deserializacji.

  3. Dodaj następujące zapytanie do pliku ProtobufCloudDeserializer.asaql .

    SELECT * FROM Input
    
  4. Pobierz przykładowy plik wejściowy protobuf. W folderze Dane wejściowe kliknij prawym przyciskiem myszy input.json i wybierz polecenie Dodaj dane wejściowe lokalne. Następnie kliknij dwukrotnie local_input1.json i użyj domyślnych konfiguracji, z wyjątkiem następujących ustawień.

    Ustawienie Sugerowana wartość
    Wybierz ścieżkę pliku lokalnego Wybierz pozycję CodeLens, aby wybrać < ścieżkę pliku dla pobranego przykładowego pliku wejściowego protobuf>

Wykonywanie zadania usługi Stream Analytics

  1. Otwórz plik ProtobufCloudDeserializer.asaql i wybierz pozycję Uruchom lokalnie z poziomu funkcji CodeLens, a następnie z listy rozwijanej wybierz pozycję Użyj lokalnych danych wejściowych.

  2. Na karcie Wyniki na diagramie Zadania możesz wyświetlić wyniki wyjściowe. Możesz również kliknąć kroki na diagramie zadań, aby wyświetlić wynik pośredni. Aby uzyskać więcej informacji, zobacz Debugowanie lokalnie przy użyciu diagramu zadań.

    Sprawdź wynik uruchomienia lokalnego.

Pomyślnie zaimplementowano niestandardowy deserializator dla zadania usługi Stream Analytics. W tym samouczku przetestowano deserializator niestandardowy lokalnie przy użyciu lokalnych danych wejściowych. Można go również przetestować przy użyciu danych wejściowych na żywo w chmurze. Aby uruchomić zadanie w chmurze, należy prawidłowo skonfigurować dane wejściowe i wyjściowe. Następnie prześlij zadanie do platformy Azure z programu Visual Studio Code, aby uruchomić zadanie w chmurze przy użyciu zaimplementowanego niestandardowego deserializacji.

Debugowanie deserializacji

Deserializacji platformy .NET można debugować lokalnie w taki sam sposób, jak podczas debugowania standardowego kodu platformy .NET.

  1. Dodaj punkty przerwania w funkcji .NET.

  2. Kliknij pozycję Uruchom na pasku działań programu Visual Studio Code i wybierz pozycję Utwórz plik launch.json. Utwórz plik uruchamiania.

    Wybierz pozycję ProtobufCloudDeserializer , a następnie pozycję Azure Stream Analytics z listy rozwijanej. Utwórz plik uruchamiania 2.

    Edytuj plik launch.json, aby zastąpić <plik ASAScript.asaql> ciągiem ProtobufCloudDeserializer.asaql. Skonfiguruj plik uruchamiania.

  3. Naciśnij klawisz F5, aby uruchomić debugowanie. Zgodnie z oczekiwaniami program będzie zatrzymywać się w punktach przerwania. Działa to zarówno w przypadku danych wejściowych lokalnych, jak i wejściowych na żywo.

    Debugowanie niestandardowego deserializacji.

Czyszczenie zasobów

Gdy grupa zasobów, zadanie przesyłania strumieniowego i wszystkie pokrewne zasoby nie będą już potrzebne, usuń je. Usunięcie zadania pozwala uniknąć opłat za jednostki przesyłania strumieniowego zużywane przez zadanie. Jeśli planujesz użyć zadania w przyszłości, możesz je zatrzymać i uruchomić ponownie później, gdy będzie potrzebne. Jeśli nie zamierzasz nadal korzystać z tego zadania, usuń wszystkie zasoby utworzone w tym samouczku, wykonując następujące czynności:

  1. W menu znajdującym się po lewej stronie w witrynie Azure Portal wybierz pozycję Grupy zasobów, a następnie wybierz nazwę utworzonego zasobu.

  2. Na stronie grupy zasobów wybierz pozycję Usuń, wpisz w polu tekstowym nazwę zasobu do usunięcia, a następnie wybierz pozycję Usuń.

Następne kroki

W tym samouczku przedstawiono sposób implementowania niestandardowego deserializatora platformy .NET na potrzeby serializacji wejściowej buforu protokołu. Aby dowiedzieć się więcej na temat tworzenia niestandardowych deserializacji, przejdź do następującego artykułu: