Início Rápido: Implementar o seu primeiro módulo de IoT Edge num dispositivo Linux virtual

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

Importante

O IoT Edge 1.4 é a versão suportada. Se tiver uma versão anterior, veja Atualizar o IoT Edge.

Teste o Azure IoT Edge neste início rápido ao implementar código contentorizado num dispositivo virtual IoT Edge Linux. IoT Edge permite-lhe gerir remotamente código nos seus dispositivos para que possa enviar mais cargas de trabalho para o edge. Para este início rápido, recomendamos que utilize uma máquina virtual do Azure para o seu dispositivo IoT Edge, o que lhe permite criar rapidamente uma máquina de teste e, em seguida, eliminá-la 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 IoT Edge runtime num dispositivo virtual.
  • Implementar remotamente um módulo num dispositivo IoT Edge.

Diagrama da arquitetura de Início Rápido para dispositivos e cloud.

Este início rápido explica-lhe como criar uma máquina virtual do Linux configurada para ser um dispositivo IoT Edge. Em seguida, vai implementar um módulo a partir do portal do Azure para o seu dispositivo. O módulo utilizado neste início rápido é um sensor simulado que gera dados de temperatura, humidade e pressão. Os outros tutoriais do Azure IoT Edge baseiam-se no trabalho que faz aqui ao implementar módulos adicionais que analisam os dados simulados para informações empresariais.

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

Pré-requisitos

Prepare o seu ambiente para a CLI do Azure.

Recursos da cloud:

  • Um grupo de recursos para gerir todos os recursos que utilizar neste início rápido. Utilizamos o nome de grupo de recursos de exemplo IoTEdgeResources ao longo deste início rápido e dos seguintes tutoriais.

    az group create --name IoTEdgeResources --location westus2
    

Criar um hub IoT

Inicie o início rápido ao criar um hub IoT com a CLI do Azure.

Diagrama de como criar um hub IoT na cloud.

O nível gratuito do Hub IoT funciona para este início rápido. Se já utilizou Hub IoT no passado e já criou um hub, pode utilizar 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 o hub IoT. Poderá demorar alguns minutos a criar uma Hub IoT.

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

Se obtiver um erro porque já existe um hub gratuito na sua subscrição, altere o SKU para S1. Cada subscrição só pode ter um Hub IoT gratuito. Se receber um erro de que o nome Hub IoT não está disponível, significa que outra pessoa já tem um hub com esse nome. Experimente um novo nome.

Registar um dispositivo do IoT Edge

Registe um dispositivo do IoT Edge no seu hub IoT recentemente criado.

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

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

Uma vez que IoT Edge dispositivos se comportam e podem ser geridos de forma diferente dos dispositivos IoT típicos, declare que esta identidade é para um dispositivo IoT Edge com o --edge-enabled sinalizador.

  1. Na Cloud Shell do Azure, introduza o seguinte comando para criar um dispositivo com o nome myEdgeDevice no seu hub.

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

    Se receber um erro sobre as chaves de política iothubowner, certifique-se de que a sua Cloud Shell está a executar a versão mais recente da extensão azure-iot.

  2. Veja a cadeia de ligação do seu dispositivo, que liga o seu dispositivo físico à respetiva identidade no Hub IoT. Contém o nome do hub IoT, o nome do seu dispositivo e, em seguida, uma chave partilhada que autentica ligações entre os dois. Voltaremos a consultar esta cadeia de ligação na secção seguinte quando configurar o seu dispositivo IoT Edge.

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    

    Captura de ecrã da cadeia de ligação a partir da saída da CLI.

Configurar o seu dispositivo IoT Edge

Crie uma máquina virtual com o runtime do Azure IoT Edge.

Diagrama de como iniciar o runtime num dispositivo.

O runtime do IoT Edge é implementado em todos os dispositivos do IoT Edge. Tem três componentes. O daemon de segurança IoT Edge é iniciado sempre que um dispositivo IoT Edge arranca e arranca o dispositivo ao iniciar o agente IoT Edge. O agente IoT Edge facilita a implementação e monitorização de 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 Hub IoT.

Durante a configuração do runtime, apresenta a cadeia de ligação do dispositivo. Esta é a cadeia que obteve da CLI do Azure. Essa cadeia associa o dispositivo físico à identidade do dispositivo IoT Edge no Azure.

Implementar o dispositivo IoT Edge

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

Utilize o botão Implementar no Azure ou os comandos da CLI para criar o seu dispositivo IoT Edge com base no modelo iotedge-vm-deploy pré-criado.

  • Implemente com o modelo Resource Manager do Azure IoT Edge.

    Implementar no Azure

  • Para utilizadores de bash ou Cloud Shell, copie o seguinte comando para um editor de texto, substitua o texto do marcador de posição pelas suas informações e, em seguida, copie para o bash ou Cloud Shell janela:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/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 os utilizadores do PowerShell, copie o seguinte comando para a janela do PowerShell e, em seguida, substitua o texto do marcador de posição pelas suas próprias informações:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/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 utiliza os seguintes parâmetros:

Parâmetro Description
grupo de recursos O grupo de recursos no qual os recursos serão criados. Utilize os IoTEdgeResources predefinidos que temos utilizado ao longo deste artigo ou forneça o nome de um grupo de recursos existente na sua subscrição.
template-uri Um ponteiro para o modelo de Resource Manager que estamos a utilizar.
dnsLabelPrefix Uma cadeia que será utilizada para criar o nome de anfitrião da máquina virtual. Substitua o texto do marcador de posição por um nome para a máquina virtual.
adminUsername Um nome de utilizador para a conta de administrador da máquina virtual. Utilize o exemplo azureUser ou forneça um novo nome de utilizador.
deviceConnectionString A cadeia de ligação da identidade do dispositivo no Hub IoT, que é utilizada para configurar o IoT Edge runtime na máquina virtual. O comando da CLI neste parâmetro obtém a cadeia de ligação por si. Substitua o texto do marcador de posição pelo nome do hub IoT.
authenticationType O método de autenticação da conta de administrador. Este início rápido utiliza a autenticação por palavra-passe , mas também pode definir este parâmetro como sshPublicKey.
adminPasswordOrKey A palavra-passe ou o valor da chave SSH da conta de administrador. Substitua o texto do marcador de posição por uma palavra-passe segura. A palavra-passe tem de ter, pelo menos, 12 carateres e ter três de quatro dos seguintes: carateres em minúsculas, carateres em maiúsculas, dígitos e carateres especiais.

Assim que a implementação estiver concluída, deverá receber a saída formatada em JSON na CLI que contém as informações SSH para ligar à máquina virtual. Copie o valor da entrada SSH pública da secção de saídas :

Captura de ecrã a mostrar como obter o valor ssh público do resultado.

Ver o estado de runtime do IoT Edge

Os restantes comandos neste início rápido ocorrem no próprio dispositivo IoT Edge, para que possa ver o que está a acontecer no dispositivo. Se estiver a utilizar uma máquina virtual, ligue-se a essa máquina agora com o nome de utilizador administrador que configurou e o nome DNS que foi apresentado pelo comando de implementação. Também pode encontrar o nome DNS na página de descrição geral da máquina virtual no portal do 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 à máquina virtual, verifique se o runtime foi instalado e configurado com êxito no seu dispositivo IoT Edge.

  1. Verifique se IoT Edge está em execução. O comando seguinte deve devolver o estado OK se IoT Edge estiver em execução ou se fornecer erros de serviço.

    sudo iotedge system status
    

    Dica

    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á, utilize sudo à 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 predefinição e ajuda a instalar e iniciar quaisquer módulos adicionais que implemente no 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

Gira o seu dispositivo Azure IoT Edge a partir da cloud para implementar um módulo que irá enviar dados telemétricos para o Hub IoT.

Diagrama de como implementar um módulo da cloud para o dispositivo.

Uma das principais capacidades do Azure IoT Edge é implementar código nos seus dispositivos IoT Edge a partir da cloud. IoT Edge módulos são pacotes executáveis implementados como contentores. Nesta secção, irá implementar um módulo pré-criado a partir da secção Módulos de IoT Edge do Azure Marketplace diretamente a partir de Hub IoT do Azure.

O módulo que implementar nesta secção simula um sensor e envia dados gerados. Este módulo é um código útil quando está a começar a utilizar IoT Edge porque pode utilizar os dados simulados para desenvolvimento e teste. Se quiser ver exatamente o que este módulo faz, pode ver o código fonte do sensor de temperatura simulada.

Siga estes passos para iniciar o assistente Definir Módulos para implementar o seu primeiro módulo a partir de Azure Marketplace.

  1. Inicie sessão no portal do Azure e aceda ao seu hub IoT.

  2. No menu à esquerda, em Gestão de Dispositivos, selecione Dispositivos.

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

    Quando cria um novo dispositivo IoT Edge, este apresentará o código 417 -- The device's deployment configuration is not set de estado no portal do Azure. Este estado é normal e significa que o dispositivo está pronto para receber uma implementação de módulo.

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

    Captura de ecrã a mostrar a localização do separador Definir Módulos.

Módulos

O primeiro passo do assistente é escolher os módulos que pretende executar no seu dispositivo.

Em Módulos IoT Edge, abra o menu pendente Adicionar e, em seguida, selecione Módulo do Marketplace.

Captura de ecrã a mostrar o menu pendente Adicionar.

No Marketplace do Módulo IoT Edge, procure e selecione o Simulated Temperature Sensor módulo. O módulo é adicionado à secção Módulos IoT Edge com o estado de execução pretendido.

Selecione Seguinte: Rotas para continuar para o passo seguinte do assistente.

Captura de ecrã que mostra a continuação do passo seguinte após a adição do módulo.

Rotas

Uma rota denominada SimulatedTemperatureSensorToIoTHub foi criada automaticamente quando adicionou o módulo a partir de Azure Marketplace. Esta rota envia todas as mensagens do módulo de temperatura simulada para Hub IoT.

Captura de ecrã que mostra a nova rota do sensor de temperatura e mostra a localização do botão Seguinte: Rever + criar.

Selecione Seguinte: Rever + criar.

Rever e criar

Reveja o ficheiro JSON e, em seguida, selecione Criar. O ficheiro JSON define todos os módulos que implementa no 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 implementação do módulo, o assistente devolve-o à página de detalhes do dispositivo. Veja o estado da implementação no separador Módulos .

Deverá ver três módulos: $edgeAgent, $edgeHub e SimulatedTemperatureSensor. Se um ou mais dos módulos tiver Simem Especificado na Implementação, mas não em Reportado por Dispositivo, o dispositivo IoT Edge continua a iniciá-los. Aguarde alguns minutos e, em seguida, atualize a página.

Captura de ecrã que mostra SimulatedTemperatureSensor na lista de módulos implementados.

Ver os dados gerados

Neste início rápido, criou um novo dispositivo IoT Edge e instalou o runtime do IoT Edge no mesmo. Em seguida, utilizou o portal do Azure para implementar um módulo de IoT Edge para ser executado no dispositivo sem ter de fazer alterações ao próprio dispositivo.

Neste caso, o módulo que emite gera dados de ambiente de exemplo que pode utilizar para testes posteriores. O sensor simulado está a monitorizar um computador e o ambiente à volta do computador. Por exemplo, este sensor poderá estar num espaço de servidor, numa 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 IoT Edge utilizam os dados criados por este módulo como dados de teste para análise.

Abra novamente a linha de comandos no seu dispositivo do IoT Edge ou utilize a ligação SSH a partir da CLI do Azure. Certifique-se de que o módulo implementado a partir da cloud está em execução no seu dispositivo do IoT Edge:

sudo iotedge list

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

Veja as mensagens que estão a ser enviadas a partir do módulo do sensor de temperatura:

sudo iotedge logs SimulatedTemperatureSensor -f

Dica

IoT Edge comandos são sensíveis às maiúsculas e minúsculas quando se refere aos nomes dos módulos.

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

Também pode watch as mensagens chegarem ao seu hub IoT com a extensão Hub IoT do Azure para o Visual Studio Code.

Limpar os recursos

Se quiser avançar para os tutoriais do IoT Edge, pode utilizar o dispositivo que registou e configurou neste início rápido. Caso contrário, pode eliminar os recursos do Azure que criou para evitar custos.

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 se certificar de que não existe nada que pretenda manter. Se não quiser eliminar todo o grupo, pode eliminar recursos individuais.

Importante

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

Remova o grupo de IoTEdgeResources. A eliminação de um grupo de recursos poderá demorar alguns minutos.

az group delete --name IoTEdgeResources --yes

Pode confirmar que o grupo de recursos foi removido ao ver a lista de grupos de recursos.

az group list

Passos seguintes

Neste início rápido, criou um dispositivo IoT Edge e utilizou a interface de cloud do Azure IoT Edge para implementar código no dispositivo. Agora tem um dispositivo de teste a gerar dados não processados sobre o seu ambiente.

No próximo tutorial, irá aprender a monitorizar a atividade e o estado de funcionamento do seu dispositivo a partir do portal do Azure.