Partilhar via


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

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 utilizar o recurso. Faça a transição para funções JavaScript definidas pelo usuário para o Azure Stream Analytics.

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

  • Arquivos CodeBehind em um projeto de Stream Analytics
  • Funções Definidas pelo Usuário (UDFs) de um projeto C# local
  • UDFs de um pacote existente de uma conta de armazenamento.

Este tutorial usa o método CodeBehind para implementar uma função C# básica. O recurso UDF para trabalhos do Stream Analytics está atualmente em pré-visualização e não deve ser utilizado em cargas de trabalho de produção.

Neste tutorial, aprenderás como:

  • Crie uma função definida pelo usuário em C# usando CodeBehind.
  • Teste seu trabalho do Stream Analytics localmente.
  • Publique seu trabalho no Azure.

Pré-requisitos

Antes de começar, certifique-se de que concluiu os seguintes pré-requisitos:

Criar um contêiner em sua Conta de Armazenamento do Azure

O contêiner criado é usado para armazenar o pacote C# compilado. Se criar um trabalho de Edge, essa conta de armazenamento também será utilizada para implantar o pacote no seu dispositivo IoT Edge. Use um contêiner dedicado para cada trabalho do Stream Analytics. Não há suporte para a reutilização do mesmo contêiner para vários trabalhos do Stream Analytics Edge. Se você já tiver uma conta de armazenamento com contêineres existentes, poderá usá-los. Se não, você precisa criar um novo contêiner.

Criar um projeto do Stream Analytics no Visual Studio

  1. Inicie o Visual Studio.

  2. Selecione Ficheiro > Novo > Projeto.

  3. Na lista de modelos à esquerda, selecione Stream Analytics e, em seguida, selecione Aplicativo de Borda do Azure Stream Analytics ou Aplicativo do Azure Stream Analytics.

  4. Insira o nome do projeto, o local e o nome da solução e selecione OK.

    Criar um projeto do Azure Stream Analytics Edge no Visual Studio

Configurar caminho do pacote de assemblagem

  1. Abra o Visual Studio e navegue até o Gerenciador de Soluções.

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

  3. Expanda a secção Configuração de Código Definido pelo Utilizador e preencha a configuração com os seguintes valores sugeridos:

    Setting Valor sugerido
    Recurso de configurações globais de armazenamento Escolher fonte de dados da conta corrente
    Subscrição de Definições Globais de Armazenamento < a sua subscrição >
    Conta de Armazenamento das Configurações Globais < A sua conta de armazenamento >
    Recurso de definições de armazenamento de código personalizado Escolher fonte de dados da conta corrente
    Conta de Armazenamento para Configurações 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 >

Escreva um UDF em C# com CodeBehind

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

  1. No Gerenciador de Soluções, expanda Script.asql para localizar o arquivo CodeBehind Script.asaql.cs .

  2. Substitua o código pelo seguinte exemplo:

        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 a UDF

  1. No Gerenciador de Soluções, abra o arquivo Script.asaql .

  2. Substitua a consulta existente pela seguinte consulta:

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

Testes locais

  1. Faça o download do arquivo de dados de exemplo do simulador de temperatura.

  2. No Gerenciador de Soluções, expanda Entradas, clique com o botão direito do mouse emInput.jsone selecione Adicionar Entrada Local.

    Adicionar entrada local ao trabalho do Stream Analytics no Visual Studio

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

    Configuração de entrada local para o trabalho do Stream Analytics no Visual Studio

  4. Clique em Executar localmente no editor de scripts. Depois que a execução local tiver salvo com êxito os resultados de saída, pressione qualquer tecla para ver os resultados em formato de tabela.

    Executar o trabalho do Azure Stream Analytics localmente com o Visual Studio

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

    Exibir resultados do trabalho local do Azure Stream Analytics com o Visual Studio

Depurar um UDF

Você pode depurar seu C# UDF localmente da mesma forma que depurar o código C# padrão.

  1. Adicione pontos de interrupção em sua função C#.

    Adicionar pontos de interrupção à função definida pelo usuário do Stream Analytics no Visual Studio

  2. Pressione F5 para iniciar a depuração. O programa para nos seus pontos de interrupção, conforme esperado.

    Exibir resultados de depuração de função definida pelo usuário do Stream Analytics

Publicar 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.

Enviar seu trabalho do Stream Analytics Edge para o Azure a partir do Visual Studio

Implantar em dispositivos IoT Edge

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

Próximos passos

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

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