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
Ważne
Obsługiwane są wersje usługi Azure IoT Edge 1.5 LTS i IoT Edge 1.4. Usługa IoT Edge 1.4 LTS zbliża się do końca usługi 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz Aktualizacja usługi 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
- W systemie Windows 10 włącz funkcję Hyper-V. Aby uzyskać więcej informacji, zobacz Instalowanie funkcji Hyper-V w systemie Windows 10.
- W systemie Windows Server zainstaluj rolę funkcji Hyper-V i utwórz domyślny przełącznik sieciowy. Aby uzyskać więcej informacji, zobacz Wirtualizacja zagnieżdżona dla usługi Azure IoT Edge dla systemu Linux w systemie Windows.
- Na maszynie wirtualnej skonfiguruj wirtualizację zagnieżdżonych. Aby uzyskać więcej informacji, zobacz wirtualizacja zagnieżdżona.
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:
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
nieAllSigned
są , 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.
Zaloguj się do witryny Azure Portal i przejdź do centrum IoT Hub.
W okienku po lewej stronie wybierz pozycję Urządzenia z menu, a następnie wybierz pozycję Dodaj urządzenie.
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.
- Utwórz opisowy identyfikator urządzenia, na przykład
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:
- Na stronie Urządzenia wybierz z listy identyfikator urządzenia usługi IoT Edge.
- Skopiuj wartość podstawowych parametrów połączenia lub pomocniczych parametrów połączenia. Dowolny klucz 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.
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
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 iVHDXDIR="<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"
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 naAllSigned
.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 następujące 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.
Wprowadź wartość "Y", aby zaakceptować postanowienia licencyjne.
W zależności od preferencji wprowadź wartość "O" lub "R", aby włączyć lub wyłączyć opcjonalne dane diagnostyczne.
Po zakończeniu wdrażania okno programu PowerShell zgłasza pomyślne wdrożenie.
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, potrzebujesz 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.
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ł.
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
Jeśli musisz rozwiązać problemy z usługą IoT Edge, użyj następujących poleceń systemu Linux.
Pobierz dzienniki usługi.
sudo iotedge system logs
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ń.
- Otwórz ustawienia w systemie Windows
- Wybierz pozycję Dodaj lub usuń programy
- Wybieranie aplikacji usługi Azure IoT Edge
- Wybierz pozycję Odinstaluj
Następne kroki
- Kontynuuj wdrażanie modułów usługi IoT Edge, aby dowiedzieć się, jak wdrażać moduły na urządzeniu.
- Dowiedz się, jak zarządzać certyfikatami w usłudze IoT Edge dla systemu Linux na maszynie wirtualnej z systemem operacyjnym Windows i transferować pliki z systemu operacyjnego hosta do maszyny wirtualnej z systemem Linux.
- Dowiedz się, jak skonfigurować urządzenia usługi IoT Edge do komunikacji za pośrednictwem serwera proxy.