Wdrażanie maszyny wirtualnej z systemem Linux z obsługą usługi IoT Edge
Aby przetestować konfigurację usługi IoT Edge, należy wdrożyć środowisko uruchomieniowe usługi IoT Edge na maszynie wirtualnej.
Przed wdrożeniem urządzeń usługi IoT Edge w sklepach należy sprawdzić, czy urządzenia działają zgodnie z oczekiwaniami. Aby przetestować swój scenariusz, planujesz wdrożyć środowisko uruchomieniowe usługi IoT Edge na maszynie wirtualnej z systemem Linux platformy Azure, a następnie wdrożyć moduły usługi IoT Edge na tej maszynie wirtualnej.
W tym miejscu zapoznasz się z podstawowymi pojęciami dotyczącymi usługi IoT Edge, dowiesz się, jak urządzenie usługi IoT Edge łączy się z aplikacją usługi Azure IoT Central oraz jak usługa Azure IoT Central wdraża moduły usługi IoT Edge w środowisku uruchomieniowym usługi IoT Edge.
Co to jest środowisko uruchomieniowe usługi IoT Edge?
Środowisko uruchomieniowe usługi Azure IoT Edge umożliwia stosowanie logiki niestandardowej i logiki w chmurze na urządzeniach usługi IoT Edge. Środowisko uruchomieniowe znajduje się na urządzeniu usługi IoT Edge i wykonuje operacje zarządzania i komunikacji. Środowisko uruchomieniowe:
Instaluje i aktualizuje obciążenia na urządzeniu.
Zapewnia zachowanie standardów zabezpieczeń usługi Azure IoT Edge na urządzeniu.
Zapewnia nieprzerwane działanie modułów usługi IoT Edge.
Przesyła raporty o kondycji modułów do chmury na potrzeby zdalnego monitorowania.
Zarządza komunikacją między:
- Urządzenia podrzędne i urządzenie usługi IoT Edge
- Moduły na urządzeniu usługi IoT Edge
- Urządzenie usługi IoT Edge i chmura
- Urządzenia usługi IoT Edge
Co to są moduły usługi IoT Edge?
Moduły usługi IoT Edge to jednostki wykonywania, które uruchamiają logikę biznesową na brzegu sieci. Moduły są implementowane jako kontenery zgodne z platformą Docker. Wiele modułów można skonfigurować do komunikowania się ze sobą, tworząc potok przetwarzania danych. Aby zapewnić szczegółowe informacje w trybie offline i na urządzeniach brzegowych, możesz opracować moduły niestandardowe lub spakować niektóre usługi platformy Azure w moduły. Ponieważ moduły działają w kontenerach platformy Docker, zachowują się w taki sam sposób, jak na maszynie wirtualnej lub na urządzeniu fizycznym.
W następnej lekcji zainstalujesz środowisko uruchomieniowe usługi IoT Edge i wdrożysz niestandardowy moduł zbierający dane środowiskowe wysyłane do usługi Azure IoT Central. Operator usługi Azure IoT Central może następnie monitorować warunki środowiskowe w sklepach, wyświetlając dane telemetryczne na pulpitach nawigacyjnych w aplikacji.
Jak urządzenie usługi IoT Edge łączy się z usługą Azure IoT Central?
Urządzenia usługi IoT Edge, takie jak inne urządzenia, używają usługi IoT Hub Device Provisioning Service (DPS) do łączenia się z aplikacją usługi Azure IoT Central. W poprzedniej lekcji po dodaniu urządzenia do aplikacji usługi Azure IoT Central zanotujesz identyfikator zakresu i klucz urządzenia. Te wartości są dodawane do pliku konfiguracji usługi IoT Edge na urządzeniu usługi IoT Edge. Odpowiednia sekcja tego pliku TOML wygląda następująco. Jest registration_id
to identyfikator urządzenia:
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"
[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }
W następnej lekcji skrypt wdrożenia używany dla urządzenia usługi IoT Edge edytuje plik konfiguracji.
Jak usługa Azure IoT Central wdraża moduły w środowisku uruchomieniowym usługi IoT Edge?
W poprzedniej lekcji po utworzeniu szablonu urządzenia dla czujnika środowiskowego przekazano manifest wdrożenia do szablonu. Gdy środowisko uruchomieniowe usługi IoT Edge łączy się z aplikacją usługi Azure IoT Central, pobiera manifest wdrożenia. Środowisko uruchomieniowe używa informacji w manifeście wdrożenia, aby określić, które moduły mają zostać zainstalowane i jak je skonfigurować. Moduły są pobierane z rejestru kontenerów, takiego jak Usługa Azure Container Registry lub Docker Hub.
Użyty manifest wdrożenia instaluje dwa wymagane moduły systemowe i edgeAgent
edgeHub
, oraz moduł niestandardowy SimulatedTemperatureSensor
. Ten moduł niestandardowy wysyła dane telemetryczne otoczenia i maszyny do usługi Azure IoT Central i ma dwie właściwości: SendData i SendInterval, których operator może użyć do skonfigurowania modułu:
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}