Dela via


Självstudie: Anpassade .NET-deserialiserare för Azure Stream Analytics i Visual Studio Code (förhandsversion)

Viktigt!

Custom .net deserializer för Azure Stream Analytics dras tillbaka den 30 september 2024. Efter det datumet går det inte att använda funktionen.

Azure Stream Analytics har inbyggt stöd för tre dataformat: JSON, CSV och Avro enligt det här dokumentet. Med anpassade .NET-deserialiserare kan du bearbeta data i andra format, till exempel Protokollbuffert, Bond och andra användardefinierade format för molnjobb. Den här självstudien visar hur du skapar, testar och felsöker en anpassad .NET-deserialiserare för ett Azure Stream Analytics-jobb med hjälp av Visual Studio Code.

Du lär dig att:

  • Skapa en anpassad deserializer för protokollbuffert.
  • Skapa ett Azure Stream Analytics-jobb i Visual Studio Code.
  • Konfigurera Stream Analytics-jobbet så att det använder den anpassade deserialiseraren.
  • Kör Stream Analytics-jobbet lokalt för att testa och felsöka den anpassade deserialiseraren.

Förutsättningar

  • Installera .NET Core SDK och starta om Visual Studio Code.

  • Använd den här snabbstarten om du vill lära dig hur du skapar ett Stream Analytics-jobb med Hjälp av Visual Studio Code.

Skapa en anpassad deserializer

  1. Öppna en terminal och kör följande kommando för att skapa ett .NET-klassbibliotek i Visual Studio Code för din anpassade deserializer med namnet ProtobufDeserializer.

    dotnet new classlib -o ProtobufDeserializer
    
  2. Gå till projektkatalogen ProtobufDeserializer och installera NuGet-paketen Microsoft.Azure.StreamAnalytics och Google.Protobuf .

    dotnet add package Microsoft.Azure.StreamAnalytics
    
    dotnet add package Google.Protobuf
    
  3. Lägg till klassen MessageBodyProto och klassen MessageBodyDeserializer i projektet.

  4. Skapa ProtobufDeserializer-projektet.

Lägga till ett Azure Stream Analytics-projekt

Öppna Visual Studio Code och välj Ctrl+Skift+P för att öppna kommandopaletten. Ange sedan ASA och välj ASA: Skapa nytt projekt. Ge den namnet ProtobufCloudDeserializer.

Konfigurera ett Stream Analytics-jobb

  1. Dubbelklicka på JobConfig.json. Använd standardkonfigurationerna, förutom följande inställningar:

    Inställning Föreslaget värde
    Global lagringsresurs Inställningar Välj datakälla från det aktuella kontot
    Global Storage Inställningar-prenumeration < din prenumeration >
    Globalt lagringskonto Inställningar lagring < ditt lagringskonto >
    CustomCodeStorage Inställningar Lagringskonto < ditt lagringskonto >
    CustomCodeStorage Inställningar Container < din lagringscontainer >
  2. Öppna input.json under Mappen Indata. Välj Lägg till liveindata och lägg till indata från Azure Data Lake Storage Gen2/Blob Storage och välj Välj från din Azure-prenumeration. Använd standardkonfigurationerna, förutom följande inställningar:

    Inställning Föreslaget värde
    Name Indata
    Prenumeration < din prenumeration >
    Lagringskonto < ditt lagringskonto >
    Container < din lagringscontainer >
    Serialiseringstyp Välj Anpassad
    SerializationProjectPath Välj Välj biblioteksprojektsökväg från CodeLens och välj det ProtobufDeserializer-biblioteksprojekt som skapades i föregående avsnitt. Välj byggprojekt för att skapa projektet
    SerializationClassName Välj välj deserialiseringsklass från CodeLens för att fylla i klassnamnet och DLL-sökvägen automatiskt
    Klassnamn MessageBodyProto.MessageBodyDeserializer

    Lägg till anpassade deserializer-indata.

  3. Lägg till följande fråga i filen ProtobufCloudDeserializer.asaql .

    SELECT * FROM Input
    
  4. Ladda ned protobuf-exempelindatafilen. I mappen Indata högerklickar du på input.json och väljer Lägg till lokala indata. Dubbelklicka sedan på local_input1.json och använd standardkonfigurationerna, förutom följande inställningar.

    Inställning Föreslaget värde
    Välj lokal filsökväg Välj CodeLens för att välja < Filsökvägen för den nedladdade protobuf-exempelindatafilen>

Kör Stream Analytics-jobbet

  1. Öppna ProtobufCloudDeserializer.asaql och välj Kör lokalt från CodeLens och välj sedan Använd lokala indata i listrutan.

  2. Under fliken Resultat i jobbdiagrammet kan du visa utdataresultaten. Du kan också klicka på stegen i jobbdiagrammet för att visa mellanliggande resultat. Mer information finns i Felsöka lokalt med hjälp av jobbdiagram.

    Kontrollera resultatet av den lokala körningen.

Du har implementerat en anpassad deserialiserare för ditt Stream Analytics-jobb! I den här självstudien testade du den anpassade deserialiseraren lokalt med lokala indata. Du kan också testa den med livedataindata i molnet. För att köra jobbet i molnet konfigurerar du indata och utdata korrekt. Skicka sedan jobbet till Azure från Visual Studio Code för att köra ditt jobb i molnet med hjälp av den anpassade deserialiseraren som du implementerade.

Felsöka din deserialiserare

Du kan felsöka .NET-deserialiseraren lokalt på samma sätt som du felsöker standard .NET-kod.

  1. Lägg till brytpunkter i .NET-funktionen.

  2. Klicka på Kör från Aktivitetsfältet i Visual Studio Code och välj skapa en launch.json fil. Skapa startfil.

    Välj ProtobufCloudDeserializer och sedan Azure Stream Analytics i listrutan. Skapa startfil 2.

    Redigera filen launch.json för att ersätta <ASAScript.asaql> med ProtobufCloudDeserializer.asaql. Konfigurera startfilen.

  3. Starta felsökningen genom att trycka på F5. Programmet kommer att avbrytas vid dina brytpunkter som förväntat. Detta fungerar för både lokala indata och live-indata.

    Felsöka anpassad deserialiserare.

Rensa resurser

Ta bort resursgruppen, strömningsjobbet och alla relaterade resurser när de inte längre behövs. Om du tar bort jobbet undviker du att bli fakturerad för de strömmande enheter som används av jobbet. Om du planerar att använda jobbet i framtiden kan du stoppa det och sedan starta det igen när du behöver det. Om du inte kommer att fortsätta att använda det här jobbet tar du bort alla resurser som skapats i den här självstudien med hjälp av följande steg:

  1. Klicka på Resursgrupper på den vänstra menyn i Azure-portalen och välj sedan namnet på den resurs du skapade.

  2. På sidan med resursgrupper klickar du på Ta bort, skriver in namnet på resursen som ska tas bort i textrutan och väljer sedan Ta bort.

Nästa steg

I den här självstudien har du lärt dig hur du implementerar en anpassad .NET-deserialiserare för protokollbuffertens serialisering. Om du vill veta mer om hur du skapar anpassade deserialiserare fortsätter du till följande artikel: