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

Dotyczy:IoT Edge 1.4 znacznika wyboru IoT Edge 1.4

Przetestuj usługę Azure IoT Edge w tym przewodniku Szybki start, wdrażając kod konteneryzowany na wirtualnym urządzeniu z systemem Linux IoT Edge. IoT Edge umożliwia zdalne zarządzanie kodem na urządzeniach, dzięki czemu można wysyłać więcej obciążeń do krawędzi. W tym przewodniku Szybki start zalecamy użycie maszyny wirtualnej platformy Azure dla urządzenia IoT Edge, co umożliwia szybkie utworzenie maszyny testowej, a następnie usunięcie jej po zakończeniu pracy.

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 IoT Edge na urządzeniu wirtualnym.
  • Zdalne wdrażanie modułu na urządzeniu usługi IoT Edge.

Diagram — architektura przewodnika Szybki start dla urządzenia i chmury

Ten przewodnik Szybki start przeprowadzi Cię przez proces tworzenia maszyny wirtualnej z systemem Linux skonfigurowanej do IoT Edge urządzenia. Następnie wdrożysz moduł z 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 dotyczące usługi Azure IoT Edge opierają się na pracy wykonywanej tutaj przez wdrożenie dodatkowych modułów, które analizują 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 Hub

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

Diagram — tworzenie centrum IoT Hub w chmurze

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

Poniższy kod tworzy bezpłatne centrum F1 w grupie zasobów IoTEdgeResources. Zastąp {hub_name} ciąg unikatową nazwą centrum IoT. Utworzenie 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ę.

Rejestrowanie urządzenia usługi IoT Edge

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

Diagram — rejestrowanie urządzenia przy użyciu tożsamości 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 Cloud Shell korzysta z najnowszej wersji rozszerzenia azure-iot.

  2. Wyświetl parametry połączenia urządzenia, które łączą urządzenie fizyczne z jego tożsamością w IoT Hub. Zawiera ona nazwę centrum IoT, nazwę urządzenia, a następnie klucz wspólny, który uwierzytelnia połączenia między nimi. Ponownie odwołujemy się do tych parametrów połączenia w następnej sekcji podczas konfigurowania urządzenia IoT Edge.

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

    Wyświetlanie parametrów połączenia z danych wyjściowych interfejsu wiersza polecenia

Konfigurowanie urządzenia usługi IoT Edge

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

Diagram — uruchamianie ś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ń IoT Edge uruchamia się przy każdym uruchomieniu urządzenia IoT Edge i uruchomieniu urządzenia przez uruchomienie agenta IoT Edge. Agent IoT Edge ułatwia wdrażanie i monitorowanie modułów na urządzeniu IoT Edge, w tym centrum IoT Edge. Centrum IoT Edge zarządza komunikacją między modułami na urządzeniu IoT Edge i między urządzeniem a 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 IoT Edge

W tej sekcji użyto szablonu usługi Azure Resource Manager do utworzenia nowej maszyny wirtualnej i zainstalowania na nim środowiska uruchomieniowego 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 z systemem Linux IoT Edge, a następnie powrócić do tego przewodnika Szybki start.

Użyj następującego polecenia interfejsu wiersza polecenia, aby utworzyć urządzenie IoT Edge na podstawie wstępnie utworzonego szablonu iotedge-vm-deploy.

  • W przypadku użytkowników powłoki bash lub Cloud Shell skopiuj następujące polecenie do edytora tekstów, zastąp tekst zastępczy swoimi informacjami, a następnie skopiuj do okna powłoki bash lub Cloud Shell:

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/1.4/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/1.4/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 subskrypcji.
identyfikator URI szablonu Wskaźnik do szablonu 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.
deviceConnectionString Parametry połączenia z tożsamości urządzenia w IoT Hub, który służy do konfigurowania środowiska uruchomieniowego IoT Edge na maszynie wirtualnej. Polecenie interfejsu wiersza polecenia w tym parametrze pobiera parametry połączenia. Zastąp tekst zastępczy nazwą centrum IoT.
authenticationType Metoda uwierzytelniania dla konta administratora. Ten przewodnik Szybki start używa uwierzytelniania haseł , ale można również ustawić ten parametr na 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 dotyczące protokołu SSH w celu nawiązania połączenia z maszyną wirtualną. Skopiuj wartość publicznego wpisu SSH sekcji danych wyjściowych :

Pobieranie publicznej wartości SSH z danych wyjściowych

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 została wyprowadzona przez polecenie wdrożenia. Nazwę DNS można również znaleźć na stronie przeglądu maszyny wirtualnej w 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 IoT Edge.

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

    sudo iotedge system status
    

    Porada

    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 jest uruchamiany 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 — wdrażanie modułu z chmury na urządzeniu

Jedną z kluczowych funkcji usługi Azure IoT Edge jest wdrażanie kodu na urządzeniach IoT Edge z chmury. moduły IoT Edge to pakiety wykonywalne implementowane jako kontenery. W tej sekcji wdrożysz wstępnie utworzony moduł z sekcji moduły IoT Edge Azure Marketplace bezpośrednio z 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 Azure Marketplace.

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

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

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

    Podczas tworzenia nowego urządzenia IoT Edge zostanie wyświetlony kod 417 -- The device's deployment configuration is not set stanu w 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.

    Zrzut ekranu przedstawiający wybieranie pozycji Ustaw moduły.

Moduły

Pierwszym krokiem kreatora jest wybranie modułów, które chcesz uruchomić na urządzeniu.

W obszarze IoT Edge Modules (Moduły) otwórz menu rozwijane Add (Dodaj), a następnie wybierz pozycję Marketplace Module (Moduł witryny Marketplace).

Zrzut ekranu przedstawiający menu rozwijane Dodaj.

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

Wybierz pozycję Dalej: Trasy , aby przejść do następnego kroku kreatora.

Zrzut ekranu przedstawiający przejście do następnego kroku po dodaniu modułu.

Trasy

Trasa o nazwie SimulatedTemperatureSensorToIoTHub została utworzona automatycznie podczas dodawania modułu z Azure Marketplace. Ta trasa wysyła wszystkie komunikaty z modułu symulowanej temperatury do IoT Hub.

Zrzut ekranu przedstawiający usuwanie trasy domyślnej, a następnie przejście do następnego kroku.

Wybierz pozycję Dalej: Przeglądanie i tworzenie.

Przegląd i tworzenie

Przejrzyj plik JSON, a następnie wybierz pozycję Utwórz. Plik JSON definiuje wszystkie moduły wdrażane na urządzeniu IoT Edge. Zobaczysz moduł SimulatedTemperatureSensor i dwa moduły środowiska uruchomieniowego edgeAgent i edgeHub.

Uwaga

Podczas przesłania nowego wdrożenia na urządzenie usługi IoT Edge do urządzenia nie jest wypychane żadne powiadomienie. 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 wdrażania, użyje informacji o nowym wdrożeniu, aby ściągnąć obrazy modułów z chmury, a następnie zacznie uruchamiać moduły lokalnie. Ten 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 IoT Edge nadal je uruchamia. Poczekaj kilka minut, a następnie odśwież stronę.

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

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 późniejszego testowania. 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

Wyświetlanie trzech modułów na urządzeniu

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

sudo iotedge logs SimulatedTemperatureSensor -f

Porada

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

Wyświetlanie danych z modułu

Możesz również obserwować, jak komunikaty docierają do centrum IoT Hub przy użyciu rozszerzenia Azure IoT Hub dla Visual Studio Code.

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 z poziomu Azure Portal.