Compartilhar via


Tutorial: Desserializadores personalizados do .NET para o Azure Stream Analytics no Visual Studio Code (versão prévia)

Importante

O desserializador do .NET personalizado para o Azure Stream Analytics será desativado em 30 de setembro de 2024. Após essa data, não será possível usar o recurso.

O Azure Stream Analytics tem suporte interno para três formatos de dados: JSON, CSV e Avro, conforme mostrado neste documento. Com desserializadores .NET personalizados, você poderá processar dados em outros formatos, como Protocol Buffer, Bond, e em formatos definidos pelo usuário para trabalhos em nuvem. Este tutorial demonstra como criar, testar e depurar um desserializador .NET personalizado para um trabalho do Azure Stream Analytics usando o Visual Studio Code.

Você aprenderá a:

  • criar um desserializador personalizado para o buffer de protocolo.
  • Crie um trabalho do Azure Stream Analytics no Visual Studio Code.
  • configurar seu trabalho do Stream Analytics para usar o desserializador personalizado.
  • Executar seu trabalho do Stream Analytics localmente para testar e depurar o desserializador personalizado.

Pré-requisitos

  • Instale o SDK do .NET Core e reinicie o Visual Studio Code.

  • Use este início rápido para aprender a criar um trabalho de Stream Analytics usando o Visual Studio Code.

Criar um desserializador personalizado

  1. Abra um terminal e execute o comando a seguir para criar uma biblioteca de classes .NET no Visual Studio Code para o seu desserializador personalizado chamado ProtobufDeserializer.

    dotnet new classlib -o ProtobufDeserializer
    
  2. Vá para o diretório do projeto ProtobufDeserializer e instale os pacotes NuGet Microsoft.Azure.StreamAnalytics e Google.Protobuf.

    dotnet add package Microsoft.Azure.StreamAnalytics
    
    dotnet add package Google.Protobuf
    
  3. Adicione a classe MessageBodyProto e a classe MessageBodyDeserializer ao seu projeto.

  4. Compile o projeto ProtobufDeserializer.

Adicionar um projeto do Azure Stream Analytics

Abra o Visual Studio Code e selecione Ctrl+Shift+P para abrir a paleta de comandos. Em seguida, insira ASA e selecione ASA: Criar Novo Projeto. Dê a ele o nome ProtobufCloudDeserializer.

Configurar um trabalho do Stream Analytics

  1. Clique duas vezes em JobConfig.json. Use as configurações padrão, exceto pelas seguintes:

    Configuração Valor Sugerido
    Recurso de Configurações de Armazenamento Global Escolha fonte de dados da conta atual
    Assinatura de Configurações de Armazenamento Global < sua assinatura >
    Conta de armazenamento das Configurações de Armazenamento Global < sua conta de armazenamento >
    Conta de Armazenamento das Configurações de CustomCodeStorage < sua conta de armazenamento >
    Contêiner de Configurações de CustomCodeStorage < seu contêiner de armazenamento >
  2. Na pasta Entradas, abra input.json. Selecione Adicionar entrada ao vivo e adicione uma entrada do Azure Data Lake Storage Gen2/Armazenamento de Blobs, escolha Selecionar da sua assinatura do Azure. Use as configurações padrão, exceto pelas seguintes:

    Configuração Valor sugerido
    Nome Entrada
    Assinatura < sua assinatura >
    Conta de Armazenamento < sua conta de armazenamento >
    Contêiner < seu contêiner de armazenamento >
    Tipo de Serialização Escolha Personalizada
    SerializationProjectPath Selecione Escolher caminho do projeto da biblioteca em CodeLens e selecione o projeto de biblioteca ProtobufDeserializer criado na seção anterior. Selecione Compilar projeto para compilar o projeto
    SerializationClassName Selecione selecionar classe de desserialização do CodeLens para popular automaticamente o nome de classe e o caminho da DLL
    Nome da Classe MessageBodyProto.MessageBodyDeserializer

    Adicione uma entrada de desserializador personalizado.

  3. Adicione a consulta a seguir ao arquivo ProtobufCloudDeserializer.asaql.

    SELECT * FROM Input
    
  4. Baixe o arquivo de entrada do exemplo protobuf. Na pasta Entradas, clique com o botão direito do mouse em Input.json e selecione Adicionar entrada local. Em seguida, clique duas vezes em local_input1.json e use as configurações padrão, exceto as configurações a seguir.

    Configuração Valor sugerido
    Selecione o caminho do arquivo local Selecione CodeLens para selecionar < O caminho do arquivo para o arquivo de entrada de protobuf do exemplo baixado>

Executar o trabalho do Stream Analytics

  1. Abra ProtobufCloudDeserializer.asaql e selecione Executar localmente do CodeLens, depois escolha Usar Entrada Local na lista suspensa.

  2. Na guia Resultados no diagrama do Trabalho, você poderá exibir os resultados de saída. Também é possível clicar nas etapas do diagrama do trabalho para exibir o resultado intermediário. Para obter mais detalhes, consulte Depurar localmente usando o diagrama do trabalho.

    Verificar resultado da execução local.

Você implementou com êxito um desserializador personalizado para seu trabalho do Stream Analytics! Neste tutorial, você testou o desserializador personalizado localmente dados de entrada locais. Você também pode testá-lo usando a entrada de dados dinâmicos na nuvem. Para executar o trabalho na nuvem, você configurará corretamente a entrada e a saída. Em seguida, envie o trabalho para o Azure pelo Visual Studio Code para executar o trabalho na nuvem usando o desserializador personalizado que você implementou.

Depurar o desserializador

Você pode depurar seu desserializador .NET localmente da mesma maneira que depura o código .NET padrão.

  1. Adicionar pontos de interrupção à sua função do .NET.

  2. Clique em Executar na barra de atividades do Visual Studio Code e selecione criar um arquivo launch.json. Crie um arquivo de inicialização.

    Na lista suspensa, escolha ProtobufCloudDeserializer e, em seguida, Azure Stream Analytics. Crie um segundo arquivo de inicialização.

    Edite o arquivo launch.json para substituir <ASASCRIPT>.asaql com ProtobufCloudDeserializer.asaql. Configure o arquivo de inicialização.

  3. Pressione F5 para iniciar a depuração. O programa irá parar em seus pontos de interrupção conforme o esperado. Isso funciona tanto para entrada local quanto para dados de entrada dinâmicos.

    Depure o desserializador personalizado.

Limpar os recursos

Quando não forem mais necessários, exclua o grupo de recursos, o trabalho de streaming e todos os recursos relacionados. A exclusão do trabalho evita a cobrança das unidades de streaming consumidas por ele. Se você está planejando usar o trabalho no futuro, pode interrompê-lo e reiniciar mais tarde, quando necessário. Se você não for mais usar o trabalho, exclua todos os recursos criados neste tutorial usando as seguintes etapas:

  1. No menu à esquerda no Portal do Azure, selecione Grupos de recursos e selecione o nome do recurso criado.

  2. Em sua página de grupo de recursos, selecione Excluir, digite o nome do recurso para excluir na caixa de texto e selecione Excluir.

Próximas etapas

Neste tutorial, você aprendeu a implementar um desserializador .NET personalizado para a serialização de entrada do buffer de protocolo. Para saber mais sobre como criar desserializadores personalizados, vá para o seguinte artigo: