Tutorial: Escrever uma função em C# definida pelo usuário para um trabalho do Azure Stream Analytics (versão prévia)

Importante

As funções definidas pelo usuário do .Net Standard para o Azure Stream Analytics serão desativadas em 30 de setembro de 2024. Após essa data, não será possível usar o recurso. Faça a transição para funções definidas pelo usuário do JavaScript para o Azure Stream Analytics.

C#-funções definidas pelo usuário (UDFs) criados no Visual Studio permitem que você estender a linguagem de consulta do Azure Stream Analytics com suas próprias funções. Você pode reutilizar o código existente (incluindo DLLs) e usar a lógica de matemática ou complexa com o c#. Há três maneiras de implementar UDFs:

  • Arquivos CodeBehind em um projeto do Stream Analytics
  • UDFs de um projeto C# local
  • UDFs de um pacote existente de uma conta de armazenamento.

Este tutorial usa o método de code-behind para implementar uma função c# básica. O recurso UDF para trabalhos do Stream Analytics está atualmente em versão prévia e não deve ser usado nas cargas de trabalho de produção.

Neste tutorial, você aprenderá como:

  • Crie uma função de definidas pelo usuário em c# usando o code-behind.
  • Teste seu trabalho do Stream Analytics localmente.
  • Publique seu trabalho no Azure.

Pré-requisitos

Antes de começar, verifique se que você concluiu os pré-requisitos a seguir:

Criar um contêiner na sua conta de armazenamento do Azure

O contêiner que você criar será usado para armazenar o pacote C# compilado. Se você criar um trabalho de borda, essa conta de armazenamento também será usada para implantar o pacote em seu dispositivo de IoT Edge. Use um contêiner dedicado para cada trabalho do Stream Analytics. Não há suporte para reutilizar o mesmo contêiner para vários trabalhos de borda do Stream Analytics. Se você já tiver uma conta de armazenamento com contêineres existentes, você pode usá-los. Se não, você precisará criar um novo contêiner.

Criar um projeto do Stream Analytics no Visual Studio

  1. Inicie o Visual Studio.

  2. Selecione Arquivo > Novo > Projeto.

  3. Na lista de modelos à esquerda, selecione Stream Analyticse, em seguida, selecione aplicativo do Azure Stream Analytics Edge ou aplicativo do Azure Stream Analytics.

  4. Digite o Nome e Local do projeto e o Nome da solução e selecione OK.

    Create an Azure Stream Analytics Edge project in Visual Studio

Configurar o caminho do pacote de montagem

  1. Abra o Visual Studio e navegue até o Solution Explorer.

  2. Clique duas vezes no arquivo de configuração de trabalho, JobConfig.json.

  3. Expanda o a configuração de código definidos pelo usuário seção e, em seguida, preencha a configuração com os seguintes valores sugeridos:

    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 >
    Recurso de Configurações de Armazenamento de Código Personalizado Escolha fonte de dados da conta atual
    Conta de Armazenamento de Configurações de Armazenamento de Código Personalizado < sua conta de armazenamento >
    Contêiner de Configurações de Armazenamento de Código Personalizado < seu contêiner de armazenamento >

Escreva um UDF C# com o código atrás

Um arquivo CodeBehind é um arquivo C# associado a um único script de consulta do ASA. As ferramentas do Visual Studio compactam automaticamente o arquivo code-behind zip e o carrega à sua conta de armazenamento do Azure após o envio. Todas as classes devem ser definidas como pública e todos os objetos devem ser definidos como estáticos públicos.

  1. Na Gerenciador de soluções, expanda Script.asql para encontrar o Script.asaql.cs arquivo code-behind.

  2. Substitua o código com o exemplo a seguir:

        using System; 
        using System.Collections.Generic; 
        using System.IO; 
        using System.Linq; 
        using System.Text; 
    
        namespace ASAEdgeUDFDemo 
        { 
            public class Class1 
            { 
                // Public static function 
                public static Int64 SquareFunction(Int64 a) 
                { 
                    return a * a; 
                } 
            } 
        } 
    

Implementar o UDF

  1. Na Gerenciador de soluções, abra o asaql arquivo.

  2. Substitua a consulta existente pelo seguinte:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

Teste local

  1. Baixe o arquivo de dados de exemplo de simulador de temperatura.

  2. Na Gerenciador de soluções, expanda entradas, clique com botão direito Inpute selecione Adicionar entrada Local.

    Add local input to Stream Analytics job in Visual Studio

  3. Especifique o caminho do arquivo de entrada local para os dados de exemplo que você baixou e salvar.

    Local input configuration for Stream Analytics job in Visual Studio

  4. Clique em executar localmente no editor de scripts. Quando a execução local tiver salvo com sucesso os resultados de saída, pressione qualquer tecla para ver os resultados no formato de tabela.

    Run Azure Stream Analytics job locally with Visual Studio

  5. Você também pode selecionar Abrir pasta de resultados para ver os arquivos brutos no formato JSON e CSV.

    View results of local Azure Stream Analytics job with Visual Studio

Depurar um UDF

Você pode depurar seu c# UDF localmente da mesma maneira que você depura o código c# padrão.

  1. Adicione pontos de interrupção na função do c#.

    Add breakpoints to Stream Analytics user-defined function in Visual Studio

  2. Pressione F5 para iniciar a depuração. O programa irá parar em seus pontos de interrupção conforme o esperado.

    View Stream Analytics user-defined function debugging results

Publique seu trabalho no Azure

Depois de testar sua consulta localmente, selecione enviar para o Azure no editor de scripts para publicar o trabalho no Azure.

Submit your Stream Analytics Edge job to Azure from Visual Studio

Implantar em dispositivos IoT Edge

Se você optar por criar um trabalho do Edge do Stream Analytics, agora ele poderá ser implantado como um módulo do IoT Edge. Siga as guia de início rápido do IoT Edge para criar um IoT Hub, registrar um dispositivo IoT Edge e instalar e iniciar o runtime do IoT Edge em seu dispositivo. Em seguida, siga as implantar o trabalho tutorial para implantar o trabalho do Stream Analytics como um módulo IoT Edge.

Próximas etapas

Neste tutorial, você criou uma simples função em C# definida pelo usuário utilizando CodeBehind, publicou seu trabalho no Azure e implantou o trabalho no Azure ou no dispositivo IoT Edge.

Para saber mais sobre as diferentes maneiras de usar funções em C# definidas pelo usuário para trabalhos do Stream Analytics, vá para este artigo: