Exercício – Configurar a comunicação entre o Hub IoT e o IoT Edge

Concluído(a)

Este exercício usa a CLI do Azure no Azure Cloud Shell para executar os comandos necessários.

Captura de tela mostrando como se conectar ao Azure Cloud Shell.

Instalar a extensão de IoT do Azure

Adicionar a extensão Internet das Coisas do Azure à instância do Cloud Shell na CLI do Azure.

az extension add --name azure-iot

Observação

Este artigo usa a versão mais recente da extensão de IoT do Azure, chamada azure-iot. A versão herdada é chamada azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Para verificar quais extensões estão instaladas, execute az extension list.

Execute az extension remove --name azure-cli-iot-ext para remover a versão herdada da extensão.

Execute az extension add --name azure-iot para adicionar a nova versão da extensão.

Criar um grupo de recursos

Crie um grupo de recursos chamado "IoTEdgeResources" executando o seguinte comando:

az group create --name IoTEdgeResources --location eastus2

A saída deverá ser semelhante a esta:

Captura de tela da criação de um grupo de recursos.

Criar um hub IoT

O código a seguir cria um hub gratuito de camada F1 no grupo de recursos "IoTEdgeResources". Substitua {hub_name} por um nome exclusivo para seu hub IoT.

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

Observação

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

Registrar um dispositivo IoT Edge

No Azure Cloud Shell, siga estas etapas para criar um dispositivo chamado "myEdgeDevice" em seu hub.

Criar uma identidade do dispositivo

Os dispositivos IoT Edge se comportam e são gerenciados de forma diferente dos dispositivos IoT típicos. Use o --edge-enabled sinalizador para declarar essa identidade como um dispositivo do IoT Edge.

Importante

Se você vir 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.

O comando a seguir cria a identidade do dispositivo:

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

Uma ilustração mostra a criação da identidade do dispositivo.

Recuperar a cadeia de conexão

Para recuperar a cadeia de conexão do dispositivo, que vincula seu dispositivo físico à sua identidade no Hub IoT, use este comando:

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

A saída deverá ser semelhante a esta:

HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

Copie o valor da chave connectionString da saída JSON e salve-o. Esse valor é a cadeia de conexão do dispositivo, que é usada para configurar o runtime do IoT Edge na próxima seção.

Implantar o dispositivo IoT Edge

Use este comando da CLI para criar seu dispositivo IoT Edge com base no modelo predefinido iotedge-vm-deploy . Copie o comando em um editor de texto, substitua o texto do espaço reservado por suas informações e cole-o na janela bash ou Cloud Shell:

az deployment group create \
--resource-group IoTEdgeResources \
--template-uri "https://aka.ms/iotedge-vm-deploy" \
--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>"

Verifique se sua senha (adminPasswordOrKey) tem pelo menos 12 caracteres e inclui três dos seguintes: caracteres minúsculos, caracteres maiúsculos, dígitos e caracteres especiais.

Pode levar alguns minutos para criar e iniciar a nova máquina virtual. Depois que a implantação for concluída, você receberá a saída formatada em JSON na CLI que contém as informações de SSH para se conectar à máquina virtual. Copie o valor da entrada SSH pública na seção de saídas :

Captura de tela mostrando o SSH público.

Exibir o status do runtime do IoT Edge

Use este comando para se conectar à sua máquina virtual. Substitua azureuser se você usou um nome de usuário diferente durante a implantação da VM. Substitua <DNS-name> pelo nome DNS do seu computador.

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

Verificar se o dispositivo IoT Edge está configurado

Para verificar se o daemon de segurança do IoT Edge está em execução como um serviço do sistema, use os comandos iotedge.

Importante

Você precisa de privilégios elevados para executar comandos iotedge.

Execute o seguinte comando para verificar o status do dispositivo IoT Edge:

sudo systemctl status iotedge

A saída resultante será semelhante a esta:

Captura de tela mostrando o status do daemon do Azure IoT Edge.

Captura de tela mostrando a lista de módulos em execução no dispositivo virtual.

Seu dispositivo IoT Edge agora está configurado. Ele está pronto para executar os módulos implantados na nuvem.

Para solucionar problemas do serviço, recupere os logs de serviço.

journalctl -u iotedge

Exiba todos os módulos em execução no seu dispositivo IoT Edge. Como o serviço acabou de ser iniciado pela primeira vez, somente o módulo edgeAgent está em execução. O módulo edgeAgent é executado por padrão e ajuda a instalar e a iniciar quaisquer módulos adicionais que você implante em seu dispositivo.

sudo iotedge list