Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 JavaScript definidas pelo usuário para o Azure Stream Analytics.
As UDFs (funções definidas pelo usuário) do C# criadas no Visual Studio permitem 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 lógica matemática ou complexa com 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 CodeBehind 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 em cargas de trabalho de produção.
Neste tutorial, você aprenderá 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, verifique se você concluiu os seguintes pré-requisitos:
- Caso não tenha uma assinatura do Azure, crie uma conta gratuita.
- Instale as ferramentas do Stream Analytics para Visual Studio e as cargas de trabalho de desenvolvimento do Azure ou de Armazenamento e Processamento de Dados.
- Dê uma olhada no guia de desenvolvimento do Stream Analytics Edge existente se você estiver criando um trabalho do IoT Edge.
Criar um contêiner em sua Conta de Armazenamento do Azure
O contêiner criado é usado para armazenar o pacote C# compilado. Se você criar um trabalho do Edge, essa conta de armazenamento também será usada para implantar o pacote em seu dispositivo IoT Edge. Use um contêiner dedicado para cada trabalho do Stream Analytics. Não há suporte para 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. Caso contrário, 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 Analytics e, em seguida, selecione Aplicativo do Azure Stream Analytics Edge ou Aplicativo do Azure Stream Analytics.
Insira o nome do projeto, o local e o nome da solução e selecione OK.
Configurar o caminho do pacote do assembly
Abra o Visual Studio e navegue até o Gerenciador de Soluções.
Clique duas vezes no arquivo de configuração do trabalho.
JobConfig.jsonExpanda a seção Configuração de Código Definida pelo Usuário e preencha a configuração com os seguintes valores sugeridos:
Configurações Valor Sugerido Recurso de Configurações de Armazenamento Global Selecione a fonte de dados da conta atual Assinatura Global de Configurações de Armazenamento < sua assinatura > Configurações Globais de Armazenamento Conta de Armazenamento < sua conta de armazenamento > Recurso de armazenamento de configurações de código personalizadas Selecione a 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 >
Gravar 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 fecham 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.
No Gerenciador de Soluções, expanda Script.asql para localizar o arquivo Script.asaql.cs CodeBehind.
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
No Gerenciador de Soluções, abra o arquivo Script.asaql .
Substitua a consulta existente pela seguinte consulta:
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 do simulador de temperatura.
No Gerenciador de Soluções, expanda Entradas, clique com o botão direito do mouse emInput.jsone selecione Adicionar Entrada Local.
Especifique o caminho do arquivo de entrada local para os dados de exemplo que você baixou e salve.
Clique em Executar Localmente no editor de scripts. Depois que a execução local tiver salvo os resultados da saída com êxito, 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 uma UDF
Você pode depurar a UDF do C# localmente da mesma forma que depura o código C# padrão.
Adicione pontos de interrupção à função C#.
Pressione F5 para iniciar a depuração. O programa para em seus pontos de interrupção conforme o esperado.
Publicar seu trabalho no Azure
Depois de testar a consulta localmente, selecione Enviar para o Azure no editor de scripts para publicar o trabalho no Azure.
Implantar em dispositivos do IoT Edge
Se você optar por criar um trabalho do Stream Analytics Edge, ele agora poderá 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 runtime 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óximas etapas
Neste tutorial, você criou uma função simples definida pelo usuário em C# usando CodeBehind, publicou seu trabalho no Azure e implantou o trabalho no dispositivo do Azure ou do IoT Edge.
Para saber mais sobre as diferentes maneiras de usar funções definidas pelo usuário em C# para trabalhos do Stream Analytics, prossiga para este artigo: