Ćwiczenie — konfigurowanie komunikacji między usługą IoT Hub a usługą IoT Edge

Ukończone

W tym ćwiczeniu do wydawania wymaganych poleceń będzie używany interfejs wiersza polecenia platformy Azure w usłudze Azure Cloud Shell.

An illustration is showing how to connect azure Cloud Shell.

Instalowanie rozszerzenia usługi Azure IoT

Do wystąpienia interfejsu wiersza polecenia platformy Azure w usłudze Cloud Shell trzeba dodać rozszerzenie usługi Azure IoT.

az extension add --name azure-iot

Uwaga

W tym artykule jest używana najnowsza wersja rozszerzenia Usługi Azure IoT o nazwie azure-iot. Starsza wersja nosi nazwę azure-cli-iot-ext. Jednocześnie powinna być zainstalowana tylko jedna wersja. Aby zobaczyć, jakie rozszerzenia zostały zainstalowane, użyj polecenia az extension list.

Użyj az extension remove --name azure-cli-iot-ext polecenia , aby usunąć starszą wersję rozszerzenia.

Użyj az extension add --name azure-iot polecenia , aby dodać nową wersję rozszerzenia.

Tworzenie grupy zasobów

Utwórz grupę zasobów o nazwie „IoTEdgeResources” przy użyciu następującego polecenia:

az group create --name IoTEdgeResources --location eastus2

W wyniku powinny zostać zwrócone dane wyjściowe podobne do następujących:

An illustration showing the creation of a resource group.

Tworzenie centrum IoT

Poniższy kod tworzy bezpłatne centrum warstwy F1 w grupie zasobów "IoTEdgeResources". Zastąp wartość {hub_name} unikatową nazwą centrum IoT Hub.

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

Uwaga

Jeśli wystąpi błąd, ponieważ w subskrypcji jest już jedno bezpłatne centrum, zmień jednostkę SKU na S1. Każda subskrypcja może zawierać tylko jedno bezpłatne centrum IoT Hub. Jeśli wystąpi błąd, że nazwa centrum IoT jest niedostępna, oznacza to, że ktoś inny ma już centrum o tej nazwie.

Rejestracja urządzenia usługi IoT Edge

W usłudze Azure Cloud Shell użyj następujących instrukcji, aby utworzyć urządzenie o nazwie „myEdgeDevice” w swoim centrum.

Tworzenie tożsamości urządzenia

Ponieważ urządzenia usługi IoT Edge działają inaczej niż typowe urządzenia IoT, a także mogą być inaczej zarządzane, zadeklaruj tę tożsamość jako należącą do urządzenia usługi IoT Edge za pomocą flagi --edge-enabled.

Ważne

Jeśli wystąpi błąd dotyczący kluczy zasad iothubowner, upewnij się, że usługa Cloud Shell korzysta z najnowszej wersji rozszerzenia azure-iot.

Następujące polecenie służy do utworzenia tożsamości urządzenia:

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

An illustration is showing that creating device identity.

Pobieranie parametrów połączenia

Aby pobrać parametry połączenia, które łączą urządzenie fizyczne z jego tożsamością w usłudze IoT Hub, użyj następującego polecenia:

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

W wyniku powinny zostać zwrócone dane wyjściowe podobne do następujących:

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

Skopiuj wartość klucza connectionString z danych wyjściowych JSON i zapisz ją. Ta wartość to parametry połączenia urządzenia. Użyjesz ich do skonfigurowania środowiska uruchomieniowego usługi IoT Edge w następnej sekcji.

Wdrażanie urządzenia usługi IoT Edge

Użyj następującego polecenia interfejsu wiersza polecenia, aby utworzyć urządzenie usługi IoT Edge na podstawie wstępnie utworzonego szablonu iotedge-vm-deploy . Skopiuj następujące polecenie do edytora tekstów, zastąp tekst zastępczy swoimi informacjami, a następnie skopiuj je do okna powłoki bash lub usługi 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>"

Upewnij się, że hasło (adminPasswordOrKey) musi mieć długość co najmniej 12 znaków i mieć trzy z czterech z następujących znaków: małe litery, wielkie litery, cyfry i znaki specjalne.

Utworzenie i uruchomienie nowej maszyny wirtualnej może potrwać kilka minut. Po zakończeniu wdrażania powinny zostać wyświetlone dane wyjściowe w formacie JSON w interfejsie wiersza polecenia zawierające informacje SSH umożliwiające nawiązanie połączenia z maszyną wirtualną. Skopiuj wartość publicznego wpisu SSH sekcji danych wyjściowych:

An illustration is showing the public ssh.

Wyświetlanie stanu środowiska uruchomieniowego usługi IoT Edge

Użyj następującego polecenia, aby nawiązać połączenie z maszyną wirtualną. Zastąp wartość azureuser , jeśli użyto innej nazwy użytkownika niż sugerowana podczas wdrażania maszyny wirtualnej. Zastąp {DNS name} ciąg nazwą DNS swojej maszyny.

ssh {admin username}@{DNS name}

Sprawdzanie, czy urządzenie usługi IoT Edge jest skonfigurowane

Aby sprawdzić, czy demon zabezpieczeń usługi IoT Edge jest uruchomiony jako usługa systemowa, należy użyć poleceń iotedge.

Ważne

Uruchamianie poleceń iotedge wymaga podniesionych uprawnień.

Uruchom następujące polecenia, aby przetestować stan urządzenia usługi IoT Edge:

sudo systemctl status iotedge

W wyniku powinny zostać zwrócone dane wyjściowe podobne do następujących:

An illustration is showing status of Azure IoT Edge Deamon.

An illustration is showing the list of modules running on the virtual device.

Urządzenie usługi IoT Edge jest teraz skonfigurowane. Jest ono gotowe do uruchamiania modułów wdrożonych w chmurze.

Jeśli potrzebujesz rozwiązać problem z usługą, pobierz jej dzienniki.

journalctl -u iotedge

Wyświetl wszystkie moduły uruchomione na urządzeniu usługi IoT Edge. Ponieważ usługa została właśnie uruchomiona po raz pierwszy, tylko moduł edgeAgent powinien być widoczny jako uruchomiony. Moduł edgeAgent działa domyślnie i pomaga zainstalować i uruchomić dodatkowe moduły wdrażane na urządzeniu.

sudo iotedge list