Partilhar via


Quickstart: Implemente o seu primeiro módulo IoT Edge num dispositivo Linux virtual

Aplica-se a:IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS é a versão suportada. O IoT Edge 1.4 LTS atingiu o fim de vida útil a 12 de novembro de 2024. Se estiveres a usar uma versão anterior, vê Update IoT Edge.

Experimente o Azure IoT Edge neste quickstart, implementando código containerizado num dispositivo virtual Linux IoT Edge. O IoT Edge permite-lhe gerir código remotamente nos seus dispositivos para que possa enviar mais cargas de trabalho para a edge. Para este início rápido, utilize uma Azure máquina virtual para o 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:

  • Crie um IoT Hub.
  • Registe um dispositivo IoT Edge no seu hub IoT.
  • Instale e inicie o runtime do IoT Edge num dispositivo virtual.
  • Implante um módulo remotamente num dispositivo IoT Edge.

Diagrama da arquitetura Quickstart para dispositivo e nuvem.

Este quickstart guia como criar uma máquina virtual Linux configurada para ser um dispositivo IoT Edge. Depois, implementa um módulo do portal do Azure para o 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 baseiam-se no trabalho que fazes aqui, implementando módulos adicionais que analisam os dados simulados para obter insights empresariais.

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

Pré-requisitos

Configure o seu ambiente para a Azure CLI.

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

Crie um IoT Hub

Comece o quickstart criando um IoT Hub com a Azure CLI.

Diagrama que mostra como criar um IoT Hub na cloud.

O nível gratuito do IoT Hub é adequado para este guia de início rápido. Se já usou o IoT Hub no passado e já tem um hub criado, pode usar esse IoT hub.

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

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

Se receberes um erro porque já há uma IoT Hub livre na tua subscrição, altera o SKU para S1. Cada subscrição só pode ter um Hub IoT gratuito. Se aparecer um erro de que o nome IoT Hub não está disponível, significa que outra pessoa já tem um hub com esse nome. Experimente um novo nome.

Registar um dispositivo IoT Edge

Registe um dispositivo IoT Edge no hub IoT que acabaste de criar.

Diagrama de como registar um dispositivo com uma identidade IoT Hub.

Crie uma identidade de dispositivo para o seu dispositivo IoT Edge para que possa comunicar com o seu hub IoT. A identidade do dispositivo está na cloud, e usas uma connection string única para associar um dispositivo físico a uma identidade de dispositivo.

Como IoT Edge dispositivos se comportam e são geridos de forma diferente dos dispositivos IoT típicos, declare esta identidade como um dispositivo IoT Edge usando a flag --edge-enabled.

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

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

    Se aparecer um erro sobre chaves de apólice iothubowner, certifique-se de que o seu Cloud Shell está a correr a versão mais recente da extensão azure-iot.

  2. Verifique a connection string do seu dispositivo, que liga o dispositivo físico à sua identidade no IoT Hub. Inclui o nome do seu IoT Hub, o nome do seu dispositivo e uma chave partilhada que autentica as ligações entre eles. Usa novamente esta connection string na secção seguinte para configurar o seu dispositivo IoT Edge.

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

    Por exemplo, o connection string deve parecer semelhante ao HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE-SHARED-ACCESS-KEY>.

Configure o seu dispositivo IoT Edge

Crie uma máquina virtual com o runtime 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 IoT Edge inicia cada vez que um dispositivo IoT Edge arranca e arranca o dispositivo iniciando o agente IoT Edge. O agente IoT Edge facilita a implementação e monitorização dos módulos no dispositivo IoT Edge, incluindo o hub IoT Edge. O hub IoT Edge gere as comunicações entre módulos no dispositivo IoT Edge e entre o dispositivo e o IoT Hub.

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

Implementar o dispositivo IoT Edge

Esta secção utiliza um modelo do Azure Resource Manager para criar uma nova máquina virtual e instalar o runtime do IoT Edge nela. Se quiser usar o seu próprio dispositivo Linux, pode seguir os passos de instalação em Provisionar manualmente um único dispositivo Linux IoT Edge e, em seguida, voltar a este início rápido.

Use o botão Deploy to Azure ou comandos CLI para criar um dispositivo IoT Edge baseado no modelo pré-construído iotedge-vm-deploy.

  • Implementa usando o modelo IoT Edge Azure Resource Manager.

    Implementar para Azure

  • Para utilizadores de bash ou Cloud Shell, copie o seguinte comando para um editor de texto, substitua o texto provisório pela sua informação e depois copie para a 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 apontador para o modelo Resource Manager que estamos a usar.
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 string de conexão da identidade do dispositivo no IoT Hub, que é usada para configurar o runtime do IoT Edge na máquina virtual. O comando CLI dentro deste parâmetro obtém a connection string para si. 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 do runtime do IoT Edge

