Øvelse – Konfigurer kommunikation mellem IoT Hub og IoT Edge
I denne øvelse bruges Azure CLI i Azure Cloud Shell til at køre de påkrævede kommandoer.
Installér Azure IoT-udvidelse
Føj Azure IoT-udvidelsen til Cloud Shell-forekomsten azure-kommandolinjegrænsefladen.
az extension add --name azure-iot
Seddel
I denne artikel bruges den nyeste version af Azure IoT-udvidelsen kaldet azure-iot. Den ældre version kaldes azure-cli-iot-ext. Du bør kun have én version installeret ad gangen. Kør for at kontrollere, az extension listhvilke udvidelser der er installeret.
Kør az extension remove --name azure-cli-iot-ext for at fjerne den ældre version af udvidelsen.
Kør az extension add --name azure-iot for at tilføje den nye version af udvidelsen.
Opret en ressourcegruppe
Opret en ressourcegruppe med navnet "IoTEdgeResources" ved at køre følgende kommando:
az group create --name IoTEdgeResources --location eastus2
Outputtet ligner følgende:
Opret en IoT-hub
Følgende kode opretter en gratis F1-niveauhub i ressourcegruppen "IoTEdgeResources". Erstat {hub_name} med et entydigt navn til din IoT-hub.
az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2
Seddel
Hvis du får vist en fejl, fordi der allerede er én gratis hub i dit abonnement, skal du ændre SKU'en til S1. Hvert abonnement kan kun have én gratis IoT-hub. Hvis du får vist en fejl om, at IoT-hubnavnet ikke er tilgængeligt, betyder det, at en anden allerede har en hub med dette navn.
Registrer en IoT Edge-enhed
I Azure Cloud Shell skal du følge disse trin for at oprette en enhed med navnet "myEdgeDevice" i din hub.
Opret en enhedsidentitet
IoT Edge-enheder fungerer og administreres anderledes end almindelige IoT-enheder. Brug flaget --edge-enabled til at deklarere denne identitet som en IoT Edge-enhed.
Vigtig
Hvis du får vist en fejl om "iothubowner policy keys", skal du sikre dig, at din Cloud Shell kører den nyeste version af azure-iot udvidelsen.
Følgende kommando opretter enhedsidentiteten:
az iot hub device-identity create --hub-name {hub_name} --device-id myEdgeDevice --edge-enabled
Hent forbindelsesstrengen
Hvis du vil hente forbindelsesstrengen for din enhed, som forbinder din fysiske enhed med dens identitet i IoT Hub, skal du bruge denne kommando:
az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name} --output table
Outputtet ligner følgende:
HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}
Kopiér værdien af nøglen connectionString fra JSON-outputtet, og gem den. Denne værdi er enhedsforbindelsesstrengen, som bruges til at konfigurere IoT Edge-kørsel i næste afsnit.
Udrul IoT Edge-enheden
Brug denne CLI-kommando til at oprette din IoT Edge-enhed baseret på den færdigbyggede skabelon til iotedge-vm-deploy . Kopiér kommandoen til en teksteditor, erstat pladsholderteksten med dine oplysninger, og indsæt den derefter i dit bash- eller Cloud Shell-vindue:
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>"
Sørg for, at adgangskoden (adminPasswordOrKey) er mindst 12 tegn lang og indeholder tre af følgende: små bogstaver, store bogstaver, cifre og specialtegn.
Det kan tage et par minutter at oprette og starte den nye virtuelle maskine. Når installationen er fuldført, modtager du JSON-formateret output i kommandolinjegrænsefladen, der indeholder SSH-oplysningerne for at oprette forbindelse til den virtuelle maskine. Kopiér værdien af den offentlige SSH-posti outputafsnittet :
Få vist kørselsstatus for IoT Edge
Brug denne kommando til at oprette forbindelse til den virtuelle maskine. Erstat azureuser , hvis du brugte et andet brugernavn under vm-installationen. Erstat <DNS-name> med computerens DNS-navn.
ssh <admin-username>@<DNS-name>
Kontrollér, om IoT Edge-enheden er konfigureret
Hvis du vil kontrollere, at IoT Edge-sikkerheds-daemon kører som en systemtjeneste, skal du bruge iotedge kommandoer.
Vigtig
Du skal have administratorrettigheder for at køre iotedge kommandoer.
Kør følgende kommando for at kontrollere status for IoT Edge-enheden:
sudo systemctl status iotedge
Det resulterende output skal ligne dette:
Din IoT Edge-enhed er nu konfigureret. Den er klar til at køre cloududrullede moduler.
Hent tjenestelogfilerne for at foretage fejlfinding af tjenesten.
journalctl -u iotedge
Få vist alle de moduler, der kører på din IoT Edge-enhed. Da tjenesten lige er startet for første gang, er det kun edgeAgent-modulet , der kører. EdgeAgent-modulet kører som standard og hjælper med at installere og starte yderligere moduler, som du installerer på din enhed.
sudo iotedge list