Partilhar via


Guia de início rápido: implante seu primeiro módulo IoT Edge em um dispositivo Linux virtual

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

Importante

O IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS está em fim de vida útil a partir de 12 de novembro de 2024. Se tiver uma versão anterior, consulte Atualizar IoT Edge.

Experimente o Azure IoT Edge neste início rápido implantando código em contêineres em um dispositivo virtual Linux IoT Edge. O IoT Edge permite que você gerencie remotamente o código em seus dispositivos para que você possa enviar mais de suas cargas de trabalho para a borda. Para este início rápido, use uma máquina virtual do Azure para seu dispositivo IoT Edge. Ele permite que você crie rapidamente uma máquina de teste e a exclua quando terminar.

Neste início rápido, vai aprender a:

  • Criar um Hub IoT.
  • Registar um dispositivo IoT Edge no seu hub IoT.
  • Instale e inicie o tempo de execução do IoT Edge em um dispositivo virtual.
  • Implante um módulo remotamente em um dispositivo IoT Edge.

Diagrama da arquitetura Quickstart para dispositivo e nuvem.

Este guia de início rápido orienta você na criação de uma máquina virtual Linux configurada para ser um dispositivo IoT Edge. Em seguida, você implanta um módulo do portal do Azure em seu dispositivo. Este guia de início rápido usa um módulo de sensor simulado que gera dados de temperatura, umidade e pressão. Os outros tutoriais do Azure IoT Edge se baseiam no trabalho que você faz aqui, implantando módulos adicionais que analisam os dados simulados para insights de negócios.

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

Pré-requisitos

Configure seu ambiente para a CLI do Azure.

Um grupo de recursos para gerir todos os recursos que utilizar neste início rápido. Este início rápido e os tutoriais a seguir usam o nome de grupo de recursos de exemplo IoTEdgeResources.

az group create --name IoTEdgeResources --location westus2

Criar um Hub IoT

Inicie o início rápido criando um Hub IoT com a CLI do Azure.

Diagrama que mostra como criar um Hub IoT na nuvem.

A camada gratuita do Hub IoT funciona para esse início rápido. Se você usou o Hub IoT no passado e já tem um hub criado, pode usar esse hub IoT.

O código seguinte cria um hub F1 gratuito no grupo de recursos IoTEdgeResources. Substitua <hub-name> por um nome exclusivo para seu Hub IoT. Criar um Hub IoT pode levar alguns minutos.

az iot hub create --resource-group IoTEdgeResources --name <hub-name> --sku F1 --partition-count 2

Se você receber um erro porque já há um Hub IoT gratuito em sua assinatura, altere o SKU para S1. Cada subscrição só pode ter um Hub IoT gratuito. Se você receber um erro informando que o nome do Hub IoT não está disponível, isso significa que outra pessoa já tem um hub com esse nome. Experimente um novo nome.

Registar um dispositivo do IoT Edge

Registre um dispositivo IoT Edge com o hub IoT que você acabou de criar.

Diagrama de como registrar um dispositivo com uma identidade do Hub IoT.

Crie uma identidade de dispositivo para seu dispositivo IoT Edge para que ele possa se comunicar com seu hub IoT. A identidade do dispositivo reside na cloud, e utilizará uma cadeia de ligação única do dispositivo para associar um dispositivo físico a uma identidade do dispositivo.

Como os dispositivos IoT Edge se comportam e são gerenciados de forma diferente dos dispositivos IoT típicos, declare essa identidade como um dispositivo IoT Edge usando o --edge-enabled sinalizador.

  1. Insira o seguinte comando no Azure Cloud Shell para criar um dispositivo chamado myEdgeDevice em seu hub.

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name <hub-name>
    

    Se você receber um erro sobre chaves de política iothubowner , verifique se o Cloud Shell está executando a versão mais recente da extensão azure-iot .

  2. Verifique a cadeia de conexão do seu dispositivo, que vincula o dispositivo físico à sua identidade no Hub IoT. Ele inclui o nome do seu Hub IoT, o nome do seu dispositivo e uma chave compartilhada que autentica conexões entre eles. Use essa cadeia de conexão novamente na próxima seção para configurar seu dispositivo IoT Edge.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <hub-name>
    

    Por exemplo, a cadeia de conexão deve ser semelhante a HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.

Configurar seu dispositivo IoT Edge

Crie uma máquina virtual com o tempo de execução do Azure IoT Edge.

Diagrama de como iniciar o tempo de execução em um dispositivo.

O runtime do IoT Edge é implementado em todos os dispositivos IoT Edge e tem três componentes. O daemon de segurança do IoT Edge inicia sempre que um dispositivo IoT Edge arranca e configura o dispositivo ao iniciar o agente do IoT Edge. O agente do IoT Edge facilita a implementação e a monitorização de módulos no dispositivo IoT Edge, incluindo o hub do IoT Edge. O hub do IoT Edge gere as comunicações entre os módulos no dispositivo do IoT Edge e entre o dispositivo e o Hub IoT.

