Eszközök csatlakoztatása transzparens IoT Edge-átjárón keresztül
Az IoT Edge-eszközök átjáróként működhetnek, amely kapcsolatot biztosít a helyi hálózaton lévő többi eszköz és az IoT Central-alkalmazás között. Átjárót akkor használ, ha az eszköz nem tud közvetlenül hozzáférni az IoT Central-alkalmazáshoz.
Az IoT Edge támogatja a transzparens és a fordítási átjáró mintáit. Ez a cikk a transzparens átjáróminta implementálását foglalja össze. Ebben a mintában az átjáró továbbít üzeneteket az alsóbb rétegbeli eszközről az IoT Hub-végpontra az IoT Central-alkalmazásban. Az átjáró nem módosítja az üzeneteket, miközben áthaladnak. Az IoT Centralban minden alsóbb rétegbeli eszköz gyermekként jelenik meg az átjáróeszközhöz:
Fontos
Ez a cikk az eszközök közös hozzáférésű jogosultságkóddal, más néven szimmetrikus kulcshitelesítéssel való csatlakoztatásának lépéseit tartalmazza. Ez a hitelesítési módszer alkalmas tesztelésre és kiértékeléshez, de az eszköz hitelesítése X.509-tanúsítványokkal biztonságosabb módszer. További információkért tekintse meg a kapcsolatbiztonság ajánlott biztonsági eljárásait>.
Az egyszerűség kedvéért ez a cikk virtuális gépeket használ az alsóbb rétegbeli és az átjáróeszközök üzemeltetéséhez. Valós esetben az alsóbb rétegbeli eszköz és az átjáró a helyi hálózaton lévő fizikai eszközökön futna.
Ez a cikk bemutatja, hogyan implementálhatja a forgatókönyvet az IoT Edge 1.4-futtatókörnyezet használatával.
Előfeltételek
A cikkben ismertetett lépések végrehajtásához a következőkre van szükség:
Aktív Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Az egyéni alkalmazássablonból létrehozott IoT Central-alkalmazás. További információ: IoT Central-alkalmazás létrehozása.
A cikk lépéseinek követéséhez töltse le a következő fájlokat a számítógépre:
- Termosztátos eszközmodell (thermostat-1.json) – ez a fájl az alsóbb rétegbeli eszközök eszközmodellje.
- Transzparens átjárójegyzék (EdgeTransparentGatewayManifest.json) – ez a fájl az átjáróeszköz IoT Edge-telepítési jegyzékfájlja.
Üzembehelyezési jegyzék importálása
Minden IoT Edge-eszköznek szüksége van egy üzembehelyezési jegyzékre az IoT Edge-futtatókörnyezet konfigurálásához. Az IoT Edge transzparens átjáró üzembehelyezési jegyzékének importálása:
Navigáljon az Edge-jegyzékekhez.
Válassza az + Új lehetőséget, adja meg az üzembehelyezési jegyzék nevét, például az Átlátszó átjárót , majd töltse fel a korábban letöltött EdgeTransparentGatewayManifest.json fájlt.
Válassza a Létrehozás lehetőséget az üzembehelyezési jegyzék alkalmazásba való mentéséhez.
Eszközsablonok hozzáadása
Az alsóbb rétegbeli és az átjáróeszköz egyaránt használhat eszközsablonokat az IoT Centralban. Az IoT Central segítségével modellezheti az alsóbb rétegbeli eszközök és az átjáró közötti kapcsolatot, így a csatlakozás után megtekintheti és kezelheti őket. Nem szükséges eszközsablon ahhoz, hogy alsóbb rétegbeli eszközt csatoljon egy átjáróhoz.
Ha egy alsóbb rétegbeli eszközhöz szeretne eszközsablont létrehozni, hozzon létre egy szabványos eszközsablont, amely modellezi az eszköz képességeit. A cikkben bemutatott példa a letöltött termosztát-eszközmodellt használja.
Eszközsablon létrehozása egy alsóbb rétegbeli eszközhöz:
Hozzon létre egy eszközsablont, és válassza az IoT-eszközt sablontípusként.
A varázsló Testreszabás lapján adjon meg egy nevet, például termosztátot az eszközsablonhoz.
Az eszközsablon létrehozása után válassza a Modell importálása lehetőséget. Válasszon ki egy modellt, például a korábban letöltött thermostat-1.json fájlt.
A termosztát alapértelmezett nézeteinek létrehozásához válassza ki a nézeteket, majd válassza az Alapértelmezett nézetek létrehozása lehetőséget.
Tegye közzé az eszközsablont.
Eszközsablon létrehozása egy átlátszó IoT Edge-átjáróeszközhöz:
Hozzon létre egy eszközsablont, és válassza az Azure IoT Edge-et sablontípusként.
A varázsló Testreszabás lapján adjon meg egy nevet, például az eszközsablon Edge Gateway-átjáróját.
A varázsló Testreszabás lapján jelölje be az Átjáróeszköz jelölőnégyzetet.
A Véleményezés lapon válassza a Létrehozás lehetőséget.
A Modell létrehozása lapon válassza az Egyéni modell lehetőséget.
Adjon hozzá egy bejegyzést a Kapcsolatok területen az alsóbb rétegbeli eszközsablonhoz.
Az alábbi képernyőképen egy IoT Edge-átjáróeszköz Kapcsolatok lapja látható a Termosztát-eszközsablont használó alsóbb rétegbeli eszközökkel:
Az előző képernyőképen egy IoT Edge-átjáró eszközsablonja látható, amely nem definiált modulokat. A transzparens átjárók nem igényelnek modulokat, mert az IoT Edge-futtatókörnyezet közvetlenül az IoT Central felé továbbítja az alsóbb rétegbeli eszközökről érkező üzeneteket. Ha az átjárónak telemetriát kell küldenie, tulajdonságokat kell szinkronizálnia vagy parancsokat kell kezelnie, ezeket a képességeket a gyökérösszetevőben vagy egy modulban határozhatja meg.
Az átjáró és az alsóbb rétegbeli eszközsablonok közzététele előtt adja hozzá a szükséges felhőtulajdonságokat és nézeteket.
Az eszközök hozzáadása
Amikor hozzáadja az eszközöket az IoT Central-alkalmazáshoz, meghatározhatja az alsóbb rétegbeli eszközök és a transzparens átjáró közötti kapcsolatot.
Az eszközök hozzáadása:
Lépjen az IoT Central-alkalmazásban az eszközök lapjára.
Adja hozzá a transzparens átjáró IoT Edge-eszközének egy példányát. Az eszköz hozzáadásakor győződjön meg arról, hogy a transzparens átjáró üzembehelyezési jegyzékét választja. Ebben a cikkben az átjáró eszközazonosítója.
edgegateway
Adja hozzá az alsóbb rétegbeli eszköz egy vagy több példányát. Ebben a cikkben az alsóbb rétegbeli eszközök azonosítókkal és
thermostat1
thermostat2
.Az eszközlistában jelölje ki az egyes alsóbb rétegbeli eszközöket, és válassza a Csatolás az átjáróhoz lehetőséget.
Az alábbi képernyőképen megtekintheti az átjáróhoz csatolt eszközök listáját az Alsóbb rétegbeli eszközök lapon:
Egy transzparens átjáróban az alsóbb rétegbeli eszközök magukhoz az átjáróhoz csatlakoznak, nem pedig az átjáró által üzemeltetett egyéni modulhoz.
Az eszközök üzembe helyezése előtt a következőkre van szüksége:
- Az IoT Central-alkalmazás azonosítójának hatóköre .
- Az átjáró és az alsóbb rétegbeli eszközök eszközazonosító-értékei .
- Az átjáró és az alsóbb rétegbeli eszközök elsődleges kulcsértékei .
Az értékek megkereséséhez keresse meg az eszközlistában szereplő összes eszközt, és válassza a Csatlakozás lehetőséget. A folytatás előtt jegyezze fel ezeket az értékeket.
Tipp.
Csatlakoztathatja az eszközöket, és kapcsolatokat hozhat létre anélkül, hogy először eszközsablonokat hoz létre az eszközökhöz. Hozzárendeletlen alsóbb rétegbeli eszközt csatolhat egy nem hozzárendelt átjáróeszközhöz.
Az átjáró és az eszközök üzembe helyezése
A forgatókönyv kipróbálásához az alábbi lépések bemutatják, hogyan helyezheti üzembe az átjárót és az alsóbb rétegbeli eszközöket az Azure-beli virtuális gépeken.
Tipp.
Az IoT Edge-futtatókörnyezet fizikai eszközön való üzembe helyezéséről az IoT Edge-eszköz létrehozása az IoT Edge dokumentációjában olvashat.
A transzparens átjáró forgatókönyvének kipróbálásához kattintson az alábbi gombra két Linux rendszerű virtuális gép üzembe helyezéséhez. Egy virtuális gépre telepítve van az IoT Edge 1.4 futtatókörnyezet, és az átlátszó IoT Edge-átjáró. A másik virtuális gép egy alsóbb rétegbeli eszköz, ahol kód futtatásával szimulált termosztát telemetriát küldhet:
A két virtuális gép üzembe helyezése és futtatásakor ellenőrizze, hogy az IoT Edge-átjáróeszköz fut-e a edgegateway
virtuális gépen:
Nyissa meg az Eszközök lapot az IoT Central-alkalmazásban. Ha az IoT Edge-átjáróeszköz csatlakozik az IoT Centralhoz, az állapota ki van építve.
Nyissa meg az IoT Edge-átjáróeszközt, és ellenőrizze a modulok állapotát a Modulok lapon. Ha az IoT Edge-futtatókörnyezet sikeresen elindult, a $edgeAgent és $edgeHub modulok állapota fut:
Tipp.
Előfordulhat, hogy néhány percet kell várnia, amíg a virtuális gép elindul, és az eszköz ki van építve az IoT Central-alkalmazásban.
Az átjáró konfigurálása
Ahhoz, hogy az IoT Edge-eszköz transzparens átjáróként működjön, szüksége van néhány tanúsítványra, hogy igazolhassa identitását az alsóbb rétegbeli eszközökön. Ez a cikk demótanúsítványokat használ. Éles környezetben használjon tanúsítványokat a hitelesítésszolgáltatótól.
A demótanúsítványok létrehozásához és az átjáróeszközre való telepítéséhez:
Az SSH használatával csatlakozhat és bejelentkezhet az átjáróeszköz virtuális gépére.
Futtassa az alábbi parancsokat az IoT Edge-adattár klónozásához és a bemutató tanúsítványok létrehozásához:
# Clone the repo cd ~ git clone https://github.com/Azure/iotedge.git # Generate the demo certificates mkdir certs cd certs cp ~/iotedge/tools/CACertificates/*.cnf . cp ~/iotedge/tools/CACertificates/certGen.sh . ./certGen.sh create_root_and_intermediate ./certGen.sh create_edge_device_ca_certificate "mycacert"
Az előző parancsok futtatása után a következő fájlok használhatók a következő lépésekben:
- ~/certs/certs/azure-iot-test-only.root.ca.cert.pem – Az összes többi demótanúsítvány létrehozásához használt legfelső szintű hitelesítésszolgáltatói tanúsítvány egy IoT Edge-forgatókönyv teszteléséhez.
- ~/certs/certs/iot-edge-device-mycacert-full-chain.cert.pem – Az IoT Edge konfigurációs fájlból hivatkozott eszköz ca-tanúsítványa. Átjáróforgatókönyvekben ez a hitelesítésszolgáltatói tanúsítvány azt jelenti, hogy az IoT Edge-eszköz hogyan ellenőrzi az identitását az alsóbb rétegbeli eszközökön.
- ~/certs/private/iot-edge-device-mycacert.key.pem – Az eszköz hitelesítésszolgáltatói tanúsítványához társított titkos kulcs.
Ezekről a demótanúsítványokról további információt az IoT Edge eszközfunkcióinak teszteléséhez szükséges demótanúsítványok létrehozása című témakörben talál.
Nyissa meg a config.toml fájlt egy szövegszerkesztőben. Példa:
sudo nano /etc/aziot/config.toml
Keresse meg a következő beállításokat a konfigurációs fájlban. Adja hozzá a tanúsítványbeállításokat az alábbiak szerint:
trust_bundle_cert = "file:///home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem" [edge_ca] cert = "file:///home/AzureUser/certs/certs/iot-edge-device-ca-mycacert-full-chain.cert.pem" pk = "file:///home/AzureUser/certs/private/iot-edge-device-ca-mycacert.key.pem"
Az előző példa feltételezi, hogy AzureUserként van bejelentkezve, és létrehozott egy "mycacert" nevű eszköz CA-tanúsítványt.
Mentse a módosításokat, és indítsa újra az IoT Edge-futtatókörnyezetet:
sudo iotedge config apply
Ha az IoT Edge-futtatókörnyezet a módosítások után sikeresen elindul, a $edgeAgent és $edgeHub modulok állapota az IoT Central átjáróeszközének Modulok lapján futóra változik.
Ha a futtatókörnyezet nem indul el, ellenőrizze az IoT Edge konfigurációs fájljában végrehajtott módosításokat, és tekintse meg az IoT Edge-eszköz hibaelhárítását.
A transzparens átjáró most már konfigurálva van, és készen áll a telemetria továbbküldésére az alsóbb rétegbeli eszközökről.
Alsóbb rétegbeli eszköz kiépítése
Az IoT Central az Eszközkiépítési szolgáltatásra (DPS) támaszkodik az eszközök IoT Centralban való kiépítéséhez. Az IoT Edge jelenleg nem tudja használni a DPS-t egy alsóbb rétegbeli eszköz üzembe helyezéséhez az IoT Central-alkalmazáshoz. Az alábbi lépések bemutatják, hogyan építheti ki manuálisan az thermostat1
eszközt. Ezeknek a lépéseknek a elvégzéséhez olyan környezetre van szükség, amelyen telepítve van a Python és az internetkapcsolat. Tekintse meg az Azure IoT Python SDK aktuális Python-verziókövetelményeit. Az Azure Cloud Shell előre telepített Pythonnal rendelkezik:
Futtassa a következő parancsot a
azure.iot.device
modul telepítéséhez:pip install azure.iot.device
Futtassa a következő parancsot az eszköz kiépítését végzi Python-szkript letöltéséhez:
wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/provision_device.py
Az alsóbb rétegbeli eszköz IoT Central-alkalmazásban való kiépítéséhez
thermostat1
futtassa a következő parancsokat, cserélje le{your application id scope}
és{your device primary key}
. Ezeket az értékeket jegyezte fel, amikor hozzáadta az eszközöket az IoT Central-alkalmazáshoz:export IOTHUB_DEVICE_DPS_DEVICE_ID=thermostat1 export IOTHUB_DEVICE_DPS_ID_SCOPE={your application id scope} export IOTHUB_DEVICE_DPS_DEVICE_KEY={your device primary key} python provision_device.py
Az IoT Central-alkalmazásban ellenőrizze, hogy az eszköz eszközállapota thermostat1
ki van-e építve.
Alsóbb rétegbeli eszköz konfigurálása
Az előző szakaszban konfigurálta a edgegateway
virtuális gépet a demótanúsítványokkal, hogy az átjáróként fusson. A leafdevice
virtuális gép készen áll egy termosztátszimulátor telepítésére, amely az átjáróval csatlakozik az IoT Centralhoz.
A leafdevice
virtuális gépnek szüksége van a virtuális gépen létrehozott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatára edgegateway
. Másolja a /home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem fájlt a edgegateway
virtuális gépről a leafdevice
virtuális gép kezdőlapjára. Az scp paranccsal fájlokat másolhat Linux rendszerű virtuális gépek között. Például a leafdevice
gépről:
scp AzureUser@edgegateway:/home/AzureUser/certs/certs/azure-iot-test-only.root.ca.cert.pem .
Az alsóbb rétegbeli eszköz és az átjáró közötti kapcsolat ellenőrzéséhez tekintse meg az átjárókapcsolat tesztelése című témakört.
A termosztátszimulátor futtatása a leafdevice
virtuális gépen:
Az SSH használatával csatlakozhat a virtuális géphez, és bejelentkezhet.
leafdevice
Töltse le a Python-mintát a kezdőkönyvtárba:
cd ~ wget https://raw.githubusercontent.com/Azure-Samples/iot-central-docs-samples/main/transparent-gateway-1-4/simple_thermostat.py
Telepítse az Azure IoT-eszköz Python-modult:
sudo apt update sudo apt install python3-pip pip3 install azure.iot.device
Állítsa be a környezeti változókat a minta konfigurálásához. Cserélje le
{your device shared key}
a korábban jegyzett elsődleges kulcsrathermostat1
. Ezek a változók feltételezik, hogy az átjáró virtuális gép neve,edgegateway
a termosztát-eszköz azonosítója pedig a következőthermostat1
:export IOTHUB_DEVICE_SECURITY_TYPE=connectionString export IOTHUB_DEVICE_CONNECTION_STRING="HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key}" export IOTEDGE_ROOT_CA_CERT_PATH=~/azure-iot-test-only.root.ca.cert.pem
Figyelje meg, hogy a kapcsolati sztring hogyan használja az átjáróeszköz nevét, és nem egy IoT Hub nevét.
A kód futtatásához használja a következő parancsot:
python3 simple_thermostat.py
A parancs kimenete a következőképpen néz ki:
Connecting using Connection String HostName=edgegateway;DeviceId=thermostat1;SharedAccessKey={your device shared key} Listening for command requests and property updates Press Q to quit Sending telemetry for temperature Sent message Sent message Sent message ...
Tipp.
Ha hibaüzenet jelenik meg, amikor az alsóbb rétegbeli eszköz megpróbál csatlakozni. Próbálja meg újra futtatni az eszköz kiépítési lépéseit.
Az IoT Central telemetriájának megtekintéséhez lépjen a termosztát1 eszköz Áttekintés lapjára:
A Névjegy lapon megtekintheti az alsóbb rétegbeli eszközről küldött tulajdonságértékeket, a Parancs lapon pedig meghívhat parancsokat az alsóbb rétegbeli eszközön.