Szybki start: wdrażanie pierwszego modułu usługi IoT Edge na wirtualnym urządzeniu z systemem Linux

Dotyczy:Znacznik wyboru usługi IoT Edge 1.4 IoT Edge 1.4

Ważne

Azure IoT Edge1.4 jest obsługiwaną wersją. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Przetestuj usługę Azure IoT Edge w tym przewodniku Szybki start, wdrażając konteneryzowany kod na wirtualnym urządzeniu usługi IoT Edge z systemem Linux. Usługa IoT Edge umożliwia zdalne zarządzanie kodem na urządzeniach, dzięki czemu można wysyłać więcej obciążeń na brzeg. W tym przewodniku Szybki start zalecamy użycie maszyny wirtualnej platformy Azure dla urządzenia usługi IoT Edge, co pozwala szybko utworzyć maszynę testową, a następnie usunąć ją po zakończeniu.

W tym przewodniku Szybki start zawarto informacje na temat wykonywania następujących czynności:

  • Tworzenie centrum IoT Hub.
  • Rejestrowanie urządzenia usługi IoT Edge w centrum IoT Hub.
  • Zainstaluj i uruchom środowisko uruchomieniowe usługi IoT Edge na urządzeniu wirtualnym.
  • Zdalne wdrażanie modułu na urządzeniu usługi IoT Edge.

Diagram architektury szybkiego startu dla urządzeń i chmury.

Ten przewodnik Szybki start przeprowadzi Cię przez proces tworzenia maszyny wirtualnej z systemem Linux skonfigurowanej jako urządzenie usługi IoT Edge. Następnie wdrożysz moduł z witryny Azure Portal na urządzeniu. Moduł używany w tym przewodniku Szybki start to symulowany czujnik, który generuje dane dotyczące temperatury, wilgotności i ciśnienia. Inne samouczki usługi Azure IoT Edge opierają się na pracy wykonywanej tutaj, wdrażając dodatkowe moduły analizujące symulowane dane pod kątem analiz biznesowych.

Jeśli nie masz aktywnej subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Wymagania wstępne

Przygotowanie środowiska do interfejsu wiersza polecenia platformy Azure.

Zasoby w chmurze:

  • Grupa zasobów do zarządzania wszystkimi zasobami używanymi w tym przewodniku Szybki start. W tym przewodniku Szybki start użyjemy przykładowej nazwy grupy zasobów IoTEdgeResources i poniższych samouczków.

    az group create --name IoTEdgeResources --location westus2
    

Tworzenie centrum IoT

Rozpocznij pracę z przewodnikiem Szybki start od utworzenia centrum IoT za pomocą interfejsu wiersza polecenia platformy Azure.

Diagram przedstawiający sposób tworzenia centrum IoT w chmurze.

W tym przewodniku Szybki start wystarcza warstwa bezpłatna usługi IoT Hub. Jeśli w przeszłości użyto usługi IoT Hub i masz już utworzone centrum, możesz użyć tego centrum IoT Hub.

Poniższy kod tworzy bezpłatne centrum F1 w grupie zasobów IoTEdgeResources. Zastąp {hub_name} element unikatową nazwą centrum IoT Hub. Utworzenie centrum IoT Hub może potrwać kilka minut.

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

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 polegający na niedostępności nazwy centrum IoT Hub, oznacza to, że ktoś inny ma już centrum o takiej nazwie. Wypróbuj nową nazwę.

Rejestracja urządzenia usługi IoT Edge

Zarejestruj urządzenie usługi IoT Edge, korzystając z nowo utworzonego centrum IoT.

Diagram przedstawiający sposób rejestrowania urządzenia przy użyciu tożsamości usługi IoT Hub.

Utwórz tożsamość urządzenia dla urządzenia IoT Edge, aby umożliwić mu komunikowanie się z centrum IoT. Tożsamość urządzenia jest przechowywana w chmurze, a w celu skojarzenia urządzenia fizycznego z tożsamością urządzenia używane są unikatowe parametry połączenia urządzenia.

Ponieważ urządzenia usługi IoT Edge zachowują się 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.

  1. W usłudze Azure Cloud Shell wprowadź następujące polecenie, aby utworzyć urządzenie o nazwie myEdgeDevice w centrum.

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

    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 .

  2. Wyświetl parametry połączenia dla urządzenia, który łączy urządzenie fizyczne z jego tożsamością w usłudze IoT Hub. Zawiera ona nazwę centrum IoT, nazwę urządzenia, a następnie klucz współużytkowany, który uwierzytelnia połączenia między nimi. Ponownie odwołujemy się do tego parametry połączenia w następnej sekcji podczas konfigurowania urządzenia usługi IoT Edge.

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

    Na przykład parametry połączenia powinny wyglądać podobnie do HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>.

