Teilen über


Tutorial: Benutzerdefinierte .NET-Deserialisierer für Azure Stream Analytics in Visual Studio Code (Vorschau)

Wichtig

Der benutzerdefinierte .NET-Deserializer für Azure Stream Analytics wird am 30. September 2024 eingestellt. Nach diesem Datum ist es nicht möglich, das Feature zu verwenden.

Azure Stream Analytics bietet integrierte Unterstützung für drei Datenformate: JSON, CSV und Avro, wie in diesem Dokument gezeigt. Mit benutzerdefinierten .NET-Deserialisierern können Sie Daten in anderen Formaten wie Protokollpuffer, Bond und anderen benutzerdefinierten Formaten für Cloudaufträge verarbeiten. In diesem Tutorial erfahren Sie, wie Sie mithilfe von Visual Studio Code einen benutzerdefinierten .NET-Deserialisierer für einen Azure Stream Analytics-Auftrag erstellen, testen und debuggen.

Sie lernen Folgendes:

  • Erstellen eines benutzerdefinierten Deserialisierers für Protokollpuffer
  • Erstellen eines Azure Stream Analytics-Auftrags in Visual Studio Code
  • Konfigurieren Ihres Stream Analytics-Auftrags für die Verwendung des benutzerdefinierten Deserialisierers
  • Lokales Ausführen Ihres Stream Analytics-Auftrags, um den benutzerdefinierten Deserialisierer zu testen und zu debuggen

Voraussetzungen

  • Installieren Sie .NET Core SDK, und starten Sie Visual Studio Code neu.

  • In diesem Schnellstarttutorial erfahren Sie, wie ein Stream Analytics-Auftrags mithilfe von Visual Studio Code erstellt wird.

Erstellen eines benutzerdefinierten Deserialisierers

  1. Öffnen Sie ein Terminal, und führen Sie den folgenden Befehl aus, um eine .NET-Klassenbibliothek in Visual Studio Code für Ihren benutzerdefinierten Deserialisierer namens ProtobufDeserializer zu erstellen.

    dotnet new classlib -o ProtobufDeserializer
    
  2. Wechseln Sie zum Projektverzeichnis ProtobufDeserializer, und installieren Sie die NuGet-Pakete Microsoft.Azure.StreamAnalytics und Google.Protobuf.

    dotnet add package Microsoft.Azure.StreamAnalytics
    
    dotnet add package Google.Protobuf
    
  3. Fügen Sie Ihrem Projekt die Klassen MessageBodyProto und MessageBodyDeserializer hinzu.

  4. Kompilieren Sie das Projekt Protobuf Deserializer.

Hinzufügen eines Azure Stream Analytics-Projekts

Öffnen Sie Visual Studio Code, und drücken Sie STRG+UMSCHALT+P, um die Befehlspalette zu öffnen. Geben Sie dann ASA ein, und wählen Sie ASA: Neues Projekt erstellen aus. Geben Sie den Namen ProtobufCloudDeserializer ein.

Konfigurieren eines Stream Analytics-Auftrags

  1. Doppelklicken Sie auf JobConfig.json. Verwenden Sie die folgenden Einstellungen, und behalten Sie ansonsten die Standardkonfiguration bei:

    Einstellung Empfohlener Wert
    Global Storage Settings Resource (Ressource für globale Speichereinstellungen) Datenquelle aus aktuellem Konto wählen
    Global Storage Settings Subscription (Abonnement für globale Speichereinstellungen) < Ihr Abonnement >
    Global Storage Settings Storage Account (Speicherkonto für globale Speichereinstellungen) < Ihr Speicherkonto >
    CustomCodeStorage Settings Storage Account (Speicherkonto für Einstellungen für benutzerdefinierten Codespeicher) < Ihr Speicherkonto >
    CustomCodeStorage Settings Container (Container für Einstellungen für benutzerdefinierten Codespeicher) < Ihr Speichercontainer >
  2. Öffnen Sie im Ordner Eingaben die Datei input.json. Wählen Sie Liveeingabe hinzufügen aus, und fügen Sie eine Eingabe aus Azure Data Lake Storage Gen2 bzw. dem Blobspeicher hinzu. Klicken Sie dann auf Aus Azure-Abonnement auswählen. Verwenden Sie die folgenden Einstellungen, und behalten Sie ansonsten die Standardkonfiguration bei:

    Einstellung Empfohlener Wert
    Name Eingabe
    Subscription < Ihr Abonnement >
    Speicherkonto < Ihr Speicherkonto >
    Container < Ihr Speichercontainer >
    Serialisierungstyp Wählen Sie Benutzerdefiniert aus.
    SerializationProjectPath Wählen Sie in CodeLens die Option Bibliotheksprojektpfad auswählen und dann das Bibliotheksprojekt ProtobufDeserializer, das im letzten Abschnitt erstellt wurde. Wählen Sie Projekt kompilieren aus, um das Projekt zu kompilieren.
    SerializationClassName Wählen Sie in CodeLens Deserialisierungsklasse auswählen, um den Klassenname und den DLL-Pfad automatisch aufzufüllen.
    Klassenname MessageBodyProto.MessageBodyDeserializer

    Hinzufügen einer benutzerdefinierten Deserialisierereingabe

  3. Fügen Sie der Datei ProtobufCloudDeserializer.asaql die folgende Abfrage hinzu.

    SELECT * FROM Input
    
  4. Laden Sie die exemplarische Protobuf-Eingabedatei herunter. Klicken Sie im Ordner Eingaben mit der rechten Maustaste auf input.json, und wählen Sie Lokale Eingabe hinzufügen aus. Doppelklicken Sie auf local_input1.json, und verwenden Sie mit Ausnahme der folgenden Einstellungen die Standardkonfigurationswerte.

    Einstellung Empfohlener Wert
    Lokalen Dateipfad auswählen Wählen Sie CodeLens aus, um den <Dateipfad für die heruntergeladene exemplarische Protobuf-Eingabedatei> auszuwählen.

