Benutzerdefinierte .NET-Deserialisierer für Azure Stream Analytics in Visual Studio (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. Wechseln Sie bis zu diesem Datum zu einem integrierten JSON-, AVRO- oder CSV-Deserializer.

Azure Stream Analytics verfügt über integrierte Unterstützung von drei Datenformaten: JSON, CSV und Avro. Mit benutzerdefinierten .NET-Deserialisierern können Sie Daten aus anderen Formaten lesen. Hierzu zählen unter anderem Protokollpuffer, Bond und andere benutzerdefinierte Formate für Cloud- und Edgeaufträge.

In diesem Tutorial erfahren Sie, wie Sie mithilfe von Visual Studio einen benutzerdefinierten .NET-Deserialisierer für einen Azure Stream Analytics-Cloudauftrag erstellen. Informationen zur Erstellung von .NET-Deserialisierern in Visual Studio Code finden Sie unter Erstellen von benutzerdefinierten .NET-Deserialisierern für Azure Stream Analytics in Visual Studio Code.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines benutzerdefinierten Deserialisierers für Protokollpuffer
  • Erstellen eines Azure Stream Analytics-Auftrags in Visual Studio
  • 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

  • Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.

  • Installieren Sie Visual Studio 2019 (empfohlen) oder Visual Studio 2017. Die Editionen Enterprise (Ultimate/Premium), Professional und Community werden unterstützt. Die Express-Edition wird nicht unterstützt.

  • Installieren Sie die Stream Analytics-Tools für Visual Studio, oder führen Sie ein Update auf die neueste Version durch.

  • Öffnen Sie Cloud-Explorer in Visual Studio, und melden Sie sich bei Ihrem Azure-Abonnement an.

  • Erstellen Sie einen Container in Ihrem Azure Storage-Konto. Der Container, den Sie erstellen, dient zum Speichern von Objekten im Zusammenhang mit Ihrem Stream Analytics-Auftrag. Wenn Sie bereits über ein Speicherkonto mit vorhandenen Containern verfügen, können Sie diese verwenden. Wenn nicht, müssen Sie einen neuen Container erstellen.

Erstellen eines benutzerdefinierten Deserialisierers

  1. Öffnen Sie Visual Studio, und wählen Sie Datei > Neu > Projekt aus. Suchen Sie nach Stream Analytics, und wählen Sie Azure Stream Analytics Custom Deserializer Project (.NET) (Azure Stream Analytics: Projekt für benutzerdefinierten Deserialisierer (.NET)) aus. Geben Sie dem Projekt einen Namen (beispielsweise Protobuf Deserializer).

    Create Visual Studio dotnet standard class library project

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt Protobuf Deserializer, und wählen Sie im Menü die Option NuGet-Pakete verwalten aus. Installieren Sie anschließend die NuGet-Pakete Microsoft.Azure.StreamAnalytics und Google.Protobuf.

  3. Fügen Sie Ihrem Projekt die Klassen MessageBodyProto und MessageBodyDeserializer hinzu.

  4. Erstellen Sie das Projekt Protobuf Deserializer.

Hinzufügen eines Azure Stream Analytics-Projekts

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe Protobuf Deserializer, und wählen Sie Hinzufügen > Neues Projekt aus. Wählen Sie unter Azure Stream Analytics > Stream Analytics die Option Azure Stream Analytics Application (Azure Stream Analytics-Anwendung) aus. Nennen Sie sie ProtobufCloudDeserializer, und wählen Sie OK aus.

  2. Klicken Sie unter dem Azure Stream Analytics-Projekt ProtobufCloudDeserializer mit der rechten Maustaste auf Verweise. Fügen Sie unter Projekte das Projekt Protobuf Deserializer hinzu. Es sollte automatisch für Sie aufgefüllt werden.

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 >
    Custom Code Storage Settings Resource (Ressource für Speichereinstellungen für benutzerdefinierten Code) Datenquelle aus aktuellem Konto wählen
    Custom Code Storage Settings Storage Account (Speicherkonto für Speichereinstellungen für benutzerdefinierten Code) < Ihr Speicherkonto >
    Custom Code Storage Settings Container (Container für Speichereinstellungen für benutzerdefinierten Code) < Ihr Speichercontainer >
  2. Doppelklicken Sie unter Eingaben auf Input.json. Verwenden Sie die folgenden Einstellungen, und behalten Sie ansonsten die Standardkonfiguration bei:

    Einstellung Empfohlener Wert
    `Source` Blob Storage
    Resource Datenquelle aus aktuellem Konto wählen
    Subscription < Ihr Abonnement >
    Speicherkonto < Ihr Speicherkonto >
    Container < Ihr Speichercontainer >
    Ereignisserialisierungsformat Sonstige (Protobuf, XML, Proprietär...)
    Resource Aus ASA-Projektverweis oder CodeBehind laden
    CSharp-Assemblyname ProtobufDeserializer.dll
    Klassenname MessageBodyProto.MessageBodyDeserializer
    Typ der Ereigniskomprimierung Keine
  3. Fügen Sie der Datei Script.asaql die folgende Abfrage hinzu:

    SELECT * FROM Input
    
  4. Laden Sie die exemplarische Protobuf-Eingabedatei herunter. Klicken Sie im Ordner Inputs mit der rechten Maustaste auf Input.json, und wählen Sie Lokale Eingabe hinzufügen aus. Doppelklicken Sie anschließend auf local_Input.json, und konfigurieren Sie die folgenden Einstellungen:

    Einstellung Empfohlener Wert
    Eingabealias Eingabe
    Quellentyp Datenstrom
    Ereignisserialisierungsformat Sonstige (Protobuf, XML, Proprietär...)
    CSharp-Assemblyname ProtobufDeserializer.dll
    Klassenname MessageBodyProto.MessageBodyDeserializer
    Pfad für lokale Eingabedatei < Dateipfad für die heruntergeladene Protobuf-Eingabebeispieldatei>

Ausführen des Stream Analytics-Auftrags

  1. Öffnen Sie Script.asaql, und wählen Sie Lokal ausführen aus.

  2. Sehen Sie sich unter Ergebnisse der lokalen Ausführung von Stream Analytics die Ergebnisse an.

Sie haben erfolgreich einen benutzerdefinierten Deserialisierer für Ihren Stream Analytics-Auftrag implementiert. In diesem Tutorial haben Sie den benutzerdefinierten Deserialisierer lokal getestet. Für Ihre tatsächlichen Daten müssen Sie die Ein- und Ausgabe ordnungsgemäß konfigurieren. Anschließend müssen Sie den Auftrag von Visual Studio aus an Azure übermitteln, um ihn in der Cloud unter Verwendung des soeben implementierten benutzerdefinierten Deserialisierers auszuführen.

Debuggen Ihres Deserialisierers

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

  1. Klicken Sie mit der rechten Maustaste auf den Projektnamen ProtobufCloudDeserializer, und legen Sie das Projekt als Startprojekt fest.

  2. Fügen Sie Ihrer Funktion Breakpoints hinzu.

  3. Drücken Sie F5, um das Debuggen zu starten. Das Programm hält wie erwartet an den von Ihnen festgelegten Breakpoints an.

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: