Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows przy użyciu kluczy symetrycznych

Dotyczy:IoT Edge 1.4 checkmark 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.

Ten artykuł zawiera kompleksowe instrukcje dotyczące rejestrowania i aprowizacji usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows.

Każde urządzenie, które łączy się z centrum IoT Hub, ma identyfikator urządzenia używany do śledzenia komunikacji między chmurą a urządzeniem i chmurą. Urządzenie można skonfigurować przy użyciu informacji o połączeniu, w tym nazwy hosta centrum IoT, identyfikatora urządzenia i informacji używanych przez urządzenie do uwierzytelniania w usłudze IoT Hub.

Kroki opisane w tym artykule obejmują proces ręcznej aprowizacji, w którym łączysz jedno urządzenie z centrum IoT Hub. W przypadku aprowizacji ręcznej dostępne są dwie opcje uwierzytelniania urządzeń usługi IoT Edge:

  • Klucze symetryczne: podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub usługa tworzy dwa klucze. Umieszczasz jeden z kluczy na urządzeniu i przedstawia klucz do usługi IoT Hub podczas uwierzytelniania.

    Ta metoda uwierzytelniania jest szybsza, aby rozpocząć pracę, ale nie jest tak bezpieczna.

  • Podpis własny X.509: Tworzysz dwa certyfikaty tożsamości X.509 i umieszczasz je na urządzeniu. Podczas tworzenia nowej tożsamości urządzenia w usłudze IoT Hub podajesz odciski palca z obu certyfikatów. Gdy urządzenie uwierzytelnia się w usłudze IoT Hub, przedstawia jeden certyfikat, a usługa IoT Hub sprawdza, czy certyfikat jest zgodny z jego odciskiem palca.

    Ta metoda uwierzytelniania jest bezpieczniejsza i zalecana w scenariuszach produkcyjnych.

W tym artykule opisano używanie kluczy symetrycznych jako metody uwierzytelniania. Jeśli chcesz używać certyfikatów X.509, zobacz Tworzenie i aprowizowanie usługi IoT Edge dla systemu Linux na urządzeniu z systemem Windows przy użyciu certyfikatów X.509.

Uwaga

Jeśli masz wiele urządzeń do skonfigurowania i nie chcesz ręcznie aprowizować poszczególnych urządzeń, skorzystaj z jednego z następujących artykułów, aby dowiedzieć się, jak usługa IoT Edge współpracuje z usługą aprowizacji urządzeń usługi IoT Hub:

Wymagania wstępne

W tym artykule opisano rejestrowanie urządzenia usługi IoT Edge i instalowanie usługi IoT Edge dla systemu Linux w systemie Windows. Te zadania mają różne wymagania wstępne i narzędzia używane do ich wykonania. Przed kontynuowaniem upewnij się, że zostały spełnione wszystkie wymagania wstępne.

Narzędzia do zarządzania urządzeniami

Aby wykonać kroki rejestrowania urządzenia, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure. Każde narzędzie ma własne wymagania wstępne lub może być konieczne zainstalowanie:

Bezpłatne lub standardowe centrum IoT w ramach subskrypcji platformy Azure.

Wymagania dotyczące urządzenia

Urządzenie z systemem Windows z następującymi minimalnymi wymaganiami:

  • Wymagania systemowe

    • Windows 101/11 (Pro, Enterprise, IoT Enterprise)
    • Windows Server 20191/2022
      1 Windows 10 i Windows Server 2019 minimalna kompilacja 17763 z zainstalowanymi wszystkimi bieżącymi aktualizacjami zbiorczymi.
  • Wymagania sprzętowe

    • Minimalna ilość wolnej pamięci: 1 GB
    • Minimalna ilość wolnego miejsca na dysku: 10 GB
  • Obsługa wirtualizacji

  • Obsługa sieci

    • System Windows Server nie jest wyposażony w przełącznik domyślny. Przed wdrożeniem platformy EFLOW na urządzeniu z systemem Windows Server należy utworzyć przełącznik wirtualny. Aby uzyskać więcej informacji, zobacz Tworzenie przełącznika wirtualnego dla systemu Linux w systemie Windows.
    • Wersje programu Windows Desktop są dostarczane z przełącznikiem domyślnym, który może być używany do instalacji systemu EFLOW. W razie potrzeby możesz utworzyć własny niestandardowy przełącznik wirtualny.

Napiwek

Jeśli chcesz użyć modułów z przyspieszonym procesorem GPU systemu Linux w usłudze Azure IoT Edge dla systemu Linux we wdrożeniu systemu Windows, należy rozważyć kilka opcji konfiguracji.

Konieczne będzie zainstalowanie odpowiednich sterowników w zależności od architektury procesora GPU i może być konieczne uzyskanie dostępu do kompilacji niejawnego programu testów systemu Windows. Aby określić wymagania konfiguracyjne i spełnić te wymagania wstępne, zobacz Przyspieszanie procesora GPU dla usługi Azure IoT Edge dla systemu Linux w systemie Windows.

Upewnij się, że nadszedł czas, aby spełnić wymagania wstępne dotyczące przyspieszania procesora GPU. Jeśli zdecydujesz się na przyspieszenie procesora GPU podczas instalacji, konieczne będzie ponowne uruchomienie procesu instalacji.

Narzędzia deweloperskie

Przygotuj urządzenie docelowe do instalacji usługi Azure IoT Edge dla systemu Linux w systemie Windows i wdrożenia maszyny wirtualnej z systemem Linux:

  1. Ustaw zasady wykonywania na urządzeniu docelowym na wartość AllSigned. Bieżące zasady wykonywania można sprawdzić w wierszu polecenia programu PowerShell z podwyższonym poziomem uprawnień przy użyciu następującego polecenia:

    Get-ExecutionPolicy -List
    

    Jeśli zasady wykonywania elementu local machine nie AllSignedsą , można ustawić zasady wykonywania przy użyciu:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    

Aby uzyskać więcej informacji na temat modułu Azure IoT Edge dla systemu Linux w programie Windows PowerShell, zobacz dokumentację funkcji programu PowerShell.

Rejestrowanie własnego urządzenia

Aby zarejestrować urządzenie, w zależności od preferencji, możesz użyć witryny Azure Portal, programu Visual Studio Code lub interfejsu wiersza polecenia platformy Azure.

W centrum IoT w witrynie Azure Portal urządzenia usługi IoT Edge są tworzone i zarządzane oddzielnie od urządzeń IoT, które nie są włączone na urządzeniach brzegowych.

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

  2. W okienku po lewej stronie wybierz pozycję Urządzenia z menu, a następnie wybierz pozycję Dodaj urządzenie.

  3. Na stronie Tworzenie urządzenia podaj następujące informacje:

    • Utwórz opisowy identyfikator urządzenia, na przykład my-edge-device-1 (wszystkie małe litery). Skopiuj ten identyfikator urządzenia, ponieważ będzie on używany później.
    • Zaznacz pole wyboru Urządzenie usługi IoT Edge.
    • Wybierz pozycję Klucz symetryczny jako typ uwierzytelniania.
    • Użyj ustawień domyślnych, aby automatycznie wygenerować klucze uwierzytelniania, które łączą nowe urządzenie z centrum.
  4. Wybierz pozycję Zapisz.

Nowe urządzenie powinno zostać wyświetlone w centrum IoT Hub.

Po zarejestrowaniu urządzenia w usłudze IoT Hub możesz pobrać informacje dotyczące aprowizacji używane do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge w następnym kroku.

Wyświetlanie zarejestrowanych urządzeń i pobieranie informacji o aprowizacji

Urządzenia korzystające z uwierzytelniania klucza symetrycznego wymagają parametry połączenia do ukończenia instalacji i aprowizacji środowiska uruchomieniowego usługi IoT Edge. Parametry połączenia jest generowany dla urządzenia usługi IoT Edge podczas tworzenia urządzenia. W przypadku programu Visual Studio Code i interfejsu wiersza polecenia platformy Azure parametry połączenia znajduje się w danych wyjściowych JSON. Jeśli używasz witryny Azure Portal do tworzenia urządzenia, możesz znaleźć parametry połączenia z samego urządzenia. Po wybraniu urządzenia w centrum IoT Hub zostanie ono wyświetlone jako Primary connection string na stronie urządzenia.

Urządzenia z obsługą krawędzi, które łączą się z centrum IoT Hub, są wyświetlane na stronie Urządzenia centrum IoT Hub. Jeśli masz wiele urządzeń, możesz filtrować listę, wybierając typ Urządzenia usługi Iot Edge, a następnie wybierz pozycję Zastosuj.

Gdy wszystko będzie gotowe do skonfigurowania urządzenia, potrzebujesz parametry połączenia, który łączy urządzenie fizyczne z jego tożsamością w centrum IoT. Urządzenia uwierzytelnione za pomocą kluczy symetrycznych mają dostępne parametry połączenia do kopiowania w portalu. Aby znaleźć parametry połączenia w portalu:

  1. Na stronie Urządzenia wybierz z listy identyfikator urządzenia usługi IoT Edge.
  2. Skopiuj wartość ciągu Połączenie podstawowego lub pomocniczego ciągu Połączenie ion. Dowolny klucz będzie działać.

Instalowanie usługi IoT Edge

Wdróż usługę Azure IoT Edge dla systemu Linux w systemie Windows na urządzeniu docelowym.

Uwaga

W poniższym procesie programu PowerShell opisano sposób wdrażania usługi IoT Edge dla systemu Linux na urządzeniu lokalnym. Aby wdrożyć na zdalnym urządzeniu docelowym przy użyciu programu PowerShell, możesz użyć zdalnego programu PowerShell do nawiązania połączenia z urządzeniem zdalnym i zdalnie uruchomić te polecenia na tym urządzeniu.

  1. W sesji programu PowerShell z podwyższonym poziomem uprawnień uruchom jedną z następujących poleceń w zależności od architektury urządzenia docelowego, aby pobrać usługę IoT Edge dla systemu Linux w systemie Windows.

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  2. Zainstaluj usługę IoT Edge dla systemu Linux w systemie Windows na urządzeniu.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    

    Niestandardową usługę IoT Edge dla systemu Linux można określić w katalogach instalacji systemu Windows i VHDX, dodając INSTALLDIR="<FULLY_QUALIFIED_PATH>" parametry i VHDXDIR="<FULLY_QUALIFIED_PATH>" do polecenia instalacji. Jeśli na przykład chcesz użyć folderu D:\EFLOW do instalacji i D:\EFLOW-VHDX dla dysku VHDX, możesz użyć następującego polecenia cmdlet programu PowerShell.

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn","INSTALLDIR=D:\EFLOW", "VHDXDIR=D:\EFLOW-VHDX"
    
  3. Ustaw zasady wykonywania na urządzeniu docelowym na AllSigned wartość , jeśli jeszcze nie jest. Zobacz wymagania wstępne programu PowerShell dla poleceń, aby sprawdzić bieżące zasady wykonywania i ustawić zasady wykonywania na AllSigned.

  4. Utwórz usługę IoT Edge dla systemu Linux we wdrożeniu systemu Windows. Wdrożenie tworzy maszynę wirtualną z systemem Linux i instaluje środowisko uruchomieniowe usługi IoT Edge.

    Deploy-Eflow
    

    Napiwek

    Domyślnie Deploy-Eflow polecenie tworzy maszynę wirtualną z systemem Linux z 1 GB pamięci RAM, 1 rdzeniem procesorów wirtualnych i 16 GB miejsca na dysku. Jednak zasoby wymagane przez maszynę wirtualną są bardzo zależne od wdrożonych obciążeń. Jeśli maszyna wirtualna nie ma wystarczającej ilości pamięci do obsługi obciążeń, uruchomienie nie powiedzie się.

    Dostępne zasoby maszyny wirtualnej można dostosować przy użyciu Deploy-Eflow opcjonalnych parametrów polecenia. Jest to wymagane do wdrożenia rozwiązania EFLOW na urządzeniu z minimalnymi wymaganiami sprzętowymi.

    Na przykład poniższe polecenie tworzy maszynę wirtualną z 1 rdzeniem procesorów wirtualnych, 1 GB pamięci RAM (reprezentowanym w MB) i 2 GB miejsca na dysku:

    Deploy-Eflow -cpuCount 1 -memoryInMB 1024 -vmDataSize 2
    

    Aby uzyskać informacje o wszystkich dostępnych parametrach opcjonalnych, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.

    Ostrzeżenie

    Domyślnie maszyna wirtualna EFLOW z systemem Linux nie ma konfiguracji DNS. Wdrożenia korzystające z protokołu DHCP spróbują uzyskać konfigurację DNS propagowaną przez serwer DHCP. Sprawdź konfigurację dns, aby upewnić się, że łączność z Internetem. Aby uzyskać więcej informacji, zobacz AzEFLOW-DNS.

    Procesor GPU można przypisać do wdrożenia, aby umożliwić moduły z przyspieszonym procesorem GPU dla systemu Linux. Aby uzyskać dostęp do tych funkcji, należy zainstalować wymagania wstępne opisane w artykule Przyspieszanie procesora GPU dla usługi Azure IoT Edge dla systemu Linux w systemie Windows.

    Aby użyć przekazywania procesora GPU, dodaj parametry gpuName, gpuPassthroughType i gpuCount do polecenia Deploy-Eflow . Aby uzyskać informacje o wszystkich dostępnych parametrach opcjonalnych, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.

    Ostrzeżenie

    Włączenie przekazywania urządzeń sprzętowych może zwiększyć ryzyko bezpieczeństwa. Firma Microsoft zaleca sterownik ograniczania ryzyka urządzenia od dostawcy procesora GPU, jeśli ma to zastosowanie. Aby uzyskać więcej informacji, zobacz Wdrażanie urządzeń graficznych przy użyciu dyskretnego przypisania urządzenia.

  5. Wprowadź wartość "Y", aby zaakceptować postanowienia licencyjne.

  6. W zależności od preferencji wprowadź wartość "O" lub "R", aby włączyć lub wyłączyć opcjonalne dane diagnostyczne.

  7. Po zakończeniu wdrażania okno programu PowerShell zgłasza pomyślne wdrożenie.

    A successful deployment will say 'Deployment successful' at the end of the messages, PNG.

    Po pomyślnym wdrożeniu możesz przystąpić do aprowizowania urządzenia.

