Guia de Início Rápido: implantar seu primeiro módulo do IoT Edge em um dispositivo do Windows

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

Importante

O IoT Edge 1.5 LTS e o IoT Edge 1.4 LTS são versões com suporte. O IoT Edge 1.4 LTS chegará ao fim da vida útil em 12 de novembro de 2024. Se você estiver em uma versão anterior, confira Atualizar o IoT Edge.

Experimente o Azure IoT Edge neste guia de início rápido implantando um código em contêineres em um dispositivo IoT Edge do Linux no Windows. O IoT Edge permite que você gerencie remotamente o código em seus dispositivos para que você possa enviar mais cargas de trabalho para a borda. Para este guia de início rápido, recomendamos usar seu dispositivo Windows Client para ver como é fácil usar o Azure IoT Edge para Linux no Windows. Se você quiser usar o Windows Server ou uma VM do Azure para criar sua implantação, siga as etapas no guia de instruções de como instalar e provisionar o Azure IoT Edge para Linux em um dispositivo Windows.

Neste início rápido, você aprenderá a:

  • Crie um Hub IoT.
  • Registrar um dispositivo IoT Edge em seu Hub IoT.
  • Instalar e iniciar o runtime do IoT Edge para Linux no Windows no seu dispositivo.
  • Implantar remotamente um módulo em um dispositivo IoT Edge e enviar a telemetria.

Diagrama que mostra a arquitetura deste guia de início rápido para seu dispositivo e nuvem.

Este guia de início rápido explica como configurar seu dispositivo Azure IoT Edge para Linux no Windows. Em seguida, você implantará um módulo do portal do Azure em seu dispositivo. O módulo que você usará é um sensor simulado que gera dados de temperatura, umidade e pressão. Os outros tutoriais do Azure IoT Edge se baseiam no trabalho feito aqui com a implantação de módulos que analisam os dados simulados para obter informações de negócios.

Se você não tiver uma assinatura do Azure ativa, crie uma conta gratuita antes de começar.

Pré-requisitos

Prepare seu ambiente para a CLI do Azure.

Crie um grupo de recursos de nuvem para gerenciar todos os recursos que você usará neste início rápido.

az group create --name IoTEdgeResources --location westus2

Verifique se o dispositivo IoT Edge atende aos seguintes requisitos:

  • Requisitos do Sistema

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise) 1 Windows 10 compilação mínima 17763 com todas as atualizações cumulativas atuais instaladas.
  • Requisitos de hardware

    • Memória livre mínima: 1 GB
    • Espaço em disco livre mínimo: 10 GB

Crie um hub IoT

Comece criando um hub IoT com a CLI do Azure.

Diagrama que mostra a etapa para criar um hub IoT.

O nível gratuito do Hub IoT do Azure funciona para este guia de início rápido. Se você tiver usado o Hub IoT antes e já tiver um hub criado, poderá usar esse Hub IoT.

O código a seguir cria um hub F1 disponível no grupo de recursos IoTEdgeResources. Substitua {hub_name} por um nome exclusivo para o hub IoT. Pode levar alguns minutos para criar um Hub IoT.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

Se você receber um erro porque já existe um hub gratuito na sua assinatura, altere o SKU para S1. Caso você receba um erro porque o nome do Hub IoT não está disponível, isso significa que alguém já tem um hub com esse nome. Tente usar um novo nome.

Registrar um dispositivo IoT Edge

Registre um dispositivo IoT Edge no Hub IoT recém-criado.

Diagrama que mostra a etapa necessária para registrar um dispositivo com uma identidade do hub IoT.

Crie uma identidade de dispositivo para seu dispositivo simulado para que ele possa se comunicar com o hub IoT. A identidade do dispositivo reside na nuvem e você usa uma cadeia de conexão de dispositivo exclusiva para associar um dispositivo físico a uma identidade do dispositivo.

Os dispositivos do IoT Edge se comportam e podem ser gerenciados diferentemente dos dispositivos IoT comuns. Use o sinalizador --edge-enabled para declarar que essa identidade é para um dispositivo IoT Edge.

  1. No Azure Cloud Shell, digite o comando a seguir para criar um dispositivo denominado myEdgeDevice no seu hub.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    Se você receber um erro sobre as chaves de política do iothubowner, verifique se o Cloud Shell está executando a última versão da extensão de IoT do Azure.

  2. Veja a cadeia de conexão para o seu dispositivo, o que vincula o dispositivo físico à sua identidade no Hub IoT. Ele contém o nome do seu hub IoT, o nome do seu dispositivo e uma chave compartilhada que autentica as conexões entre os dois.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. Copie o valor da chave connectionString da saída JSON e salve-o. Esse valor é a cadeia de conexão do dispositivo. Você o usará para configurar o runtime do IoT Edge na próxima seção.

    Por exemplo, a cadeia de conexão deve parecer com HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>.

Instalar e iniciar o runtime do IoT Edge

Instale o IoT Edge para Linux no Windows no seu dispositivo e configure-o com a cadeia de conexão do dispositivo.

Diagrama que mostra a etapa usada para iniciar o runtime do IoT Edge.

Execute os comandos do PowerShell a seguir no dispositivo de destino no qual você deseja implantar o Azure IoT Edge para Linux no Windows. Para implantar em um dispositivo de destino remoto usando o PowerShell, use o PowerShell Remoto para estabelecer uma conexão com um dispositivo remoto e executar esses comandos remotamente no dispositivo.

  1. Em uma sessão do PowerShell com privilégios elevados, execute o comando a seguir para habilitar o Hyper-V. Para obter mais informações, verifique Hyper-V no Windows 10.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. Em uma sessão do PowerShell com privilégios elevados, execute cada um dos comandos a seguir para baixar o IoT Edge para Linux no Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  3. Instale o IoT Edge para Linux no Windows em seu dispositivo.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  4. Defina a política de execução no dispositivo de destino como AllSigned, se ainda não estiver definida. Você pode verificar a política de execução atual em um prompt do PowerShell com privilégios elevados usando:

    Get-ExecutionPolicy -List
    

    Se a política de execução do local machine não for AllSigned, você poderá definir a política de execução usando:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. Crie a implantação do IoT Edge para Linux no Windows.

    Deploy-Eflow
    
  6. Insira "Y" para aceitar os termos de licença.

  7. Insira "O" ou "R" para ativar ou desativar Dados de diagnóstico opcionais, dependendo de sua preferência. Uma implantação bem-sucedida está exibida abaixo.

    Captura de tela que mostra que uma implantação bem-sucedida indicará Implantação bem-sucedida no final das mensagens no console.

  8. Provisione seu dispositivo usando a cadeia de conexão de dispositivo que você recuperou na seção anterior. Substitua o texto do espaço reservado pelos seus próprios valores.

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
    

Seu dispositivo IoT Edge agora está configurado. Ele está pronto para executar os módulos implantados na nuvem.

Implantar um módulo

Gerencie o dispositivo Azure IoT Edge na nuvem para implantar um módulo que envia dados telemétricos ao Hub IoT.

Diagrama que mostra a etapa para implantar um módulo.

Uma das principais funcionalidades do Azure IoT Edge é a implantação do código nos seus dispositivos IoT Edge por meio da nuvem. Módulos do IoT Edge são pacotes executáveis implementados como contêineres. Nesta seção, você implantará um módulo pré-criado na seção Módulos do IoT Edge do Registro de Artefato da Microsoft.

O módulo que você implanta nesta seção simula um sensor e envia os dados gerados. Esse módulo é uma informação útil de código quando você estiver começando a usar o IoT Edge porque você pode usar os dados simulados para desenvolvimento e teste. Se quiser ver exatamente o que esse módulo faz, você poderá exibir o código-fonte do sensor de temperatura simulado.

Siga estas etapas para implantar seu primeiro módulo.

  1. Entre no portal do Azure e acesse o Hub IoT.

  2. No menu à esquerda, selecione Dispositivos no menu Gerenciamento de dispositivos.

  3. Selecione a identificação do dispositivo de destino da lista de dispositivos.

    Observação

    Quando você criar um novo dispositivo do IoT Edge, ele exibirá o código de status 417 -- The device's deployment configuration is not set no portal do Azure. Esse status é normal e significa que o dispositivo está pronto para receber uma implantação do módulo.

  4. Na barra superior, selecione Definir Módulos.

    Escolha quais módulos deseja executar no dispositivo. Você pode escolher entre módulos que já tenha criado, módulos do Registro de Artefato da Microsoft ou módulos que você mesmo tenha criado. Neste início rápido, você implantará um módulo do Registro de Artefato da Microsoft.

  5. Na seção Módulos do IoT Edge, escolha Adicionar e escolha Módulo do IoT Edge.

  6. Atualize as seguintes configurações de módulo:

    Configuração Valor
    Nome do módulo IoT SimulatedTemperatureSensor
    URI da imagem mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest
    Política de reinicialização always
    Status desejado executando
  7. Selecione Avançar: Rotas para continuar a configurar rotas.

  8. Adicione uma rota que envia todas as mensagens do módulo de temperatura simulado para o Hub IoT.

    Configuração Valor
    Nome SimulatedTemperatureSensorToIoTHub
    Valor FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
  9. Selecione Avançar: Revisar + criar.

  10. Examine o arquivo JSON e selecione Criar. O arquivo JSON define todos os módulos que você implanta no seu dispositivo IoT Edge.

    Observação

    Quando você envia uma nova implantação para um dispositivo IoT Edge, nada é enviado por push para o seu dispositivo. Em vez disso, o dispositivo consulta o Hub IoT regularmente para verificar se há novas instruções. Se o dispositivo encontrar um manifesto de implantação atualizada, ele usará as informações sobre a nova implantação para efetuar pull das imagens de módulo da nuvem e, em seguida, começa a executar os módulos localmente. Esse processo pode levar alguns minutos.

