Desserializadores .NET personalizados para o Azure Stream Analytics no Visual Studio (Visualização)

Importante

O desserializador .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. Faça a transição para um desserializador interno JSON, AVRO ou CSV até essa data.

O Azure Stream Analytics tem suporte incorporado para três formatos de dados: JSON, CSV e Avro. Com desserializadores .NET personalizados, você pode ler dados de outros formatos, como Protocol Buffer, Bond e outros formatos definidos pelo usuário para trabalhos de nuvem e de borda.

Este tutorial demonstra como criar um desserializador .NET personalizado para um trabalho de nuvem do Azure Stream Analytics usando o Visual Studio. Para saber como criar desserializadores .NET no Visual Studio Code, consulte Criar desserializadores .NET para trabalhos do Azure Stream Analytics no Visual Studio Code.

Neste tutorial, irá aprender a:

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

Pré-requisitos

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita.

  • Instale o Visual Studio 2019 (recomendado) ou o Visual Studio 2017. As edições Enterprise (Ultimate/Premium), Professional e Community são suportadas. A edição Express não é suportada.

  • Instale as ferramentas do Stream Analytics para Visual Studio ou atualize para a versão mais recente.

  • Abra o Cloud Explorer no Visual Studio e inicie sessão na sua subscrição do Azure.

  • Crie um contêiner em sua Conta de Armazenamento do Azure. O contêiner criado será usado para armazenar ativos relacionados ao seu trabalho do Stream Analytics. Se já tiver uma conta de armazenamento com contentores existentes, poderá utilizá-los. Caso contrário, precisará de criar um novo contentor.

Criar um desserializador personalizado

  1. Abra o Visual Studio e selecione Arquivo > Novo > Projeto. Procure o Stream Analytics e selecione Azure Stream Analytics Custom Deserializer Project (.NET). Dê um nome ao projeto, como Protobuf Deserializer.

    Create Visual Studio dotnet standard class library project

  2. No Gerenciador de Soluções, clique com o botão direito do mouse em seu projeto Protobuf Deserializer e selecione Gerenciar Pacotes NuGet no menu. Em seguida, instale os pacotes Microsoft.Azure.StreamAnalytics e Google.Protobuf NuGet.

  3. Adicione a classe MessageBodyProto e a classe MessageBodyDeserializer ao seu projeto.

  4. Crie o projeto Protobuf Deserializer .

Adicionar um projeto do Azure Stream Analytics

  1. No Gerenciador de Soluções, clique com o botão direito do mouse na solução Protobuf Deserializer e selecione Adicionar > Novo Projeto. Em Azure Stream Analytics > Stream Analytics, escolha Aplicativo do Azure Stream Analytics. Nomeie-o ProtobufCloudDeserializer e selecione OK.

  2. Clique com o botão direito do mouse em Referências no projeto ProtobufCloudDeserializer Azure Stream Analytics. Em Projetos, adicione o Protobuf Deserializer. Ele deve ser preenchido automaticamente para você.

Configurar um trabalho do Stream Analytics

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

    Definição Valor sugerido
    Recurso de configurações globais de armazenamento Escolha a origem de dados na conta atual
    Subscrição de Definições Globais de Armazenamento < a sua subscrição >
    Conta de armazenamento de configurações globais de armazenamento < A sua conta de armazenamento >
    Recurso de configurações de armazenamento de código personalizado Escolha a origem de dados na conta atual
    Conta de armazenamento de configurações de armazenamento de código personalizado < A sua conta de armazenamento >
    Contêiner de configurações de armazenamento de código personalizado < o seu recipiente de armazenamento >
  2. Em Entradas, clique duas vezes em Input.json. Use as configurações padrão, exceto para as seguintes configurações:

    Definição Valor sugerido
    Source Armazenamento de Blobs
    Recurso Escolha a origem de dados na conta atual
    Subscrição < a sua subscrição >
    Conta de Armazenamento < A sua conta de armazenamento >
    Contentor < o seu recipiente de armazenamento >
    Formato de Serialização de Eventos Outros (Protobuf, XML, proprietário...)
    Recurso Carregar a partir da referência do projeto ASA ou CodeBehind
    Nome do assembly CSharp ProtobufDeserializer.dll
    Nome da classe MessageBodyProto.MessageBodyDeserializer
    Tipo de Compressão de Evento Nenhuma
  3. Adicione a seguinte consulta ao arquivo Script.asaql .

    SELECT * FROM Input
    
  4. Faça o download do arquivo de entrada protobuf de exemplo. 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_Input.json e defina as seguintes configurações:

    Definição Valor sugerido
    Alias de Entrada Entrada
    Tipo de Origem Fluxo de Dados
    Formato de Serialização de Eventos Outros (Protobuf, XML, proprietário...)
    Nome do assembly CSharp ProtobufDeserializer.dll
    Nome da classe MessageBodyProto.MessageBodyDeserializer
    Caminho do arquivo de entrada local < O caminho do arquivo para o arquivo de entrada Protobuf de exemplo baixado>

Executar o trabalho do Stream Analytics

  1. Abra Script.asaql e selecione Executar localmente.

  2. Observe os resultados em Resultados de execução local do Stream Analytics.

Você implementou com sucesso um desserializador personalizado para seu trabalho do Stream Analytics! Neste tutorial, você testou o desserializador personalizado localmente. Para seus dados reais, você configuraria corretamente a entrada e a saída. Em seguida, envie o trabalho para o Azure a partir do Visual Studio para executar seu trabalho na nuvem usando o desserializador personalizado que você acabou de implementar.

Depurar o desserializador

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

  1. Clique com o botão direito do mouse no nome do projeto ProtobufCloudDeserializer e defina-o como projeto de inicialização.

  2. Adicione pontos de interrupção na sua função.

  3. Prima F5 para iniciar a depuração. O programa irá parar nos seus pontos de interrupção, conforme esperado.

Clean up resources (Limpar recursos)

Quando já não for necessário, elimine o grupo de recursos, a tarefa de transmissão em fluxo e todos os recursos relacionados. A eliminação da tarefa evita a faturação das unidades de transmissão em fluxo consumidas pela tarefa. Se estiver a planear utilizar a tarefa no futuro, pode pará-la e reiniciá-la mais tarde, quando for necessário. Se não quiser continuar a utilizar esta tarefa, elimine todos os recursos criados por este tutorial ao utilizar os seguintes passos:

  1. No menu do lado esquerdo no portal do Azure, selecione Grupos de recursos e, em seguida, selecione o nome do recurso que criou.

  2. Na página do grupo de recursos, selecione Eliminar, escreva o nome do recurso a eliminar na caixa de texto e, em seguida, selecione Eliminar.

Próximos passos

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