Konfigurowanie urządzenia usługi IoT Edge

Utwórz maszynę wirtualną przy użyciu środowiska uruchomieniowego usługi Azure IoT Edge.

Diagram przedstawiający sposób uruchamiania środowiska uruchomieniowego na urządzeniu.

Środowisko uruchomieniowe usługi IoT Edge jest wdrażane na wszystkich urządzeniach usługi IoT Edge. Składa się ono z trzech składników. Demon zabezpieczeń usługi IoT Edge jest uruchamiany przy każdym uruchomieniu urządzenia IoT Edge przez rozpoczęcie działania agenta usługi IoT Edge. Agent usługi IoT Edge ułatwia wdrażanie i monitorowanie modułów na urządzeniu usługi IoT Edge, w tym centrum usługi IoT Edge. Centrum usługi IoT Edge zarządza komunikacją między modułami na urządzeniu usługi IoT Edge oraz między urządzeniem a usługą IoT Hub.

Podczas konfigurowania środowiska uruchomieniowego należy podać parametry połączenia urządzenia. Jest to ciąg pobrany z interfejsu wiersza polecenia platformy Azure. Za pomocą tych parametrów urządzenie fizyczne jest kojarzone z tożsamością urządzenia usługi IoT Edge na platformie Azure.

Wdrażanie urządzenia usługi IoT Edge

W tej sekcji użyto szablonu usługi Azure Resource Manager do utworzenia nowej maszyny wirtualnej i zainstalowania na niej środowiska uruchomieniowego usługi IoT Edge. Jeśli zamiast tego chcesz użyć własnego urządzenia z systemem Linux, możesz wykonać kroki instalacji opisane w temacie Ręczne aprowizowanie pojedynczego urządzenia usługi IoT Edge z systemem Linux, a następnie wrócić do tego przewodnika Szybki start.

Użyj przycisku Wdróż na platformie Azure lub poleceń interfejsu wiersza polecenia, aby utworzyć urządzenie usługi IoT Edge na podstawie wstępnie utworzonego szablonu iotedge-vm-deploy.

  • Wdrażanie przy użyciu szablonu usługi Azure Resource Manager usługi IoT Edge.

    Wdróż na platformie Azure

  • W przypadku użytkowników powłoki bash lub usługi Cloud Shell 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://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --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>"
    
  • W przypadku użytkowników programu PowerShell skopiuj następujące polecenie do okna programu PowerShell, a następnie zastąp tekst zastępczy własnymi informacjami:

    az deployment group create `
    --resource-group IoTEdgeResources `
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" `
    --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>"
    

Ten szablon przyjmuje następujące parametry:

Parametr Opis
grupa zasobów Grupa zasobów, w której zostaną utworzone zasoby. Użyj domyślnych zasobów IoTEdgeResources używanych w tym artykule lub podaj nazwę istniejącej grupy zasobów w ramach subskrypcji.
identyfikator URI szablonu Wskaźnik do szablonu usługi Resource Manager, którego używamy.
dnsLabelPrefix Ciąg, który zostanie użyty do utworzenia nazwy hosta maszyny wirtualnej. Zastąp tekst zastępczy nazwą maszyny wirtualnej.
adminUsername Nazwa użytkownika konta administratora maszyny wirtualnej. Użyj przykładu azureUser lub podaj nową nazwę użytkownika.
device Połączenie ionString Parametry połączenia z tożsamości urządzenia w usłudze IoT Hub, która służy do konfigurowania środowiska uruchomieniowego usługi IoT Edge na maszynie wirtualnej. Polecenie interfejsu wiersza polecenia w tym parametrze pobiera parametry połączenia za Ciebie. Zastąp tekst zastępczy nazwą centrum IoT Hub.
Authenticationtype Metoda uwierzytelniania dla konta administratora. W tym przewodniku Szybki start jest używane uwierzytelnianie haseł , ale można również ustawić ten parametr na wartość sshPublicKey.
adminPasswordOrKey Hasło lub wartość klucza SSH dla konta administratora. Zastąp tekst zastępczy bezpiecznym hasłem. Hasło 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.

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. Na przykład polecenie SSH powinno wyglądać podobnie do ssh azureUser@edge-vm.westus2.cloudapp.azure.com.

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

Pozostałe polecenia w tym przewodniku Szybki start są wykonywane na samym urządzeniu usługi IoT Edge, dzięki czemu można zobaczyć, co dzieje się na urządzeniu. Jeśli używasz maszyny wirtualnej, połącz się z tą maszyną teraz przy użyciu skonfigurowanej nazwy użytkownika administratora i nazwy DNS, która była wyjściowa przez polecenie wdrożenia. Nazwę DNS można również znaleźć na stronie przeglądu maszyny wirtualnej w witrynie Azure Portal. Użyj następującego polecenia, aby nawiązać połączenie z maszyną wirtualną. Zastąp {admin username} wartości i {DNS name} własnymi wartościami.

ssh {admin username}@{DNS name}

Po nawiązaniu połączenia z maszyną wirtualną sprawdź, czy środowisko uruchomieniowe zostało pomyślnie zainstalowane i skonfigurowane na urządzeniu usługi IoT Edge.

  1. Sprawdź, czy usługa IoT Edge jest uruchomiona. Poniższe polecenie powinno zwrócić stan ok , jeśli usługa IoT Edge jest uruchomiona lub podaj błędy usługi.

    sudo iotedge system status
    

    Napiwek

    Uruchomienie poleceń iotedge wymaga podniesionych uprawnień. Po wylogowaniu się z komputera i ponownym zalogowaniu się do niego po raz pierwszy od zainstalowania środowiska uruchomieniowego usługi IoT Edge Twoje uprawnienia zostaną automatycznie zaktualizowane. Do tego czasu użyj sudo polecenia przed poleceniami.

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

    sudo iotedge system logs
    
  3. 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
    

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

Wdrażanie modułu

Zarządzając urządzeniem usługi Azure IoT Edge z chmury, wdróż moduł przesyłający dane telemetryczne do centrum IoT Hub.

Diagram przedstawiający sposób wdrażania modułu z chmury na urządzeniu.

Jedną z kluczowych funkcji usługi Azure IoT Edge jest wdrożenie kodu na urządzeniach usługi IoT Edge z chmury. Moduły usługi IoT Edge to pakiety plików wykonywalnych implementowane jako kontenery. W tej sekcji wdrożysz wstępnie utworzony moduł z sekcji Moduły usługi IoT Edge w witrynie Azure Marketplace bezpośrednio z usługi Azure IoT Hub.

Moduł, który wdrożysz w tej sekcji, symuluje czujnik i wysyła wygenerowane dane. Ten moduł jest przydatny, gdy rozpoczyna się pracę z usługą IoT Edge, ponieważ symulowane dane można wykorzystać przy programowaniu i testowaniu. Jeśli chcesz zobaczyć, co dokładnie robi ten moduł, możesz wyświetlić kod źródłowy symulowanego czujnika temperatury.

Wykonaj następujące kroki, aby uruchomić kreatora Ustawianie modułów w celu wdrożenia pierwszego modułu z witryny Azure Marketplace.

  1. Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.

  2. W menu po lewej stronie w obszarze Zarządzanie urządzeniami wybierz pozycję Urządzenia.

  3. Wybierz identyfikator urządzenia docelowego urządzenia usługi IoT Edge z listy.

    Podczas tworzenia nowego urządzenia usługi IoT Edge zostanie wyświetlony kod 417 -- The device's deployment configuration is not set stanu w witrynie Azure Portal. Ten stan jest normalny i oznacza, że urządzenie jest gotowe do otrzymania wdrożenia modułu.

  4. Na górnym pasku wybierz pozycję Ustaw moduły.

    Wybierz moduły, które chcesz uruchomić na urządzeniu. Możesz wybrać moduły, które zostały już utworzone, moduły z witryny Azure Marketplace lub moduły utworzone samodzielnie. W tym przewodniku Szybki start wdrożysz moduł z witryny Azure Marketplace.

  5. W obszarze Moduły usługi IoT Edge otwórz menu rozwijane Dodaj , a następnie wybierz pozycję Moduł witryny Marketplace.

  6. W witrynie Marketplace modułów Simulated Temperature Sensor usługi IoT Edge wyszukaj i wybierz moduł. Moduł zostanie dodany do sekcji Moduły usługi IoT Edge z żądanym stanem uruchomienia .

  7. Wybierz pozycję Dalej: trasy , aby kontynuować konfigurowanie tras.

    Trasa o nazwie SimulatedTemperatureSensorToIoTHub została utworzona automatycznie po dodaniu modułu z witryny Azure Marketplace. Ta trasa wysyła wszystkie komunikaty z modułu symulowanej temperatury do usługi IoT Hub.

  8. Wybierz pozycję Dalej: Przeglądanie i tworzenie.

  9. Przejrzyj plik JSON, a następnie wybierz pozycję Utwórz. Plik JSON definiuje wszystkie moduły wdrażane na urządzeniu usługi IoT Edge.

    Uwaga

    Podczas przesyłania nowego wdrożenia na urządzenie usługi IoT Edge do urządzenia nie są wypychane żadne dane. Nie jest to konieczne, ponieważ urządzenie regularnie wysyła do usługi IoT Hub zapytania w celu odebrania wszelkich nowych instrukcji. Jeśli urządzenie znajdzie zaktualizowany manifest wdrożenia, użyje informacji o nowym wdrożeniu, aby ściągnąć obrazy modułów z chmury, a następnie zacznie uruchamiać moduły lokalnie. Proces może potrwać kilka minut.

Po utworzeniu szczegółów wdrożenia modułu kreator powróci do strony szczegółów urządzenia. Wyświetl stan wdrożenia na karcie Moduły .

Powinny zostać wyświetlone trzy moduły: $edgeAgent, $edgeHub i SimulatedTemperatureSensor. Jeśli co najmniej jeden moduł ma wartość Tak w obszarze Określone we wdrożeniu, ale nie w obszarze Zgłaszane przez urządzenie, urządzenie usługi IoT Edge nadal je uruchamia. Poczekaj kilka minut, a następnie odśwież stronę.

Zrzut ekranu przedstawiający moduł SimulatedTemperatureSensor na liście wdrożonych modułów.

Jeśli masz problemy z wdrażaniem modułów, zobacz Rozwiązywanie problemów z urządzeniami usługi IoT Edge w witrynie Azure Portal.

Wyświetlanie wygenerowanych danych

W tym przewodniku Szybki start utworzono nowe urządzenie usługi IoT Edge i zainstalowano na nim środowisko uruchomieniowe usługi IoT Edge. Następnie użyto witryny Azure Portal do wdrożenia modułu usługi IoT Edge w celu uruchomienia go na urządzeniu bez konieczności wprowadzenia zmian na samym urządzeniu.

W takim przypadku wypchnięty moduł generuje przykładowe dane środowiska, których można użyć do testowania później. Symulowany czujnik monitoruje maszynę i środowisko wokół maszyny. Na przykład ten czujnik może być umieszczony w serwerowni, w hali fabrycznej lub na turbinie wiatrowej. Komunikat zawiera temperaturę i wilgotność otoczenia, temperaturę maszyny, ciśnienie oraz znacznik czasu. W samouczkach usługi IoT Edge dane utworzone przez ten moduł są używane jako dane testowe do analizy.

Otwórz ponownie wiersz polecenia na urządzeniu usługi IoT Edge lub użyj połączenia SSH z interfejsu wiersza polecenia platformy Azure. Upewnij się, że moduł wdrożony z chmury jest uruchomiony na urządzeniu usługi IoT Edge:

sudo iotedge list

Zrzut ekranu przedstawiający trzy moduły na urządzeniu.

Wyświetl komunikaty wysyłane z modułu czujnika temperatury:

sudo iotedge logs SimulatedTemperatureSensor -f

Zrzut ekranu przedstawiający dane z modułu w konsoli wyjściowej.

Napiwek

Przy odwoływaniu się do nazw modułów w poleceniach usługi IoT Edge jest rozróżniana wielkość liter.

Czyszczenie zasobów

Jeśli chcesz przejść do samouczków dotyczących usługi IoT Edge, możesz użyć urządzenia, które zostało zarejestrowane i skonfigurowane w ramach tego przewodnika Szybki start. W przeciwnym razie możesz usunąć utworzone zasoby platformy Azure, aby uniknąć naliczania opłat.

Jeśli maszyna wirtualna i centrum IoT Hub zostały utworzone w nowej grupie zasobów, możesz usunąć tę grupę i wszystkie powiązane zasoby. Sprawdź dokładnie zawartość grupy zasobów, aby się upewnić, że nie ma w niej żadnych elementów, które chcesz zachować. Jeśli nie chcesz usuwać całej grupy, możesz usunąć poszczególne zasoby.

Ważne

Usunięcie grupy zasobów jest nieodwracalne.

Usuń grupę IoTEdgeResources. Usunięcie grupy zasobów może potrwać kilka minut.

az group delete --name IoTEdgeResources --yes

Możesz potwierdzić, że grupa zasobów została usunięta, wyświetlając listę grup zasobów.

az group list

Następne kroki

W tym przewodniku Szybki start utworzono urządzenie usługi IoT Edge i wdrożono na nim kod przy użyciu interfejsu usługi Azure IoT Edge w chmurze. Masz teraz urządzenie testowe generujące dane pierwotne dotyczące jego otoczenia.

W następnym samouczku dowiesz się, jak monitorować aktywność i kondycję urządzenia w witrynie Azure Portal.