Tutorial: Implantar o Azure Stream Analytics como um módulo do IoT Edge

Aplica-se a:marca de seleção do IoT Edge 1.4 IoT Edge 1.4

Importante

A versão com suporte é a IoT Edge 1.4. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Neste tutorial, você cria um trabalho do Azure Stream Analytics no portal do Azure e implanta-o como um módulo do IoT Edge sem nenhum código adicional.

Você aprenderá como:

  • Criar um trabalho do Azure Stream Analytics para processar dados no edge.
  • Conectar o novo trabalho do Azure Stream Analytics a outros módulos do IoT Edge.
  • Implante o trabalho do Azure Stream Analytics em um dispositivo IoT Edge no portal do Azure.

Diagrama da arquitetura de fluxo, mostrando o preparo e a implantação de um trabalho do Azure Stream Analytics.

O módulo do Stream Analytics neste tutorial calcula a temperatura média em uma janela ininterrupta de 30 segundos. Quando essa média atinge 70, o módulo envia um alerta para o dispositivo tomar medidas. Nesse caso, a medida é redefinir o sensor de temperatura simulado. Em um ambiente de produção, você pode usar essa funcionalidade para desligar uma máquina ou tomar medidas preventivas quando a temperatura alcançar níveis perigosos.

Por que usar o Azure Stream Analytics no IoT Edge?

Muitas soluções de IoT usam serviços de análise para obter insights sobre dados quando estes chegam na nuvem vindos de dispositivos de IoT. Com o Azure IoT Edge, você pode usar a lógica do Azure Stream Analytics e movê-la para o próprio dispositivo. Ao processar fluxos de telemetria na borda, você pode reduzir a quantidade de dados carregados e reduzir o tempo necessário para reagir a ideias acionáveis. O Azure IoT Edge e o Azure Stream Analytics são integrados para simplificar seu desenvolvimento de carga de trabalho.

O Azure Stream Analytics fornece uma sintaxe de consulta estruturada de modo sofisticado para a análise de dados na nuvem e em dispositivos do IoT Edge. Para obter mais informações, confira a documentação do Azure Stream Analytics.

Pré-requisitos

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

  • Um dispositivo do Azure IoT Edge.

    Você pode usar uma máquina virtual do Azure como um dispositivo do IoT Edge seguindo as etapas no início rápido para dispositivos do Linux ou do Windows.

  • Um Hub IoT na camada padrão ou gratuito no Azure.

Criar um trabalho do Azure Stream Analytics

Nesta seção, você cria um trabalho do Azure Stream Analytics que executa as seguintes etapas:

  • Receber dados de seu dispositivo IoT Edge.
  • Consultar os dados de telemetria para obter valores fora de um intervalo definido.
  • Agir com relação ao dispositivo IoT Edge com base nos resultados da consulta.

Criar uma conta de armazenamento

Quando você cria um trabalho do Azure Stream Analytics para execução em um dispositivo IoT Edge, ele precisa ser armazenado de uma forma que possa ser chamado a partir do dispositivo. Você pode usar uma conta de Armazenamento do Azure existente ou criar uma agora.

  1. No portal do Azure, acesse Criar um recurso>Armazenamento>Conta de armazenamento.

  2. Forneça os seguintes valores para criar sua conta de armazenamento:

    Campo Valor
    Subscription Escolha a mesma assinatura que o Hub IoT.
    Resource group É recomendável usar o mesmo grupo de recursos para todos os recursos de teste para tutoriais e inícios rápidos do IoT Edge. Por exemplo, IoTEdgeResources.
    Nome Forneça um nome exclusivo para sua conta de armazenamento.
    Location Escolha um local perto de você.
  3. Use os valores padrão para os outros campos e selecione Examinar + Criar.

  4. Examine as configurações e selecione Criar.

Criar um novo trabalho

  1. No portal do Azure, selecione:

    1. Criar um recurso
    2. Internet das Coisas no menu à esquerda
    3. Digite Stream Analytics na barra de pesquisa para encontrá-lo no Marketplace
    4. Selecione Criar e depois Trabalho do Stream Analytics no menu suspenso

    Captura de tela mostrando onde encontrar o serviço de trabalho do Stream Analytics no Marketplace e onde criar um trabalho.

  2. Forneça os seguintes valores para criar o trabalho do Stream Analytics:

    Campo Valor
    Nome Forneça um nome para o seu trabalho. Por exemplo, IoTEdgeJob
    Subscription Escolha a mesma assinatura que o Hub IoT.
    Resource group Use o mesmo grupo de recursos para todos os recursos de teste criados durante os tutoriais e os guias de início rápido do IoT Edge. Por exemplo, um recurso chamado IoTEdgeResources.
    Região Escolha um local perto de você.
    Ambiente de hospedagem Selecione Edge. Essa opção significa que a implantação vai para um dispositivo do IoT Edge em vez de ser hospedada na nuvem.
  3. Selecione Examinar + criar.

  4. Confirme as opções e selecione Criar.

Configurar seu trabalho

Depois que o trabalho do Stream Analytics for criado no portal do Azure, você poderá configurá-lo com uma entrada, uma saída e uma consulta para execução nos dados que passam por ele.

Esta seção cria um trabalho que recebe dados de temperatura de um dispositivo do IoT Edge. Ele analisa esses dados em um período contínuo de 30 segundos. Se a temperatura média nessa janela ficar acima de 70 graus, um alerta será enviado ao dispositivo do IoT Edge.

Observação

Você especificará exatamente de onde os dados vem e para onde vão na próxima seção Definir as configurações do IoT Edge quando implantar o trabalho.

Definir a entrada e a saída

  1. Navegue até o seu trabalho do Stream Analytics no portal do Azure.

  2. Em Topologia do trabalho, selecione Entradas e Adicionar entrada.

    Captura de tela mostrando onde adicionar entrada de fluxo no portal do Azure.

  3. Escolha Hub do Edge na lista suspensa.

    Se você não vir a opção Hub do Edge na lista, talvez você tenha criado seu trabalho do Stream Analytics como um trabalho hospedado na nuvem. Tente criar um trabalho e selecione Edge como o ambiente de hospedagem.

  4. No painel Nova entrada, insira temperatura como o alias de entrada.

  5. Use os valores padrão para os outros campos e selecione Salvar.

  6. Em Topologia do Trabalho, abra Saídas e, em seguida, selecione Adicionar.

    Captura de tela mostrando onde adicionar a saída de fluxo no portal do Azure.

  7. Escolha Hub do Edge na lista suspensa.

  8. No painel Nova saída, insira alerta como o alias de saída.

  9. Use os valores padrão para os outros campos e selecione Salvar.

Criar uma consulta

  1. Em Topologia do trabalho, selecione Consulta.

  2. Substitua o texto padrão pela consulta a seguir.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    O código SQL enviará um comando de reinicialização à saída do alerta se a temperatura média do computador em um período de 30 segundos atingir 70 graus. O comando de reinicialização foi pré-programado no sensor como uma ação que pode ser executada.

  3. Selecione Salvar consulta.

Definição das configurações do IoT Edge

Para preparar o trabalho do Stream Analytics a ser implantado em um dispositivo do IoT Edge, você precisa associar o trabalho do Azure Stream Analytics a uma conta de armazenamento. Quando você implantar o trabalho, a definição dele será exportada para a conta de armazenamento na forma de um contêiner.

  1. No serviço Stream Analytics, no menu Configurações, selecione Configurações da conta de armazenamento.

  2. Escolha a opção Selecionar armazenamento de blobs/ADLS Gen 2 de suas assinaturas.

  3. A conta de armazenamento do Azure é exibida automaticamente na página. Se não aparecer um armazenamento, crie um. Ou se você precisar escolher um armazenamento diferente do listado no campo Conta de armazenamento, selecione-o no menu suspenso.

  4. Selecione Salvar, se fez alguma alteração.

    Captura de tela de onde adicionar uma conta de armazenamento no trabalho do Stream Analytics no portal do Azure.

