Início Rápido: criar um trabalho do Stream Analytics usando o Microsoft Visual Studio Code

Este início rápido mostra como criar, executar e enviar um trabalho do ASA (Azure Stream Analytics) usando a extensão Ferramentas do ASA para Visual Studio Code em sua máquina local. Aprenda a criar um trabalho do ASA que lê dados de streaming do Hub IoT em tempo real e filtra eventos com temperatura superior a 27°. Os resultados de saída são enviados para um arquivo no armazenamento de blobs. Os dados de entrada usados neste início rápido são gerados por um simulador online do Raspberry Pi.

Observação

As ferramentas do Visual Studio Code não oferecem suporte a trabalhos nas regiões Leste da China, Norte da China, Alemanha Central e Nordeste da Alemanha.

Pré-requisitos

Instalar a extensão Ferramentas do Azure Stream Analytics

  1. Abra o VS Code (Visual Studio Code).

  2. Em Extensões no painel esquerdo, pesquise por Stream Analytics e selecione Instalar na extensão Ferramentas do Azure Stream Analytics.

    Captura de tela mostrando a página “Extensões” do Visual Studio Code com uma opção para instalar a extensão do Stream Analytics.

  3. Depois de instalado, selecione o ícone do Azure na barra de atividades e entre no Azure.

    Captura de tela mostrando como entrar no Azure.

  4. Depois de entrar, você poderá ver as assinaturas em sua conta do Azure.

Observação

A extensão Ferramentas do ASA conectará você automaticamente sempre que você abrir o VS Code. Caso a sua conta tenha a autenticação de dois fatores, recomendamos o uso da autenticação por telefone em vez do uso de um PIN. Para sair da sua conta do Azure, pressione Ctrl + Shift + P e insira Azure: Sign Out.

Preparar os dados de entrada

Antes de definir o trabalho do Stream Analytics, você deve preparar os dados de entrada. Os dados de sensor em tempo real são incluídos no Hub IoT, posteriormente configurado como a entrada do trabalho. Para preparar os dados de entrada exigidos pelo trabalho, execute as seguintes etapas:

  1. Entre no portal do Azure.

  2. Selecione Criar um recurso > Internet das Coisas > Hub IoT.

    Captura de tela mostrando a página “Criar recurso” do Hub IoT.

  3. Na página do Hub IoT, insira as seguintes informações:

    • Assinatura: selecione sua assinatura do Azure.
    • Grupo de recursos: selecione um grupo de recursos ou crie um grupo de recursos.
    • Nome do hub IoT: insira um nome para o seu Hub IoT.
    • Região: selecione a região mais próxima de você.

    Captura de tela mostrando a página do Hub IoT para criação.

  4. Acesse a página Gerenciamento, em Tipo de preço e escala, selecione F1: tipo gratuito, se ainda estiver disponível em sua assinatura. Para saber mais, confira Preço do Hub IoT do Azure.

    Captura de tela mostrando a página de gerenciamento do Hub IoT.

  5. Selecione Examinar + criar. Examine as informações do hub IoT e selecione Criar. Esse processo pode levar alguns minutos para implantar o seu hub IoT.

  6. Após a criação do seu Hub IoT, selecione Ir para o recurso para navegar até a página do Hub IoT. '

  7. Na página Hub IoT, selecione Dispositivos no menu à esquerda e, em seguida, + Adicionar dispositivo.

    Captura de tela mostrando o botão “Adicionar dispositivo” na página “Dispositivos”.

  8. Forneça uma Identificação do dispositivo e selecione Salvar.

    Captura de tela mostrando a página “Adicionar dispositivo”.

  9. Depois da criação do dispositivo, você deve vê-lo na lista de Dispositivos IoT. Pressione o botão Atualizar na página se não encontrá-lo.

    Captura de tela mostrando a seleção do dispositivo na página “Dispositivos”.

  10. Selecione seu dispositivo na lista. Copie a Cadeia de conexão primária e salve-a em um bloco de notas para usar mais tarde.

    Captura de tela mostrando a cadeia de conexão primária do dispositivo que você criou.

Executar o simulador de IoT

  1. Abra o Simulador Online Raspberry Pi do Azure IoT em uma nova guia do navegador.

  2. Substitua o espaço reservado na linha 15 pela cadeia de conexão do dispositivo hub IoT salva anteriormente.

  3. Selecione Executar. A saída deverá exibir os dados de sensor e as mensagens que estão sendo enviadas ao hub IoT.

    Captura de tela mostrando o Raspberry Pi Azure IoT Online Simulator com a saída.

Criar o armazenamento de blobs

  1. No canto superior esquerdo do portal do Azure, selecione Criar um recurso>Armazenamento>Conta de armazenamento.

    Captura de tela mostrando o menu “Criar conta de armazenamento”.

  2. No painel Criar conta de armazenamento, insira um nome para a conta de armazenamento, um local e um grupo de recursos. Escolha a mesma localização e o mesmo grupo de recursos do hub IoT criado. Em seguida, selecione Revisar e Criar para criar a conta de armazenamento.

    Captura de tela mostrando a página “Criar conta de armazenamento”.

  3. Na página Conta de armazenamento, selecione Contêineres no menu esquerdo e clique em + Contêiner na barra de comandos.

    Captura de tela mostrando a página “Contêineres”.

  4. Na página Novo contêiner, forneça um nome para o contêiner, mantenha o Nível de acesso público como Privado (sem acesso anônimo) e clique em OK.

    Captura de tela mostrando a criação de uma página de contêiner de blobs.

Criar um projeto do Stream Analytics

  1. Em Visual Studio Code, pressione Ctrl+Shift+P e insira ASA: criar projeto.

    Captura de tela mostrando a seleção de “ASA: Criar projeto” na paleta de comandos.

  2. Insira o nome do projeto, como myASAproj, e selecione uma pasta para o projeto.

    Captura de tela mostrando a inserção de um nome de projeto do ASA.

  3. Um projeto ASA é adicionado ao seu workspace. Consiste em três pastas: Entradas, Saídas e Funções. Ele também contém o script de consulta (*.asaql) , um arquivo JobConfig.json e um arquivo de configuração asaproj.json.

    Captura de tela mostrando os arquivos de projeto do Stream Analytics no Visual Studio Code.

    O arquivo asaproj.json contém as entradas, saídas e configurações de trabalho para enviar o trabalho do Stream Analytics para o Azure.

    Observação

    Quando você adiciona entradas e saídas por meio da paleta de comandos, os caminhos correspondentes são adicionados a asaproj.json automaticamente. Se você adicionar ou remover entradas ou saídas no disco de maneira direta, será necessário adicioná-las ou removê-las manualmente no asaproj.json. Você pode optar por colocar as entradas e as saídas em um local e, em seguida, referenciá-las em trabalhos diferentes especificando os caminhos em cada arquivo asaproj.json.

Definir a consulta de transformação

  1. Abra o arquivo myASAproj.asaql e adicione a seguinte consulta:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Captura de tela mostrando a consulta de transformação.

Configurar entrada de trabalho

  1. Clique com o botão direito do mouse na pasta Entradas do projeto do Stream Analytics. Em seguida, selecione ASA: Adicionar Entrada no menu de contexto.

    Captura de tela mostrando o menu “ASA: Adicionar entrada” no Visual Studio Code.

    Ou pressione Ctrl+Shift+P para abrir a paleta de comandos e insira ASA: adicionar entrada.

  2. Escolha Hub IoT para o tipo de entrada.

    Captura de tela mostrando a seleção do hub IoT na paleta de comandos do VS Code.

  3. Selecione um script ASA *.asaql e assinaturas do Azure no menu suspenso e pressione ENTER.

  4. Na pasta Entradas, você verá que um arquivo IoTHub1.json foi criado. Substitua as configurações pelos seguintes valores sugeridos e mantenha os valores padrão para os demais campos.

    Configuração Valor sugerido Descrição
    Nome Entrada Esse nome de entrada é usado para a instrução FROM na consulta.
    IotHubNamespace spiothub O nome de seu Hub IoT. Os nomes do Hub IoT são detectados automaticamente se você selecionar em sua assinatura.
    SharedAccessPolicyName iothubowner

    Captura de tela mostrando a configuração de Hub IoT no VS Code.

  5. Selecione Visualizar dados para ver se os dados de entrada foram configurados com êxito para seu trabalho. Ele buscará uma amostra do Hub IoT e mostrará na janela de visualização.

    Captura de tela mostrando a visualização dos dados de entrada no hub IoT.

Configurar saída de trabalho

  1. Pressione Ctrl+Shift+P para abrir a paleta de comandos e insira ASA: adicionar saída.

  2. Escolha Data Lake Storage Gen2/Armazenamento de Blobs para o tipo de coletor.

  3. Selecione o script de consulta usando essa saída.

  4. Insira BlobStorage1 como nome do arquivo de saída.

  5. Edite as configurações usando os valores a seguir. Mantenha os valores padrão para os campos não mencionados aqui.

    Configuração Valor sugerido Descrição
    Nome Saída Esse nome de saída é usado para a instrução INTO na consulta.
    Conta de Armazenamento spstorageaccount0901 Escolha ou insira o nome da conta de armazenamento. Os nomes das contas de armazenamento serão detectados automaticamente se eles forem criados na mesma assinatura.
    Contêiner spcontainer Selecione o contêiner existente que você criou em sua conta de armazenamento.

Captura de tela mostrando a configuração de saída para o trabalho do Stream Analytics.

Compile o script e envie para o Azure

A compilação de script verifica a sintaxe e gera os modelos do Azure Resource Manager para implantação automática.

  1. Clique com o botão direito do mouse no script e selecione ASA: Compilar Script.

    Captura de tela mostrando a opção de compilação de script no Explorer do Stream Analytics no VS Code.

  2. Após a compilação, você verá uma pasta Implantar em seu projeto com dois modelos do Azure Resource Manager. Esses dois arquivos são usados para implantação automática.

    Captura de tela mostrando os modelos de implantação gerados na pasta do projeto.

  3. Clique em Enviar para o Azure no editor de consultas.

    Captura de tela mostrando o botão Enviar trabalho para enviar o trabalho do Stream Analytics para o Azure.

    Em seguida, siga as instruções para concluir o processo: Selecione a assinatura > Selecione um trabalho > Criar trabalho > Insira o nome do trabalho > Escolha o grupo de recursos e a região.

  4. Selecione Publicar no Azure e conclua. Aguarde até uma nova guia Visualização de trabalho na nuvem seja aberta, mostrando o status do seu trabalho.

    Captura de tela mostrando o botão Publicar no Azure no VS Code.

Inicie o trabalho do Stream Analytics e verifique a saída

  1. Na guia Visualização de trabalho na nuvem, selecione Iniciar para executar seu trabalho na nuvem. A conclusão desse processo pode levar alguns minutos.

    Captura de tela mostrando o botão “Iniciar trabalho” na página “Visualização de nuvem”.

  2. Se o trabalho for iniciado com êxito, o status do trabalho será alterado para Em execução. Será possível ver um diagrama lógico mostrando como o trabalho do ASA está em execução.

    Captura de tela mostrando o status do trabalho em execução no VS Code.

  3. Para exibir os resultados de saída, você pode abrir o armazenamento de blobs na extensão do Visual Studio Code ou no portal do Azure.

    Captura de tela mostrando o arquivo de saída no contêiner de blobs.

    Baixe e abra o arquivo para ver a saída.

    {"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}}
    {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}}
    {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}}
    {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}}
    {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}}
    {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}}
    {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}}
    {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}}
    {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}}
    {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}}
    {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
    

Limpar os recursos

Quando não forem mais necessários, exclua o grupo de recursos, o trabalho do Stream Analytics e todos os recursos relacionados. A exclusão do trabalho evita a cobrança das unidades de streaming consumidas por ele. Se você está planejando usar o trabalho no futuro, pode interrompê-lo e reiniciar mais tarde, quando necessário. Se você não pretende continuar usando este trabalho, exclua todos os recursos criados por este início rápido seguindo estas etapas:

  1. No menu à esquerda do portal do Azure, selecione Grupos de recursos e, em seguida, o nome do recurso criado.

  2. Na página do grupo de recursos, selecione Excluir. Insira o nome do recurso a ser excluído na caixa de texto e, em seguida, selecione Excluir.

Próximas etapas

Para saber mais sobre a extensão Ferramentas do ASA para Visual Studio Code, continue nos seguintes artigos: