Övning – konfigurera kommunikationen mellan IoT Hub och IoT Edge

Slutförd

I den här övningen används Azure CLI i Azure Cloud Shell för att köra nödvändiga kommandon.

En illustration visar hur du ansluter Azure Cloud Shell.

Installera Azure IoT-tillägg

Du måste lägga till Azure IoT-tillägget i Azure CLI för Cloud Shell-instansen.

az extension add --name azure-iot

Anteckning

Den här artikeln använder den senaste versionen av Azure IoT-tillägget som kallas azure-iot . Den äldre versionen kallas azure-cli-iot-ext . Du bör bara ha en version installerad i taget. Om du vill se vilka tillägg som du har installerat använder du az extension list .

Använd az extension remove --name azure-cli-iot-ext för att ta bort den äldre versionen av tillägget.

Använd az extension add --name azure-iot för att lägga till den nya versionen av tillägget.

Skapa en resursgrupp

Använd följande kommando och skapa en resursgrupp med namnet ”IoTEdgeResources”:

az group create --name IoTEdgeResources --location eastus2

Resultatet bör se ut ungefär så här:

En bild som visar hur du skapar en resursgrupp.

Skapa en IoT Hub

Följande kod skapar en kostnadsfri hubb på F1-nivå i resursgruppen "IoTEdgeResources". Ersätt {hub_name} med ett unikt namn för din IoT Hub.

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

Anteckning

Om du får ett felmeddelande eftersom det redan finns en kostnadsfri hubb i din prenumeration ändrar du SKU till S1. Varje prenumeration kan bara ha en kostnadsfri IoT Hub. Om du får ett felmeddelande om att IoT-hubbnamnet inte är tillgängligt innebär det att någon annan redan har en hubb med det namnet.

Registrera en IoT Edge-enhet

I Azure Cloud Shell använder du följande instruktioner för att skapa en enhet med namnet ”myEdgeDevice” i din hubb.

Skapa en enhetsidentitet

Eftersom IoT Edge-enheter fungerar och kan hanteras på ett annat sätt än typiska IoT-enheter deklarerar du den här identiteten så att den tillhör en IoT Edge-enhet med flaggan --edge-enabled.

Viktigt

Om du får ett felmeddelande om ”iothubowner-principnycklar” kontrollerar du att Cloud Shell kör den senaste versionen av tillägget azure-iot.

Följande kommando skapar enhetsidentiteten:

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

En illustration visar hur du skapar en enhetsidentitet.

Hämta anslutningssträngen

För att hämta anslutningssträngen för din enhet, som länkar den fysiska enheten med dess identitet i IoT Hub, använder du kommandot:

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

Resultatet bör se ut ungefär så här:

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

Kopiera värdet för connectionString-nyckeln från JSON-utdata och spara det. Det här värdet är enhetens anslutningssträng. Du ska använda det för att konfigurera IoT Edge-körning i nästa avsnitt.

Distribuera IoT Edge enhet

Använd följande CLI-kommando för att IoT Edge din enhet baserat på den fördefinierade mallen iotedge-vm-deploy. Kopiera följande kommando till en textredigerare, ersätt platshållartexten med din information och kopiera sedan till bash- eller Cloud Shell-fönstret:

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>"

Kontrollera att lösenordet (adminPasswordOrKey) måste vara minst 12 tecken långt och innehålla tre av fyra av följande: gemener, versaler, siffror och specialtecken.

Det kan ta några minuter att skapa och starta den nya virtuella datorn. När distributionen är klar bör du få JSON-formaterade utdata i CLI som innehåller SSH-information för att ansluta till den virtuella datorn. Kopiera värdet för den offentliga SSH-posten i utdataavsnittet:

Visa status för IoT Edge-körningen

Använd följande kommando för att ansluta till din virtuella dator. Ersätt azureuser om du använde ett annat användarnamn än det som föreslogs under distributionen av den virtuella datorn. Ersätt {DNS name} med datorns DNS-namn.

ssh {admin username}@{DNS name}

Kontrollera om IoT Edge-enheten har konfigurerats

Vi använder iotedge-kommandon för att verifiera att IoT Edge-säkerhetsdaemonen körs som en systemtjänst.

Viktigt

Förhöjd behörighet krävs för att köra iotedge-kommandon.

Kör följande kommandon för att testa IoT Edge-enhetens status:

sudo systemctl status iotedge

Resultatet bör se ut ungefär så här:

En illustration visar status för Azure IoT Edge-daemon.

En illustration visar listan över moduler som körs på den virtuella enheten.

Din IoT Edge-enhet har nu konfigurerats. Den är redo att köra molndistribuerade moduler.

Hämta tjänstloggar om du behöver felsöka tjänsten.

journalctl -u iotedge

Visa alla moduler som körs på din IoT Edge-enhet. Eftersom det är första gången du startar tjänsten, bör du bara kunna se den edgeAgent-modul som körs. EdgeAgent-modulen körs som standard och hjälper till att installera och starta eventuella ytterligare moduler som du distribuerar till enheten.

sudo iotedge list