Guia de início rápido: implante seu primeiro módulo IoT Edge em um dispositivo Linux virtual
Aplica-se a: IoT Edge 1.1
Importante
A data de fim do suporte do IoT Edge 1.1 foi 13 de dezembro de 2022. Consulte o Ciclo de Vida de Produtos da Microsoft para obter informações sobre como é suportado este produto, serviço, tecnologia ou API. Para obter mais informações sobre como atualizar para a versão mais recente do IoT Edge, consulte Atualizar o 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.
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.
Se preferir, instale o CLI do Azure para executar comandos de referência de CLI.
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 obter mais opções de início de sessão, veja Iniciar sessão com o CLI do Azure.
Quando lhe for pedido, instale as extensões do CLI do Azure durante a 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.
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.
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.
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 .
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}
Configurar seu dispositivo IoT Edge
Crie uma máquina virtual com o tempo de execução do Azure IoT Edge nela.
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 comando da CLI a seguir para criar seu dispositivo IoT Edge com base no modelo iotedge-vm-deploy pré-construído.
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/1.1/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/1.1/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:
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.
Verifique se o daemon de segurança do IoT Edge está sendo executado como um serviço do sistema.
sudo systemctl status iotedge
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á, usesudo
na frente dos comandos.Se precisar de resolver problemas relacionados com o serviço, obtenha os registos do serviço.
journalctl -u iotedge
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.
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.
Entre no portal do Azure e vá para seu hub IoT.
No menu à esquerda, em Gerenciamento de dispositivos, selecione Dispositivos.
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.Na barra superior, selecione Definir módulos.
Módulos
O primeiro passo do assistente é escolher quais módulos você deseja executar no seu dispositivo.
Em Módulos do IoT Edge, abra o menu suspenso Adicionar e selecione Módulo do Marketplace.
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.
Selecione Next: Routes para continuar para a próxima etapa do assistente.
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.
Selecione Seguinte: Rever + criar.
Rever e criar
Revise o arquivo JSON e selecione Criar. O arquivo JSON define todos os módulos que você implanta em seu dispositivo IoT Edge. Você verá o módulo SimulatedTemperatureSensor e os dois módulos de tempo de execução, edgeAgent e edgeHub.
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 NA 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.
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
Veja as mensagens que estão sendo enviadas do módulo do sensor de temperatura:
sudo iotedge logs SimulatedTemperatureSensor -f
Gorjeta
Os comandos do IoT Edge diferenciam maiúsculas de minúsculas quando se referem a nomes de módulos.
Você também pode ver as mensagens chegarem ao seu hub IoT usando a extensão do Hub IoT do Azure para Visual Studio Code.
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.