Os restantes comandos deste quickstart são executados no próprio dispositivo IoT Edge, para que possas ver o que está a acontecer 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. Também pode encontrar o nome DNS na página de visão geral da sua máquina virtual no portal Azure. Utilize o seguinte comando para se ligar à máquina virtual. Substitua <admin-username> e <DNS-name> pelos seus próprios valores.

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

Uma vez ligado à sua máquina virtual, verifique se o tempo de execução foi instalado e configurado com sucesso no seu dispositivo IoT Edge.

  1. Verifica se o IoT Edge está a funcionar. O comando seguinte devolve um estado de Ok se IoT Edge estiver a correr ou fornecer algum erro de serviço.

    sudo iotedge system status
    

    Gorjeta

    Precisa de privilégios elevados para executar os comandos iotedge. Assim que sai da sua máquina e volta a iniciar sessão pela primeira vez após instalar o tempo de execução do IoT Edge, as suas permissões são automaticamente atualizadas. 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 a correr no seu dispositivo IoT Edge. Como o serviço acabou de ser iniciado pela primeira vez, você só deve ver 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 já está configurado. Está pronto para executar módulos implementados na cloud.

Implementar um módulo

Gere o seu dispositivo Azure IoT Edge a partir da cloud para implementar um módulo que envie dados de telemetria do dispositivo para o IoT Hub.

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

Uma funcionalidade fundamental do Azure IoT Edge é implementar código para os seus dispositivos IoT Edge a partir da cloud. Módulos IoT Edge são pacotes executáveis implementados em contentores. Nesta secção, implementa um módulo pré-construído da secção IoT Edge Módulos do Microsoft Artifact Registry.

O módulo implantado nesta seção simula um sensor e envia os dados gerados. Este módulo é um código útil quando se começa com o IoT Edge porque pode usar os dados simulados para desenvolvimento e testes. Se quiseres ver exatamente o que este módulo faz, podes ver o códigofonte do sensor de temperatura simulado.

Use estas etapas para implantar seu primeiro módulo.

  1. Inicia sessão no portal Azure e vai ao teu IoT Hub.

  2. No menu à esquerda, em Device Management, selecione Dispositivos.

  3. Selecione o ID do dispositivo IoT Edge alvo da lista.

    Quando crias um novo dispositivo IoT Edge, ele mostra o código de estado 417 -- The device's deployment configuration is not set no portal de 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 secção IoT Edge módulos, selecione Add depois escolha IoT Edge Módulo.

  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 IoT Hub.

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

  10. Revise o arquivo JSON e selecione Criar. O ficheiro JSON define todos os módulos que implementa no seu dispositivo IoT Edge.

    Nota

    Quando submete uma nova implementação para um dispositivo IoT Edge, nada é enviado para o seu dispositivo. Em vez disso, o dispositivo consulta regularmente o IoT Hub para quaisquer 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 módulos tiverem Sim sob Especificado em Deployment mas não sob Reportado por Dispositivo, o seu dispositivo IoT Edge continua a iniciá-los. Aguarde alguns minutos e atualize a página.

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

Se tiver problemas a implementar módulos, saiba mais em Resolver problemas de dispositivos IoT Edge no portal Azure.

Ver os dados gerados

Neste quickstart, cria um novo dispositivo IoT Edge e instala o runtime IoT Edge nele. Depois, usa o portal Azure para implementar um módulo IoT Edge para correr no dispositivo sem fazer alterações ao 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 utilizam os dados criados por este módulo como dados de teste para análises.

Abra o prompt de comandos no seu dispositivo IoT Edge, ou use a ligação SSH do Azure CLI. Confirme que o módulo que implementou a partir da cloud está a correr no seu 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 IoT Edge diferenciam maiúsculas de minúsculas ao referir-se a nomes de módulos.

Limpar recursos

Para continuar com os tutoriais do IoT Edge, use o dispositivo que registou e configurou neste início rápido. Caso contrário, apague os recursos do Azure que 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, criou um dispositivo IoT Edge e utilizou a interface cloud do Azure IoT Edge para implementar código no dispositivo. Agora, você usa um dispositivo de teste que gera dados brutos sobre seu ambiente.

No próximo tutorial, vais aprender a monitorizar a atividade e o estado de saúde do teu dispositivo a partir do portal Azure.