Durante a configuração de tempo de execução, forneça uma cadeia de conexão de dispositivo. Essa cadeia de caracteres é recuperada da CLI do Azure. Essa cadeia associa o dispositivo físico à identidade do dispositivo IoT Edge no Azure.

Implantar o dispositivo IoT Edge

Esta seção usa um modelo do Azure Resource Manager para criar uma nova máquina virtual e instalar o tempo de execução do IoT Edge nela. Se você quiser usar seu próprio dispositivo Linux em vez disso, você pode seguir as etapas de instalação em Provisionar manualmente um único dispositivo Linux IoT Edge e, em seguida, retornar a este início rápido.

Use o botão Implantar no Azure ou os comandos da CLI para criar um dispositivo IoT Edge com base no modelo iotedge-vm-deploy pré-construído .

  • Implante usando o modelo do IoT Edge Azure Resource Manager.

    Implementar no Azure

  • Para usuários bash ou Cloud Shell, copie o seguinte comando em um editor de texto, substitua o texto do espaço reservado por suas informações e, em seguida, copie para sua janela bash ou Cloud Shell:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
    --parameters adminUsername='azureUser' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    
  • Para usuários do PowerShell, copie o seguinte comando na janela do PowerShell e substitua o texto do espaço reservado por suas próprias informações:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" `
    --parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' `
    --parameters adminUsername='azureUser' `
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name <REPLACE_WITH_HUB_NAME> -o tsv) `
    --parameters authenticationType='password' `
    --parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"
    

Este modelo usa os seguintes parâmetros:

Parâmetro Descrição
grupo de recursos O grupo de recursos no qual os recursos são criados. Use o IoTEdgeResources padrão que usamos ao longo deste artigo ou forneça o nome de um grupo de recursos existente em sua assinatura.
modelo-uri Um ponteiro para o modelo do Resource Manager que estamos usando.
dnsLabelPrefix Uma cadeia de caracteres que é usada para criar o nome de host da máquina virtual. Substitua o texto do espaço reservado por um nome para sua máquina virtual.
adminNome de utilizador Um nome de usuário para a conta de administrador da máquina virtual. Use o exemplo azureUser ou forneça um novo nome de usuário.
deviceConnectionString A cadeia de conexão da identidade do dispositivo no Hub IoT, que é usada para configurar o tempo de execução do IoT Edge na máquina virtual. O comando CLI dentro desse parâmetro captura a cadeia de conexão para você. Substitua o texto do espaço reservado pelo nome do hub IoT.
tipo de autenticação O método de autenticação para a conta de administrador. Este guia de início rápido usa autenticação de senha , mas você também pode definir esse parâmetro como sshPublicKey.
adminPasswordOrKey A senha ou o valor da chave SSH para a conta de administrador. Substitua o texto do espaço reservado por uma senha segura. Sua senha deve ter pelo menos 12 caracteres e três dos quatro seguintes: caracteres minúsculos, caracteres maiúsculos, dígitos e caracteres especiais.

Após a conclusão da implantação, a saída formatada em JSON na CLI contém as informações de SSH para se conectar à máquina virtual. Copie o valor da entrada SSH pública da seção de saídas. Por exemplo, o comando SSH deve ser semelhante ao ssh azureUser@edge-vm.westus2.cloudapp.azure.com.

Ver o estado de runtime do IoT Edge

O restante dos comandos neste início rápido ocorre no próprio dispositivo IoT Edge, para que você possa ver o que está acontecendo no dispositivo. Se você estiver usando uma máquina virtual, conecte-se a essa máquina agora usando o nome de usuário admin que você configurou e o nome DNS que foi gerado pelo comando de implantação. Você também pode encontrar o nome DNS na página de visão geral da sua máquina virtual no portal do Azure. Utilize o seguinte comando para se ligar à máquina virtual. Substitua <admin-username> e <DNS-name> com os seus próprios valores.

ssh <admin-username>@<DNS-name>

Assim que estiver ligado à sua máquina virtual, verifique se o runtime foi instalado e configurado com êxito no dispositivo IoT Edge.

  1. Verifique se o IoT Edge está em execução. O seguinte comando retorna um status de Ok se o IoT Edge estiver em execução ou indicar quaisquer erros de serviço.

    sudo iotedge system status
    

    Gorjeta

    Precisa de privilégios elevados para executar os comandos iotedge. Depois de terminar sessão do seu computador e iniciar sessão novamente pela primeira vez depois de instalar o runtime do IoT Edge, as suas permissões são atualizadas automaticamente. Até lá, use sudo na frente dos comandos.

  2. Se precisar de resolver problemas relacionados com o serviço, obtenha os registos do serviço.

    sudo iotedge system logs
    
  3. Veja todos os módulos em execução no seu dispositivo IoT Edge. Uma vez que o serviço foi iniciado pela primeira vez, deverá ver apenas o módulo edgeAgent em execução. O módulo edgeAgent é executado por padrão e ajuda a instalar e iniciar quaisquer módulos adicionais que você implantar em seu dispositivo.

    sudo iotedge list
    

O seu dispositivo IoT Edge está agora configurado. Está pronto para executar módulos implementados na cloud.

Implementar um módulo

Gerencie seu dispositivo Azure IoT Edge a partir da nuvem para implantar um módulo que envia dados de telemetria do dispositivo para o Hub IoT.

Diagrama de como implantar um módulo da nuvem para o dispositivo.

Um recurso importante do Azure IoT Edge é implantar código em seus dispositivos IoT Edge a partir da nuvem. Os módulos do IoT Edge são pacotes executáveis implementados como contêineres. Nesta secção, implemente um módulo pré-criado a partir da secção de Módulos IoT Edge do Microsoft Artifact Registry.

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

Use estas etapas para implantar seu primeiro módulo.

  1. Entre no portal do Azure e vá para seu Hub IoT.

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

  3. Selecione o ID do dispositivo IoT Edge de destino na lista.

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

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

    Selecione os módulos que deseja executar no seu dispositivo. Você pode escolher entre módulos que você mesmo criou ou imagens em um registro de contêiner. Neste início rápido, você implanta um módulo do registro de contêiner da Microsoft.

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

  6. Atualize as seguintes configurações do 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 reinício sempre
    Status desejado a correr
  7. Selecione Next: Routes para continuar a configurar rotas.

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

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

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

    Nota

    Quando submete uma implementação nova para um dispositivo do IoT Edge, nada é enviado para o seu dispositivo. Em vez disso, o dispositivo consulta regularmente o Hub IoT para obter novas instruções. Se o dispositivo encontrar um manifesto de implementação atualizado, este irá utilizar as informações sobre a nova implementação para obter as imagens do módulo da cloud e, em seguida, começa a executar os módulos localmente. Este processo pode demorar alguns minutos.

Depois de criar os detalhes de implantação do módulo, o assistente retorna você à página de detalhes do dispositivo. Veja o estado da implementação no separador Módulos.

Você deve ver três módulos: $edgeAgent, $edgeHub e SimulatedTemperatureSensor. Se um ou mais dos módulos tiver Sim em Especificado em Implantação , mas não em Relatado por Dispositivo, seu dispositivo IoT Edge ainda os iniciará. Aguarde alguns minutos e atualize a página.

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

Se você tiver problemas para implantar módulos, saiba mais em Solucionar problemas de dispositivos IoT Edge no portal do Azure.

Ver os dados gerados

Neste início rápido, você cria um novo dispositivo IoT Edge e instala o tempo de execução do IoT Edge nele. Em seguida, use o portal do Azure para implantar um módulo IoT Edge para ser executado no dispositivo sem fazer alterações no próprio dispositivo.

Nesse caso, o módulo que você enviou por push gera dados de ambiente de exemplo que você pode usar para testar mais tarde. O sensor simulado está monitorando tanto uma máquina quanto o ambiente ao redor da máquina. Por exemplo, este sensor pode estar numa sala de servidores, num chão de fábrica ou numa turbina eólica. A mensagem inclui temperatura ambiente e humidade, temperatura e pressão do computador e um carimbo de data/hora. Os tutoriais do IoT Edge usam os dados criados por este módulo como dados de teste para análise.

Abra a linha de comandos no seu dispositivo do IoT Edge ou utilize a ligação SSH a partir da CLI do Azure. Confirme se o módulo implantado a partir da nuvem está em execução no dispositivo IoT Edge:

sudo iotedge list

Captura de ecrã que mostra três módulos no seu dispositivo.

Veja as mensagens enviadas a partir do módulo do sensor de temperatura:

sudo iotedge logs SimulatedTemperatureSensor -f

Captura de ecrã que mostra os dados do módulo na consola de saída.

Gorjeta

Os comandos do IoT Edge são sensíveis a maiúsculas quando se referem a nomes de módulos.

Limpar recursos

Para continuar com os tutoriais do IoT Edge, use o dispositivo que você registrou e configurou neste início rápido. Caso contrário, exclua os recursos do Azure que você criou para evitar cobranças.

Se tiver criado a sua máquina virtual e o hub IoT num novo grupo de recursos, pode eliminar esse grupo e todos os recursos associados. Verifique novamente o conteúdo do grupo de recursos para garantir que não há nada que você queira manter. Se não quiser excluir todo o grupo, você pode excluir recursos individuais.

Importante

A eliminação de um grupo de recursos é irreversível.

Exclua o grupo IoTEdgeResources . A exclusão de um grupo de recursos pode levar alguns minutos.

az group delete --name IoTEdgeResources --yes

Confirme se o grupo de recursos foi excluído exibindo a lista de grupos de recursos.

az group list

Próximos passos

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ê usa um dispositivo de teste que gera dados brutos sobre seu ambiente.

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