Implantar o trabalho

Agora você está pronto para implantar o trabalho do Azure Stream Analytics no dispositivo do IoT Edge.

Nesta seção, você usa o assistente Definir módulos no portal do Azure para criar um manifesto de implantação. Um manifesto de implantação é um arquivo JSON que descreve todos os módulos que são implantados em um dispositivo. O manifesto também mostra os registros de contêiner que armazenam as imagens do módulo, como os módulos devem ser gerenciados e como os módulos podem se comunicar entre si. Seu dispositivo IoT Edge recupera o manifesto de implantação do Hub IoT e, em seguida, usa as informações contidas nele para implantar e configurar todos os seus módulos atribuídos.

Para este tutorial, você deve implantar dois módulos. O primeiro é SimulatedTemperatureSensor, um módulo que simula um sensor de temperatura e umidade. O segundo é o seu trabalho do Stream Analytics. O módulo do sensor fornece o fluxo de dados que a consulta do trabalho analisará.

  1. No portal do Azure, navegue para o hub IoT.

  2. Selecione Dispositivos no menu Gerenciamento de dispositivos e escolha o dispositivo do IoT Edge para abri-lo.

  3. Selecione Definir módulos.

  4. Se você implantou o módulo SimulatedTemperatureSensor neste dispositivo, talvez ele seja automaticamente preenchido. Caso contrário, adicione o módulo com as seguintes etapas:

    1. Escolha + Adicionar depois Módulo do IoT Edge.
    2. Para o nome, digite SimulatedTemperatureSensor.
    3. Como URI da imagem, insira mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.
    4. Deixe as outras configurações padrão e selecione Adicionar.
  5. Adicione o trabalho de Edge do Azure Stream Analytics com as seguintes etapas:

    1. Selecione +Adicionar e escolha Módulo do Azure Stream Analytics.
    2. Selecione sua assinatura e o trabalho de Edge do Azure Stream Analytics que você criou.
    3. Clique em Salvar.

    Depois de salvar as alterações, os detalhes de seu trabalho do Stream Analytics serão publicados no contêiner de armazenamento que você criou.

  6. Depois que a adição do Stream Analytics concluir a implantação, confirme se dois novos módulos aparecem na página Definir módulos.

    Captura de tela confirmando que dois novos módulos estão no dispositivo. A captura de tela também mostra onde o botão Examinar + criar está localizado.

  7. Selecione Examinar + criar. O manifesto de implantação é exibido.

  8. Selecione Criar.

  9. Na página Definir módulos do dispositivo, após alguns minutos, você verá os módulos listados e em execução. Atualize a página se os módulos não aparecerem ou aguarde mais alguns minutos e atualize-a novamente.

    Captura de tela que mostra a lista de módulos do dispositivo no portal do Azure.

Entender os dois novos módulos

  1. Na guia Definir módulos do dispositivo, selecione o nome do módulo do Stream Analytics para acessar a página Atualizar módulo do IoT Edge. Aqui você pode atualizar as configurações.

    A guia Configurações tem o URI da imagem que aponta para uma imagem padrão do Azure Stream Analytics. Essa imagem única é usada para cada módulo do Stream Analytics implantado em um dispositivo do IoT Edge.

    A guia Configurações do Módulo Gêmeo mostra o JSON que define a propriedade do ASA (Azure Stream Analytics) chamada ASAJobInfo. O valor dessa propriedade aponta para a definição de trabalho em seu contêiner de armazenamento. Esta propriedade é como a imagem do Stream Analytics é configurada com os detalhes de seu trabalho específico.

    Por padrão, o módulo Stream Analytics usa o mesmo nome que o trabalho no qual ele se baseia. Você pode alterar o nome do módulo nesta página, se desejar, mas isso não é necessário.

  2. Selecione Aplicar se você fez alterações ou Cancelar se não fez nenhuma alteração.

