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:
- Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
- Instale as ferramentas Stream Analytics para o Visual Studio e as cargas de trabalho do desenvolvimento do Azure ou do Armazenamento e Processamento de Dados.
- Consulte o Guia de desenvolvimento do Stream Analytics Edge existente se você estiver criando um trabalho do IoT Edge.
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
Inicie o Visual Studio.
Selecione Arquivo > Novo > Projeto.
Na lista de modelos à esquerda, selecione Stream Analyticse, em seguida, selecione aplicativo do Azure Stream Analytics Edge ou aplicativo do Azure Stream Analytics.
Digite o Nome e Local do projeto e o Nome da solução e selecione OK.
Configurar o caminho do pacote de montagem
Abra o Visual Studio e navegue até o Solution Explorer.
Clique duas vezes no arquivo de configuração de trabalho,
JobConfig.json
.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.
Na Gerenciador de soluções, expanda Script.asql para encontrar o Script.asaql.cs arquivo code-behind.
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
Na Gerenciador de soluções, abra o asaql arquivo.
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
Baixe o arquivo de dados de exemplo de simulador de temperatura.
Na Gerenciador de soluções, expanda entradas, clique com botão direito Inpute selecione Adicionar entrada Local.
Especifique o caminho do arquivo de entrada local para os dados de exemplo que você baixou e salvar.
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.
Você também pode selecionar Abrir pasta de resultados para ver os arquivos brutos no formato JSON e CSV.
Depurar um UDF
Você pode depurar seu c# UDF localmente da mesma maneira que você depura o código c# padrão.
Adicione pontos de interrupção na função do c#.
Pressione F5 para iniciar a depuração. O programa irá parar em seus pontos de interrupção conforme o esperado.
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.
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: