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.4 IoT Edge 1.4

Importante

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

Teste o Azure IoT Edge neste início rápido implantando código em contêiner 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, recomendamos o uso de uma máquina virtual do Azure para seu dispositivo IoT Edge, que permite criar rapidamente uma máquina de teste e excluí-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 tempo de execução do IoT Edge em um dispositivo virtual.
  • Implementar remotamente um módulo num 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. O módulo usado neste início rápido é um 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

Prepare seu ambiente para a CLI do Azure.

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Recursos da cloud:

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

    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 de como criar um hub IoT na nuvem.

O nível gratuito do Hub IoT funciona para este 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. 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 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 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

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

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 verá uma cadeia de ligação do dispositivo única para associar um dispositivo físico a uma identidade do dispositivo.

Como os dispositivos IoT Edge se comportam e podem ser gerenciados de forma diferente dos dispositivos IoT típicos, declare essa identidade como sendo para um dispositivo IoT Edge com o --edge-enabled sinalizador.

  1. No Azure Cloud Shell, insira o seguinte comando 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. Exiba a cadeia de conexão do seu dispositivo, que vincula seu dispositivo físico à sua identidade no Hub IoT. Ele contém o nome do seu hub IoT, o nome do seu dispositivo e, em seguida, uma chave compartilhada que autentica conexões entre os dois. Consultaremos essa cadeia de conexão novamente na próxima seção quando você configurar seu dispositivo IoT Edge.

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

    Por exemplo, sua 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 nela.

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

O runtime do IoT Edge é implementado em todos os dispositivos do IoT Edge. Tem três componentes. O daemon de segurança do IoT Edge é iniciado sempre que um dispositivo IoT Edge inicializa e inicializa o dispositivo iniciando 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 do runtime, apresenta a cadeia de ligação do dispositivo. Esta é a cadeia de caracteres que você recuperou 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 seu 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 Description
grupo de recursos O grupo de recursos no qual os recursos serã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 será 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.
authenticationType 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.

Quando a implantação estiver concluída, você receberá a saída formatada em JSON na CLI que contém as informações 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}

Uma vez conectado à máquina virtual, verifique se o tempo de execução foi instalado e configurado com êxito no dispositivo IoT Edge.

  1. Verifique se o IoT Edge está em execução. O comando a seguir deve retornar um status de Ok se o IoT Edge estiver em execução ou fornecer 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

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 implantar um módulo da nuvem para o dispositivo.

Um dos principais recursos 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 seção, você implantará um módulo pré-criado da seção Módulos de Borda IoT do Azure Marketplace diretamente do Hub IoT do Azure.

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.

Siga estas etapas para iniciar o assistente Definir módulos para implantar seu primeiro módulo do Azure Marketplace.

  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 exibirá 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.

    Escolha quais módulos você deseja executar no seu dispositivo. Pode escolher entre módulos que já criou, módulos do Azure Marketplace ou módulos que criou por si próprio. Neste início rápido, você implantará um módulo do Azure Marketplace.

  5. Em Módulos do IoT Edge, abra o menu suspenso Adicionar e selecione Módulo do Marketplace.

  6. No IoT Edge Module Marketplace, pesquise e selecione o Simulated Temperature Sensor módulo. O módulo é adicionado à seção Módulos do IoT Edge com o status de execução desejado.

  7. Selecione Next: Routes para continuar a configurar rotas.

    Uma rota chamada SimulatedTemperatureSensorToIoTHub foi criada automaticamente quando você adicionou o módulo do Azure Marketplace. Essa rota envia todas as mensagens do módulo de temperatura simulada para o Hub IoT.

  8. Selecione Seguinte: Rever + criar.

  9. 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. Exiba o status da implantação na guia 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, em seguida, 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, consulte Solucionar problemas de dispositivos IoT Edge no portal do Azure.

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, você usou o portal do Azure para implantar um módulo IoT Edge para ser executado no dispositivo sem precisar 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 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 do IoT Edge usam 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 sendo enviadas 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 diferenciam maiúsculas de minúsculas quando se referem a nomes de módulos.

Clean up resources (Limpar 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, você pode excluir 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 certificar-se de 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.

Remova o grupo de IoTEdgeResources. Pode levar alguns minutos para excluir um grupo de recursos.

az group delete --name IoTEdgeResources --yes

Você pode confirmar que o grupo de recursos foi removido 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 tem um dispositivo de teste a gerar dados não processados sobre o seu ambiente.

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