Atribuir rotas aos módulos

  1. Na página Definir módulos em device:<your-device-name>, selecione Avançar: Rotas.

  2. Na guia Rotas, defina como as mensagens são transmitidas entre os módulos e o Hub IoT. As mensagens são construídas usando pares nome e valor.

    Adicione os nomes e os valores de rota com os pares mostrados na tabela a seguir. Substitua as instâncias de {moduleName} pelo nome do módulo do Azure Stream Analytics. Este módulo deve ter o mesmo nome que aparece na lista de módulos do dispositivo na página Definir módulos, mostrada no portal do Azure.

    Captura de tela mostrando o nome dos módulos do Stream Analytics no dispositivo do IoT Edge no portal do Azure.

    Nome Valor
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    As rotas que você declara aqui definem o fluxo de dados no dispositivo do IoT Edge. Os dados de telemetria do SimulatedTemperatureSensor são enviados para o Hub IoT e para a entrada de temperatura que foi configurada no trabalho do Stream Analytics. As mensagens de saída do alerta são enviadas para o Hub IoT e para o módulo SimulatedTemperatureSensor para disparar o comando de reinicialização.

  3. Selecione Avançar: Examinar + Criar.

  4. Na guia Examinar + Criar, você poderá ver como as informações fornecidas no assistente são convertidas em um manifesto de implantação JSON.

  5. Quando terminar de examinar o manifesto, selecione Criar para concluir a configuração do módulo.

Exibir dados

Agora você pode acessar o dispositivo do IoT Edge para verificar a interação entre o módulo do Azure Stream Analytics e o módulo SimulatedTemperatureSensor.

Observação

Se você estiver usando uma máquina virtual para um dispositivo, use o Azure Cloud Shell para acessar diretamente todos os serviços autenticados do Azure.

  1. Verifique se todos os módulos estão em execução no Docker:

    iotedge list  
    
  2. Exibir todos os logs do sistema e dados de métricas. Substitua {moduleName} pelo nome do módulo do Azure Stream Analytics:

    iotedge logs -f {moduleName}  
    
  3. Veja como o comando de redefinição afeta o SimulatedTemperatureSensor vendo os logs de sensor:

    iotedge logs SimulatedTemperatureSensor
    

    Você pode observar a temperatura do computador aumentar gradualmente até atingir 70 graus por 30 segundos. Em seguida, o módulo do Stream Analytics dispara uma redefinição e a temperatura da máquina cai para 21.

    Captura de tela que mostra o comando de redefinição na saída dos logs do módulo.

Limpar os recursos

Se você pretende continuar no próximo artigo recomendado, pode manter os recursos e as configurações já criados e reutilizá-los. Você também pode continuar usando o mesmo dispositivo IoT Edge como um dispositivo de teste.

Caso contrário, é possível excluir as configurações locais e os recursos do Azure usados neste artigo para evitar encargos.

Excluir recursos do Azure

A exclusão de recursos do Azure e dos grupos de recursos é irreversível. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se você criou o hub IoT em um grupo de recursos existente que contém recursos que deseja manter, exclua apenas o recurso do hub IoT, não o grupo de recursos.

Para excluir os recursos:

  1. Entre no portal do Azure e selecione Grupos de recursos.

  2. Selecione o nome do grupo de recursos que contém os recursos de teste do IoT Edge.

  3. Examine a lista de recursos contidos no grupo de recursos. Se você deseja excluir todos eles, selecione Excluir grupo de recursos. Se você quiser excluir apenas alguns deles, clique em cada recurso para excluí-los individualmente.

Próximas etapas

Neste tutorial, você configurou um trabalho do Azure Stream Analytics para analisar dados de seu dispositivo IoT Edge. Depois, você carregou esse módulo do Azure Stream Analytics no dispositivo do IoT Edge para processar e reagir ao aumento de temperatura localmente, além de enviar o fluxo de dados agregados à nuvem. Continue com os outros tutoriais para saber como o Azure IoT Edge pode criar outras soluções para seus negócios.