Cvičení – nasazení imagí DeepStream napříč platformami do vložených zařízení NVIDIA pomocí Azure IoT Edge
Publikovali jste kontejnerizovanou úlohu DeepStream Graph Composer do registru kontejneru a zřídili jste zařízení NVIDIA Jetson embedded pomocí modulu runtime IoT Edge. Teď jste připraveni vytvořit ve svém centru specifikaci nasazení, která spustí úlohu jako modul IoT Edge.
Na webu Azure Portal přejděte do centra IoT, které jste vytvořili na začátku tohoto modulu. V nabídce vlevo v části Automatické Správa zařízení vyberte IoT Edge. Vyhledejte zaregistrované zařízení.
Pokud chcete zobrazit podrobnosti o aktuální konfiguraci, vyberte název zařízení:
Výběrem karty Nastavit moduly otevřete editor modulů:
Musíte zadat odpovídající přihlašovací údaje služby Container Registry, aby vaše zařízení NVIDIA Embedded mohl načíst úlohy kontejneru z registru kontejneru.
V samostatném okně prohlížeče přejděte do registru kontejneru na webu Azure Portal:
V nabídce vlevo v části Nastavení vyberte Přístupové klíče. V přístupových klíčích si poznamenejte hodnoty přihlašovacího serveru, uživatelského jména a hesla. Tyto hodnoty použijete v dalším kroku.
Vraťte se do okna prohlížeče, které je otevřené pro nastavení modulů. V části Přihlašovací údaje služby Container Registry zadejte hodnoty z přístupových klíčů registru kontejneru. Pomocí těchto přihlašovacích údajů může jakékoli zařízení, které tuto specifikaci modulu použije, bezpečně načíst úlohy kontejneru z registru kontejneru v Azure.
V dalším kroku nakonfigurujete vlastní modul IoT Edge jako součást specifikace nasazení. V části Moduly IoT Edge podokna Moduly vyberte Přidat>modul IoT Edge:
V části Přidat modul IoT Edge zadejte do názvu modulu IoT Edge název modulu deepstream_test4_jetson. V identifikátoru URI obrázku zadejte <přihlašovací server>/deepstream_test4_jetson:v1. Pro <přihlašovací server> použijte adresu URL registru kontejneru.
Dále vyberte kartu Možnosti vytvoření kontejneru, abyste povolili podporu akcelerace GPU, a také pokud chcete poskytnout přístup k soketu X11, aby bylo možné vykreslovat výstup videa z kontejneru přidáním následujících položek:
{ "NetworkingConfig": { "EndpointsConfig": { "host": {} } }, "HostConfig": { "DeviceRequests": [ { "Count": -1, "Capabilities": [ [ "gpu" ] ] } ], "NetworkMode": "host", "Binds": [ "/tmp/.X11-unix/:/tmp/.X11-unix/", "/tmp/argus_socket:/tmp/argus_socket" ] } }
Až budete hotovi, vyberte Aktualizovat:
Jakmile vyberete Zkontrolovat a vytvořit, vrátíte se na stránku Nastavit moduly na stránce zařízení:
V textovém poli Nasazení se zobrazí specifikace nasazení, kterou chcete odeslat do zařízení. Ověřte, že obsah vypadá podobně jako v tomto příkladu:
{ "modulesContent": { "$edgeAgent": { "properties.desired": { "modules": { "deepstream_test4_jetson": { "settings": { "image": "<Login Server>.azurecr.io/deepstream_test4_jetson:v1", "createOptions": "{\"NetworkingConfig\":{\"EndpointsConfig\":{\"host\":{}}},\"HostConfig\":{\"DeviceRequests\":[{\"Count\":-1,\"Capabilities\":[[\"gpu\"]]}],\"NetworkMode\":\"host\",\"Binds\":[\"/tmp/.X11-unix/:/tmp/.X11-unix/\",\"/tmp/argus_socket:/tmp/argus_socket\"]}}" }, "type": "docker", "version": "1.0", "env": { "DISPLAY": { "value": ":0" } }, "status": "running", "restartPolicy": "always" } }, "runtime": { "settings": { "minDockerVersion": "v1.25", "registryCredentials": { "<Your Registry Name>": { "address": "<Login Server>.azurecr.io", "password": "<Your Password>", "username": "<Your Username>" } } }, "type": "docker" }, "schemaVersion": "1.1", "systemModules": { "edgeAgent": { "settings": { "image": "mcr.microsoft.com/azureiotedge-agent:1.1", "createOptions": "" }, "type": "docker" }, "edgeHub": { "settings": { "image": "mcr.microsoft.com/azureiotedge-hub:1.1", "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}" }, "type": "docker", "status": "running", "restartPolicy": "always" } } } }, "$edgeHub": { "properties.desired": { "routes": { "route": "FROM /messages/* INTO $upstream" }, "schemaVersion": "1.1", "storeAndForwardConfiguration": { "timeToLiveSecs": 7200 } } }, "deepstream_test4_jetson": { "properties.desired": {} } } }
Ověřte, že je konfigurace nasazení správná, a pak výběrem možnosti Vytvořit spusťte proces nasazení:
Pokud chcete ověřit, že nasazení proběhlo úspěšně, spusťte v terminálu na vloženém zařízení NVIDIA následující příkazy:
sudo iotedge list
Ověřte, že výstup zobrazuje stav
running
proedgeAgent
edgeHub
, adeepstream_test4_jetson
moduly.Pokud je vaše zařízení připojené k displeji, měli byste vidět vizualizovaný výstup aplikace DeepStream Graph Composer, například v tomto příkladu:
Monitorujte výstup
deepstream_test4_jetson
modulu spuštěním následujícího příkazu v terminálu na vloženém zařízení NVIDIA Jetson:sudo docker logs -f deepstream_test4_jetson
Každé několik sekund zařízení odesílá telemetrii do svého registrovaného centra ve službě Azure IoT Hub. Zobrazí se zpráva, která vypadá jako v následujícím příkladu:
Message sent : { "version" : "4.0", "id" : 1440, "@timestamp" : "2021-09-21T03:08:51.161Z", "sensorId" : "sensor-0", "objects" : [ "-1|570|478.37|609|507.717|Vehicle|#|sedan|Bugatti|M|blue|XX1234|CA|-0.1" ] }
Stav spuštěných modulů na webu Azure Portal můžete potvrdit tak, že se vrátíte do přehledu zařízení pro vaše zařízení IoT Edge. Měli byste vidět následující moduly a přidružené stavy uvedené pro vaše zařízení:
V podokně přehledu služby IoT Hub můžete také potvrdit, že zprávy přicházejí do centra z vašeho zařízení. Měli byste si všimnout zvýšení počtu zpráv:
Gratulujeme! Úspěšně jste vyvinuli produkční hraniční nasazení úlohy DeepStream Graph Composer a nasadili ho do skutečného zařízení pomocí Azure IoT Edge.
Vyzkoušejte toto
Jak můžete pomocí strategií popsaných v tomto modulu upravit existující referenční graf DeepStream tak, aby podporoval řešení ochrany volně žijících zvířat, které počítá jedinečné výskyty ohrožených druhů pomocí živých kanálů kamery? Které komponenty byste potřebovali upravit pro podporu tohoto řešení? Potřebujete provést nějaké změny celkové strategie nasazení?