Udostępnij za pośrednictwem


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

Dotyczy: Ikona tak IoT Edge 1.1

Ważne

Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Aktualizowanie usługi 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 — architektura przewodnika Szybki start dla urządzenia 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 — 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 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 — rejestrowanie 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}
    

    Wyświetlanie parametry 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ń 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 następującego polecenia interfejsu wiersza polecenia, aby utworzyć urządzenie usługi IoT Edge na podstawie wstępnie utworzonego szablonu iotedge-vm-deploy .

  • 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/1.1/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.1/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.
deviceConnectionString 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:

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 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 demon zabezpieczeń usługi IoT Edge jest uruchomiony jako usługa systemowa.

    sudo systemctl status iotedge
    

    Zobacz demona usługi IoT Edge działającego jako usługa systemowa

    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.

    journalctl -u iotedge
    
  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
    

    Wyświetlanie jednego modułu na urządzeniu

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 do urządzenia

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.

    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 Moduły usługi IoT Edge otwórz menu rozwijane Dodaj , a następnie wybierz pozycję Moduł witryny Marketplace.

Zrzut ekranu przedstawiający menu rozwijane Dodaj.

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 .

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 po dodaniu modułu z witryny Azure Marketplace. Ta trasa wysyła wszystkie komunikaty z modułu symulowanej temperatury do usługi 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ądanie i tworzenie

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. Zobaczysz moduł SimulatedTemperatureSensor i dwa moduły środowiska uruchomieniowego edgeAgent i edgeHub.

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ŁOSZONE 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 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 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

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

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

sudo iotedge logs SimulatedTemperatureSensor -f

Napiwek

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 usługi Azure IoT Hub dla programu 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 w witrynie Azure Portal.