Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Quando as funções definidas pelo usuário (UDF) não funcionam como você espera, você precisa depurá-las para encontrar o problema. Você pode depurar UDFs para seus trabalhos do Stream Analytics ao executar seus trabalhos localmente usando o Visual Studio Code ou o Visual Studio.
Quando você executa seu trabalho em um fluxo de entrada ao vivo localmente, ele imita apenas a execução do mecanismo do Azure Stream Analytics na nuvem em um nó. Os testes locais de dados em tempo real não podem substituir os testes de desempenho e escalabilidade que você faz na nuvem, mas você economiza tempo durante os testes funcionais ao não ter que enviar seu trabalho para a nuvem cada vez que deseja testar. Além disso, as políticas de tempo são desabilitadas para execução local com dados locais ou de exemplo, mas as políticas de tempo são suportadas para testes de dados em tempo real.
Escolha o seu idioma
Você pode escrever UDFs para o Azure Stream Analytics usando .NET (C#) ou JavaScript.
Funções em C#
Quando você escreve UDFs .NET usando o Visual Studio, você obtém o mesmo nível de suporte que você faria para qualquer projeto de classe .NET. Este apoio inclui:
Suporte à compilação, como verificação de sintaxe e suporte ao compilador.
A capacidade de adicionar, criar e referenciar um projeto e artefatos em C# em sua solução do Stream Analytics.
Fácil reutilização de código encapsulado em um projeto compartilhável.
Depurar suporte diretamente no Visual Studio. Defina o projeto do Stream Analytics como projeto inicial e defina pontos de interrupção no código C#. Em seguida, pressione F5 para depurar o código C# como faria para qualquer outro projeto C#.
Funções em JavaScript
JavaScript é outra opção para criar funções no Stream Analytics. O código JavaScript é colocado diretamente na área de função do projeto do Stream Analytics, o que dificulta o compartilhamento entre projetos.
A compilação acontece quando o projeto do Stream Analytics é compilado ou executado. A chance de encontrar um problema apenas em tempo de execução é maior. Não há suporte de depuração para funções JavaScript diretamente no Stream Analytics.
Opções de depuração para JavaScript
Como não há suporte de depuração para funções JavaScript diretamente no Stream Analytics, você pode depurar encapsulando a função em um site HTML e obtendo a saída de lá.
O exemplo a seguir mostra como depurar UDFs JavaScript com algumas limitações em um ambiente de tempo de execução integrado no Visual Studio Code.
Pré-requisitos
Antes de começar, certifique-se de que seu projeto do Azure Stream Analytics tenha os seguintes itens:
- Uma entrada
- Uma saída
- Uma consulta do Stream Analytics (.asaql)
- Uma configuração de trabalho do Stream Analytics (JobConfig.json)
- Um UDF JavaScript
Preparar ficheiros
Na imagem a seguir, o arquivo de consulta .asaql inclui apenas a chamada para o UDF, fxcharCount. Essa alteração garante que você ainda seja capaz de compilar o projeto depois que as alterações forem feitas.
Crie uma pasta adicional em Testes para hospedar o arquivo de teste, que é chamado para executar o teste com a função JavaScript. Neste exemplo, o nome da pasta é fxcharCount e o nome do teste é Test_UDF.js.
A imagem abaixo mostra o código no arquivo de teste, que carrega o arquivo de função e executa a função. Este exemplo é simples, mas você pode carregar arquivos de dados de teste adicionais e percorrer testes adicionais para obter a saída. A notação da chamada de função é pouco diferente das chamadas comuns porque o arquivo é referenciado e não carregado no tempo de execução, tornando possível a depuração.
Na função, adicione as seguintes linhas de código ao arquivo para expor os métodos. Eles não afetam a capacidade de compilar o código no Visual Studio Code.
var methods = {};
methods.fxchartCount = fxchartCount;
exports.data = methods;
Instalar suporte de depuração
Para depurar, você deve baixar e instalar node.js. Instale a versão correta de acordo com a plataforma que você está usando. Depois de instalar o tempo de execução do Node.js, reinicie o Visual Studio Code para implementar as alterações.
Selecione Executar e Depurar ou pressione CTRL + SHIFT + D para iniciar a depuração. Uma caixa de combinação é exibida onde você pode selecionar node.js como o tempo de execução. Se você tiver apenas Node.js instalado, ele será usado por padrão. Você deve ser capaz de percorrer o código e entrar no arquivo de satélite, se necessário, com F11.
Depurar agregações definidas pelo usuário
Você pode usar o método debug para JavaScript UDFs para depurar agregações definidas pelo usuário (UDA). Neste exemplo, um UDA é adicionado ao arquivo de consulta .asaql e ao arquivo de teste.
Assim como acontece com o UDF, você inclui uma chamada para o UDA para garantir que o projeto será compilado depois que as alterações forem feitas.
No arquivo Test_UDA.js, você faz referência ao arquivo UDA como fez com o UDF. Além disso, você chama main(), init()e accumulate(). O accumulate() método é chamado em um loop para colocar os valores na pilha de estado. O computeresult() método é chamado para compor a consulta final.
Como no exemplo UDF, algum código precisa ser adicionado ao próprio UDA para expor os métodos relevantes.
var methods = {};
methods.main = main;
methods.init = main.init;
methods.accumulate = main.accumulate;
methods.computeResult = main.computeResult;
exports.data = methods;
Selecione Executar e Depurar ou pressione CTRL + SHIFT + D para iniciar a depuração. Uma caixa de combinação é exibida onde você pode selecionar node.js como o tempo de execução. Se você tiver apenas Node.js instalado, ele será usado por padrão. Você deve ser capaz de percorrer o código e entrar no arquivo de satélite, se necessário, com F11.