Depois que você criar os detalhes de implantação do módulo, o assistente direcionará você à página de detalhes do dispositivo. Veja o status da implantação na guia Módulos.

Você verá três módulos: $edgeAgent, $edgeHub e SimulatedTemperatureSensor. Se um ou mais módulos mostrarem Sim em Especificado na Implantação, mas não em Relatado pelo Dispositivo, isso indicará que o dispositivo IoT Edge ainda está iniciando os módulos. Aguarde alguns minutos e atualize a página.

Captura de tela que mostra o SimulatedTemperatureSensor na lista de módulos implantados.

Se tiver problemas para implantar módulos, consulte Solucionar problemas de dispositivos do IoT Edge no portal do Azure.

Exibir os dados gerados

Neste guia de início rápido, você criou um novo dispositivo IoT Edge e instalou o runtime do IoT Edge nele. Em seguida, você usou o portal do Azure para implantar um módulo do IoT Edge para ser executado no dispositivo sem precisar fazer alterações no dispositivo propriamente dito.

O módulo enviado por push gera dados de ambiente de exemplo que você pode usar para testar mais tarde. O sensor simulado está monitorando um computador e o ambiente em torno do computador. Por exemplo, esse sensor pode estar em uma sala de servidor, em um chão de fábrica ou em uma turbina eólica. As mensagens que ele envia incluem temperatura ambiente e umidade, temperatura do computador e pressão e um carimbo de data/hora. Os tutoriais do IoT Edge usam os dados criados por esse módulo de dados de teste para análise.

  1. Faça logon em sua máquina virtual IoT Edge para Linux no Windows usando o seguinte comando em sua sessão do PowerShell:

    Connect-EflowVm
    

    Observação

    A única conta permitida para o SSH da máquina virtual é o usuário que a criou.

  2. Depois de fazer logon, você poderá verificar a lista de módulos do IoT Edge em execução usando o seguinte comando do Linux:

    sudo iotedge list
    

    Captura de tela que mostra o local para verificar se os módulos do sensor de temperatura, do agente e do hub estão em execução.

  3. Visualize as mensagens que estão sendo enviadas do módulo sensor de temperatura para a nuvem usando o seguinte comando do Linux:

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    Captura de tela que mostra os logs de saída do módulo Sensor de Temperatura Simulado quando ele está em execução.

    Dica

    Ao fazer referência a nomes de módulo, os comandos do IoT Edge diferenciam maiúsculas de minúsculas.

Limpar os recursos

Se desejar continuar com os tutoriais do IoT Edge, ignore esta etapa. Você pode usar o dispositivo que você registrou e configurou neste guia de início rápido. Caso contrário, você pode excluir os recursos do Azure que criou para evitar encargos.

Se você tiver criado a sua máquina virtual e o Hub IoT em um novo grupo de recursos, é possível excluir esse grupo e todos os recursos associados. Caso não queira excluir o grupo inteiro, é possível excluir recursos individuais em vez disso.

Importante

Verifique o conteúdo do grupo de recursos para ter certeza de que não haja nada que você queira manter. A exclusão de um grupo de recursos é irreversível.

Use o comando a seguir para remover o grupo IoTEdgeResources. A exclusão pode levar alguns minutos.

az group delete --name IoTEdgeResources

É possível confirmar se esse grupo de recursos foi removido usando este comando para exibir a lista dos grupos de recursos.

az group list

Desinstalar o IoT Edge para Linux no Windows

Se você quiser remover a instalação do Azure IoT Edge para Linux no Windows do dispositivo, use os comandos a seguir.

  1. Abra as Configurações no Windows
  2. Selecione Adicionar ou remover programas
  3. Selecione o aplicativo Azure IoT Edge
  4. Selecionar Desinstalar

Próximas etapas

Neste início rápido, você criou um dispositivo IoT Edge e usou a interface de nuvem do Azure IoT Edge para implantar código no dispositivo. Agora, você tem um dispositivo de teste que gera dados brutos sobre o respectivo ambiente.

No próximo tutorial, você aprenderá a monitorar a atividade e a integridade do seu dispositivo no portal do Azure.