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

Aplica-se a:Marca de verificação do IoT Edge 1.5 IoT Edge 1.5 Marca de verificação do IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.5 LTS e IoT Edge 1.4 LTS são versões suportadas. O IoT Edge 1.4 LTS termina a vida útil em 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

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

Sabe como:

  • Crie uma tarefa do Azure Stream Analytics para processar dados na periferia.
  • Ligue a nova tarefa do Azure Stream Analytics a outros módulos do IoT Edge.
  • Implemente a tarefa do Azure Stream Analytics num dispositivo IoT Edge a partir do 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 num período de 30 segundos graduais. Quando essa média atingir 70, o módulo envia um alerta para o dispositivo tomar medidas. Neste caso, essa ação é repor o sensor de temperatura simulada. Num ambiente de produção, pode utilizar esta funcionalidade para encerrar uma máquina ou tomar medidas preventivas quando a temperatura atingir 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 informações sobre os dados à medida que chegam à nuvem a partir de dispositivos IoT. Com o Azure IoT Edge, pode utilizar a lógica do Azure Stream Analytics e movê-la para o dispositivo propriamente dito. Ao processar os fluxos de telemetria na periferia, pode reduzir a quantidade de dados carregados, bem como o tempo que demora a reagir a informações acionáveis. O Azure IoT Edge e o Azure Stream Analytics são integrados para simplificar o desenvolvimento da sua carga de trabalho.

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

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

  • Um dispositivo Azure IoT Edge.

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

  • Um Hub IoT no escalão gratuito ou standard no Azure.

Criar uma tarefa do Azure Stream Analytics

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

  • Receba dados do seu dispositivo IoT Edge.
  • Consulte os dados de telemetria em busca de valores fora de um intervalo definido.
  • Execute uma ação no dispositivo IoT Edge com base nos resultados da consulta.

Criar uma conta de armazenamento

Quando cria um trabalho do Azure Stream Analytics para ser executado num dispositivo IoT Edge, o trabalho tem de ser armazenado de forma a poder ser chamado a partir do dispositivo. Você pode usar uma conta de Armazenamento do Azure existente ou criar uma nova agora.

  1. No portal do Azure, vá para Criar uma conta de armazenamento de>recursos.>

  2. Indique os valores seguintes para criar a conta de armazenamento:

    Campo Value
    Subscrição Escolha a mesma subscrição do hub IoT.
    Grupo de recursos Recomendamos que você use o mesmo grupo de recursos para todos os recursos de teste para os tutoriais e inícios rápidos do IoT Edge. Por exemplo, IoTEdgeResources.
    Nome Introduza um nome exclusivo para a conta de armazenamento.
    Location Escolha uma localização perto de si.
  3. Mantenha os valores padrão para os outros campos e selecione Revisar + Criar.

  4. Reveja as suas definições e, em seguida, selecione Criar.

Criar uma nova tarefa

  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, em seguida , Transmitir trabalho do Analytics no menu suspenso
  2. Forneça os seguintes valores para criar seu novo trabalho do Stream Analytics:

    Campo Valor
    Nome Indique um nome para o trabalho. Por exemplo, IoTEdgeJob
    Subscrição Escolha a mesma subscrição do hub IoT.
    Grupo de recursos Recomendamos usar o mesmo grupo de recursos para todos os recursos de teste criados durante os tutoriais e inícios rápidos do IoT Edge. Por exemplo, um recurso chamado IoTEdgeResources.
    País/Região Escolha uma localização perto de si.
    Ambiente de alojamento Selecione Edge. Essa opção significa que a implantação vai para um dispositivo IoT Edge em vez de ser hospedada na nuvem.
  3. Selecione Rever + criar.

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

Configurar o trabalho

Depois que seu trabalho do Stream Analytics for criado no portal do Azure, você poderá configurá-lo com uma entrada, uma saída e uma consulta para ser executado nos dados que passam.

Esta seção cria um trabalho que recebe dados de temperatura de um dispositivo IoT Edge. Ele analisa esses dados em uma janela de 30 segundos. Se a temperatura média nessa janela ultrapassar os 70 graus, é enviado um alerta para o dispositivo IoT Edge.

Nota

Você especifica exatamente de onde os dados vêm e vai para a próxima seção, Configurar configurações do IoT Edge, ao implantar o trabalho.

Defina a sua entrada e saída

  1. Navegue para o trabalho do Stream Analytics no portal do Azure.

  2. Em Topologia de trabalho, selecione Entradas e, em seguida, Adicionar entrada.

  3. Escolha Hub do Edge, na lista pendente.

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

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

  5. Mantenha os valores predefinidos nos outros campos e selecione Guardar.

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

  7. Escolha Hub do Edge, na lista pendente.

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

  9. Mantenha os valores predefinidos nos outros campos e selecione Guardar.

Criar uma consulta

  1. Em Topologia do Trabalho, selecione Consulta.

  2. Substitua o texto predefinido pela seguinte consulta.

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

    Nessa consulta, o código SQL envia um comando reset para a saída do alerta se a temperatura média da máquina em uma janela de 30 segundos atingir 70 graus. O comando reset foi pré-programado no sensor como uma ação que pode ser tomada.

  3. Selecione Salvar consulta.

Configurar as definições do IoT Edge

Para preparar seu trabalho do Stream Analytics para ser implantado em um dispositivo IoT Edge, você precisa associar seu trabalho do Azure Stream Analytics a uma conta de armazenamento. Quando você implanta seu trabalho, a definição de tarefa é 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 Blob/ADLS Gen 2 em suas assinaturas .

  3. Sua conta de armazenamento do Azure é exibida automaticamente na página. Se não vir um, certifique-se de que cria um armazenamento. Ou, se precisar escolher um armazenamento diferente do listado no campo Conta de armazenamento , selecione-o no menu suspenso.

  4. Selecione Salvar, se tiver que fazer alterações.

Implementar a tarefa

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

Nesta secção, vai utilizar o assistente Definir Módulos, no portal do Azure, para criar um manifesto de implementaçã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. O dispositivo IoT Edge obtém o respetivo manifesto de implementação no Hub IoT e, em seguida, utiliza as informações contidas no mesmo para implementar e configurar todos os módulos que lhe foram atribuídos.

Neste tutorial, vai implementar dois módulos. O primeiro é o SimulatedTemperatureSensor, que é um módulo que simula um sensor de temperatura e humidade. O segundo é o seu trabalho do Stream Analytics. O módulo de sensor fornece o fluxo de dados que sua consulta de trabalho analisa.

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

  2. Selecione Dispositivos no menu Gerenciamento de dispositivos e, em seguida, selecione seu dispositivo IoT Edge para abri-lo.

  3. Selecione Definir módulos.

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

    1. Selecione + Adicionar e escolha IoT Edge Module.
    2. Para o nome, digite SimulatedTemperatureSensor.
    3. Para o URI da imagem, digite mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
    4. Deixe as outras configurações padrão e selecione Adicionar.
  5. Adicione a tarefa do Azure Stream Analytics Edge com os seguintes passos:

    1. Selecione + Adicionar e escolha Módulo do Azure Stream Analytics.
    2. Selecione a sua subscrição e a tarefa do Azure Stream Analytics Edge que criou.
    3. Selecione Guardar.

    Depois de salvar as alterações, os detalhes do trabalho do Stream Analytics sã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 seu dispositivo. A captura de tela também mostra onde o botão Revisar + criar está localizado.

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

  8. Selecione Criar.

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

Entenda os dois novos módulos

  1. Na guia Definir módulos do seu dispositivo, selecione o nome do módulo do Stream Analytics para levá-lo à página Atualizar módulo 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 única imagem é usada para cada módulo do Stream Analytics que é implantado em um dispositivo IoT Edge.

    A guia Configurações de Gêmeo de Módulo mostra o JSON que define a propriedade do Azure Stream Analytics (ASA) chamada ASAJobInfo. cujo valor aponta para a definição do trabalho no seu contentor de armazenamento. Esta propriedade é como a imagem do Stream Analytics é configurada com seus detalhes específicos do trabalho.

    Por padrão, o módulo do Stream Analytics tem o mesmo nome do trabalho em que se baseia. Você pode alterar o nome do módulo nesta página, se quiser, mas não é necessário.

  2. Selecione Aplicar se tiver feito alterações ou Cancelar se não tiver feito alterações.

Atribua rotas aos seus módulos

  1. Na página Definir módulos no dispositivo:<seu-nome-do-dispositivo>, selecione Avançar: Rotas.

  2. Na guia Rotas, você define como as mensagens são passadas entre módulos e o Hub IoT. As mensagens são construídas usando pares de nome e valor.

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

    Captura de ecrã a mostrar o nome dos seus módulos do Stream Analytics no seu dispositivo IoT Edge no portal do Azure.

    Nome Valor
    telemetriaToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertasToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertasToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetriaToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    As rotas que você declara aqui definem o fluxo de dados por meio do dispositivo 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 de alerta são enviadas para o Hub IoT e para o módulo SimulatedTemperatureSensor para acionar o comando reset.

  3. Selecione Seguinte: Rever + Criar.

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

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

Ver dados

Agora você pode ir para seu dispositivo IoT Edge para ver a interação entre o módulo Azure Stream Analytics e o módulo SimulatedTemperatureSensor.

Nota

Se você estiver usando uma máquina virtual para um dispositivo, poderá usar 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. Veja todos os dados de métricas e registos de sistema. Substitua {moduleName} pelo nome do seu módulo do Azure Stream Analytics:

    iotedge logs -f {moduleName}  
    
  3. Veja como o comando reset afeta o SimulatedTemperatureSensor visualizando os logs do sensor:

    iotedge logs SimulatedTemperatureSensor
    

    Você pode observar a temperatura da máquina subir gradualmente até atingir 70 graus por 30 segundos. Em seguida, o módulo do Stream Analytics aciona uma reposição e a temperatura da máquina baixa novamente para 21.

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

Clean up resources (Limpar recursos)

Se planeia avançar para o próximo artigo recomendado, pode manter os recursos e as configurações que criou e reutilizá-los. Também pode continuar a utilizar o mesmo dispositivo IoT Edge como um dispositivo de teste.

Caso contrário, você pode excluir as configurações locais e os recursos do Azure usados neste artigo para evitar cobranças.

Eliminar recursos do Azure

A eliminação de recursos e grupos de recursos do Azure é irreversível. Confirme que não elimina acidentalmente o grupo de recursos ou recursos errados. Se você criou o hub IoT dentro de um grupo de recursos existente que tem recursos que deseja manter, exclua apenas o recurso do hub IoT em si, não o grupo de recursos.

Para eliminar os recursos:

  1. Inicie sessão 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. Reveja a lista de recursos contidos no seu grupo de recursos. Se quiser eliminá-los todos, pode selecionar Eliminar grupo de recursos. Se quiser eliminar apenas alguns dos recursos, pode clicar em cada um para eliminá-los individualmente.

Próximos passos

Neste tutorial, configurou uma tarefa do Azure Stream Analytics para analisar dados a partir do dispositivo IoT Edge. Em seguida, carregou este módulo do Azure Stream Analytics no seu dispositivo IoT Edge para processar e reagir ao aumento da temperatura localmente e enviar o fluxo de dados agregados para a nuvem. Para ver de que forma o Azure IoT Edge pode criar mais soluções para a sua empresa, avance para os outros tutoriais.