Aprowizuj urządzenie przy użyciu tożsamości w chmurze

Wszystko jest gotowe do skonfigurowania urządzenia przy użyciu informacji o tożsamości w chmurze i uwierzytelniania.

Aby aprowizować urządzenie przy użyciu kluczy symetrycznych, potrzebne będą parametry połączenia urządzenia.

Uruchom następujące polecenie w sesji programu PowerShell z podwyższonym poziomem uprawnień na urządzeniu docelowym. Zastąp tekst zastępczy własnymi wartościami.

Provision-EflowVm -provisioningType ManualConnectionString -devConnString "PASTE_DEVICE_CONNECTION_STRING_HERE"

Aby uzyskać więcej informacji na temat Provision-EflowVM polecenia, zobacz Funkcje programu PowerShell dla usługi IoT Edge dla systemu Linux w systemie Windows.

Weryfikowanie pomyślnej konfiguracji

Sprawdź, czy usługa IoT Edge dla systemu Linux w systemie Windows została pomyślnie zainstalowana i skonfigurowana na urządzeniu usługi IoT Edge.

  1. Zaloguj się do usługi IoT Edge dla systemu Linux na maszynie wirtualnej z systemem Windows przy użyciu następującego polecenia w sesji programu PowerShell:

    Connect-EflowVm
    

    Uwaga

    Jedynym kontem dozwolonym przez protokół SSH na maszynie wirtualnej jest użytkownik, który go utworzył.

  2. Po zalogowaniu się możesz sprawdzić listę uruchomionych modułów usługi IoT Edge przy użyciu następującego polecenia systemu Linux:

    sudo iotedge list
    
  3. Jeśli musisz rozwiązać problemy z usługą IoT Edge, użyj następujących poleceń systemu Linux.

    1. Pobierz dzienniki usługi.

      sudo iotedge system logs
      
    2. check Użyj narzędzia , aby zweryfikować konfigurację i stan połączenia urządzenia.

      sudo iotedge check
      

    Uwaga

    Na nowo aprowizowanych urządzeniach może zostać wyświetlony błąd związany z usługą IoT Edge Hub:

    × gotowości produkcyjnej: katalog magazynu usługi Edge Hub jest utrwalany w systemie plików hosta — błąd

    Nie można sprawdzić bieżącego stanu kontenera edgeHub

    Ten błąd jest oczekiwany na nowo zaaprowizowanych urządzeniach, ponieważ moduł usługi IoT Edge Hub nie jest uruchomiony. Aby rozwiązać ten problem, w usłudze IoT Hub ustaw moduły dla urządzenia i utwórz wdrożenie. Utworzenie wdrożenia urządzenia powoduje uruchomienie modułów na urządzeniu, w tym modułu usługi IoT Edge Hub.

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.

Odinstalowywanie usługi IoT Edge dla systemu Linux w systemie Windows

Jeśli chcesz usunąć instalację usługi Azure IoT Edge dla systemu Linux z urządzenia, użyj następujących poleceń.

  1. Otwieranie Ustawienia w systemie Windows
  2. Wybierz pozycję Dodaj lub usuń programy
  3. Wybieranie aplikacji usługi Azure IoT Edge
  4. Wybierz pozycję Odinstaluj

Następne kroki