Ausführen des Stream Analytics-Auftrags

  1. Öffnen Sie ProtobufCloudDeserializer.asaql, und wählen Sie Lokal ausführen aus CodeLens aus. Wählen Sie dann aus der Dropdownliste den Eintrag Lokale Eingabe verwenden aus.

  2. Auf der Registerkarte Ergebnisse im Auftragsdiagramm können Sie die Ausgabeergebnisse anzeigen. Sie können auch auf die Schritte im Auftragsdiagramm klicken, um ein Zwischenergebnis anzuzeigen. Weitere Details finden Sie unter Lokales Debuggen mithilfe eines Auftragsdiagramms.

    Überprüfen des Ergebnisses der lokalen Ausführung

Sie haben erfolgreich einen benutzerdefinierten Deserialisierer für Ihren Stream Analytics-Auftrag implementiert. In diesem Tutorial haben Sie den benutzerdefinierten Deserialisierer lokal mit lokalen Eingabedaten getestet. Sie können den Deserialisierer auch mit Livedateneingaben in der Cloud testen. Für die Ausführung des Auftrags in der Cloud müssen Sie die Ein- und Ausgabe ordnungsgemäß konfigurieren. Anschließend übermitteln Sie den Auftrag von Visual Studio Code aus an Azure, um ihn unter Verwendung des implementierten benutzerdefinierten Deserialisierers in der Cloud auszuführen.

Debuggen Ihres Deserialisierers

Sie können Ihren benutzerdefinierten .NET-Deserialisierer genau wie .NET-Standardcode lokal debuggen.

  1. Fügen Sie Ihrer .NET-Funktion Breakpoints hinzu.

  2. Klicken Sie in der Aktivitätsleiste von Visual Studio Code auf Ausführen, und wählen Sie launch.json-Datei erstellen aus. Erstellen einer Startdatei

    Wählen Sie ProtobufCloudDeserializer und dann aus der Dropdownliste Azure Stream Analytics aus. Erstellen einer Startdatei, Teil 2

    Bearbeiten Sie die Datei launch.json, und ersetzen Sie „<ASAScript>.asaql“ durch „ProtobufCloudDeserializer.asaql“. Konfigurieren der Startdatei

  3. Drücken Sie F5, um das Debuggen zu starten. Das Programm hält wie erwartet an den von Ihnen festgelegten Breakpoints an. Dies funktioniert sowohl für lokale Eingaben als auch für Liveeingabedaten.

    Debuggen des benutzerdefinierten Deserialisierers

Bereinigen von Ressourcen

Löschen Sie die Ressourcengruppe, den Streamingauftrag und alle dazugehörigen Ressourcen, wenn Sie sie nicht mehr benötigen. Durch das Löschen des Auftrags verhindern Sie, dass Kosten für die vom Auftrag verbrauchten Streamingeinheiten anfallen. Wenn Sie den Auftrag in Zukunft verwenden möchten, können Sie ihn beenden und später bei Bedarf neu starten. Wenn Sie diesen Auftrag nicht mehr verwenden möchten, löschen Sie alle Ressourcen, die im Rahmen dieses Tutorials erstellt wurden, mithilfe der folgenden Schritte:

  1. Klicken Sie im Azure-Portal im Menü auf der linken Seite auf Ressourcengruppen und dann auf den Namen der erstellten Ressource.

  2. Klicken Sie auf der Seite mit Ihrer Ressourcengruppe auf Löschen, geben Sie im Textfeld den Namen der zu löschenden Ressource ein, und klicken Sie dann auf Löschen.

Nächste Schritte

In diesem Tutorial haben Sie gelernt, wie Sie einen benutzerdefinierten .NET-Deserialisierer für die Protokollpuffer-Eingabeserialisierung implementieren. Weitere Informationen zur Erstellung benutzerdefinierter Deserialisierer finden Sie im folgenden Artikel: