Exercício – Configurar o IoT Edge para o Hub IoT

Concluído

Usar o Azure Cloud Shell

Para iniciar o Azure Cloud Shell, inicie o Cloud Shell no painel de navegação superior do portal do Azure.

An illustration is showing how to open Azure Cloud Shell.

Você precisará instalar a extensão do Azure IoT para a CLI do Azure usando o comando a seguir. Essa extensão gerencia recursos do Azure, como o Hub IoT.

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 chama-se azure-cli-iot-ext. Você deve ter apenas uma versão instalada por vez. Para ver quais extensões você tem instaladas, use az extension list.

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

Use 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 na localização eastus2 usando o comando a seguir. Dê um nome ao grupo de recursos.

az group create --name <resource-group> --location eastus2

Criar um hub IoT

O código a seguir cria um hub F1 gratuito no grupo de recursos. Substitua {hub_name} por um nome exclusivo para o Hub IoT e substitua <resource-group> pelo nome do grupo de recursos.

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

Registrar um dispositivo do IoT Edge no hub IoT

Crie uma identidade do dispositivo para seu dispositivo do IoT Edge.

Como os dispositivos IoT Edge se comportam e podem ser gerenciados de maneira diferente dos dispositivos IoT comuns, declare essa identidade para ser um dispositivo do IoT Edge com o sinalizador --edge-enabled.

Observação

Se você receber um erro porque já exsite um hub gratuito na sua assinatura, altere o SKU para S1. Cada assinatura pode ter somente um hub IoT gratuito. Caso você receba um erro informando que o nome do hub IoT não está disponível, isso significa que alguém já tem um hub com esse nome.

No Azure Cloud Shell, insira o comando a seguir para criar um dispositivo chamado myEdgeDevice no hub.

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

Como recuperar a cadeia de conexão para o dispositivo

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

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

A saída resultante 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. Você usará isso para configurar o runtime do IoT Edge na próxima seção.

Implantar o dispositivo do IoT Edge

Use o comando da CLI a seguir para criar seu dispositivo do IoT Edge com base no modelo predefinido iotedge-vm-deploy. Copie o seguinte comando em um editor de texto, substitua o texto do espaço reservado pelas suas informações e copie-as na janela do Bash ou do 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 a sua senha (adminPasswordOrKey) tem pelo menos 12 caracteres e se há três destes quatro itens: caracteres minúsculos, caracteres maiúsculos, dígitos e caracteres especiais.

A criação e a inicialização da máquina virtual podem levar alguns minutos. Depois que a implantação for concluída, você deverá 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 de SSH pública da seção saídas.

Importante

O módulo de detecção de linguagem do IoT Edge exige que sua máquina virtual tenha pelo menos 8 GB de memória e 16 GB de armazenamento em disco. O módulo falhará se você usar o tamanho da VM padrão definido no modelo de implantação. Redimensionar a máquina virtual para pelo menos o tamanho D2s_v3. Para obter informações sobre o redimensionamento de máquinas virtuais, consulte Alterar o tamanho de uma máquina virtual. Para obter mais informações sobre como expandir o armazenamento em disco, consulte Como expandir discos rígidos virtuais anexados a uma máquina virtual do Windows.

Como ver o status do runtime do IoT Edge

Use o comando a seguir para se conectar à máquina virtual. Substitua azureuser se você usou um nome de usuário diferente daquele sugerido durante a implantação da VM. Substitua {DNS name} pelo nome DNS do seu computador.

ssh {admin username}@{DNS name}

Para localizar o nome DNS:

  1. Vá até o grupo de recursos que você criou
  2. Selecione o recurso de máquina virtual
  3. Na página Visão geral, você encontrará seu nome DNS

Verificar se o dispositivo do IoT Edge está configurado

Você verificará se o daemon de segurança do IoT Edge está em execução como um serviço do sistema usando os comandos iotedge. Você precisará ter privilégios elevados para executar comandos iotedge.

Importante

Você precisará ter privilégios elevados para executar comandos iotedge.

Execute os seguintes comandos para testar o status do dispositivo IoT Edge:

sudo systemctl status iotedge

A saída resultante será semelhante a esta:

An illustration is showing status of Azure IoT Edge Deamon.

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

Se você precisar 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, você só verá o módulo edgeAgent 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