Så kan en IoT Edge-enhet användas som gateway

Gäller för: Bockmarkering för IoT Edge 1.5 IoT Edge 1.5 Bockmarkering för IoT Edge 1.4 IoT Edge 1.4

Viktigt!

IoT Edge 1.5 LTS och IoT Edge 1.4 LTS stöds. IoT Edge 1.4 LTS upphör den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.

IoT Edge-enheter kan fungera som gatewayer, vilket ger en anslutning mellan andra enheter i nätverket och IoT Hub.

IoT Edge-hubbmodulen fungerar som IoT Hub, så att den kan hantera anslutningar från andra enheter som har en identitet med samma IoT-hubb. Den här typen av gatewaymönster kallas transparent eftersom meddelanden kan skickas från underordnade enheter till IoT Hub som om det inte fanns någon gateway mellan dem.

För enheter som inte kan eller inte kan ansluta till IoT Hub på egen hand kan IoT Edge-gatewayer tillhandahålla den anslutningen. Den här typen av gatewaymönster kallas översättning eftersom IoT Edge-enheten måste utföra bearbetning på inkommande underordnade enhetsmeddelanden innan de kan vidarebefordras till IoT Hub. Dessa scenarier kräver ytterligare moduler på IoT Edge-gatewayen för att hantera bearbetningsstegen.

De transparenta gateway- och översättningsgatewaymönstren utesluter inte varandra. En enda IoT Edge-enhet kan fungera som både en transparent gateway och en översättningsgateway.

Alla gatewaymönster ger följande fördelar:

  • Analys på gränsen – Använd AI-tjänster lokalt för att bearbeta data som kommer från underordnade enheter utan att skicka full återgivningstelemetri till molnet. Hitta och reagera på insikter lokalt och skicka bara en delmängd data till IoT Hub.
  • Nedströmsenhetsisolering – Gateway-enheten kan skydda alla underordnade enheter från exponering för Internet. Det kan ligga mellan ett nätverk för driftteknik (OT) som inte har anslutning och ett IT-nätverk (Information Technology) som ger åtkomst till webben. På samma sätt kan enheter som inte har möjlighet att ansluta till IoT Hub på egen hand ansluta till en gatewayenhet i stället.
  • Multipling av anslutningar – Alla enheter som ansluter till IoT Hub via en IoT Edge-gateway kan använda samma underliggande anslutning. Den här funktionen för multiplexering kräver att IoT Edge-gatewayen använder AMQP som sitt överordnade protokoll.
  • Trafikutjämning – IoT Edge-enheten implementerar automatiskt exponentiell backoff om IoT Hub begränsar trafiken, samtidigt som meddelandena sparas lokalt. Den här fördelen gör din lösning motståndskraftig mot trafiktoppar.
  • Offlinestöd – Gatewayenheten lagrar meddelanden och tvillinguppdateringar som inte kan levereras till IoT Hub.

Transparenta gatewayer

I det transparenta gatewaymönstret kan enheter som teoretiskt sett kan ansluta till IoT Hub ansluta till en gatewayenhet i stället. De underordnade enheterna har sina egna IoT Hub-identiteter och ansluter med MQTT- eller AMQP-protokoll. Gatewayen skickar helt enkelt kommunikation mellan enheterna och IoT Hub. Både enheterna och användarna som interagerar med dem via IoT Hub är omedvetna om att en gateway förmedlar sin kommunikation. Denna brist på medvetenhet innebär att gatewayen anses vara transparent.

Mer information om hur IoT Edge-hubben hanterar kommunikationen mellan nedströmsenheter och molnet finns i Förstå Azure IoT Edge-körningen och dess arkitektur.

Från och med version 1.2 av IoT Edge kan transparenta gatewayer hantera anslutningar från underordnade IoT Edge-enheter.

Överordnade och underordnade relationer

Du deklarerar transparenta gatewayrelationer i IoT Hub genom att ange IoT Edge-gatewayen som överordnad till ett underordnade enhetsunderordnat objekt som ansluter till den.

Kommentar

En nedströmsenhet genererar data direkt till Internet eller till gatewayenheter (IoT Edge-aktiverade eller inte). En underordnad enhet kan vara en underordnad enhet eller en gatewayenhet i en kapslad topologi.

Relationen överordnad/underordnad upprättas vid tre punkter i gatewaykonfigurationen:

Molnidentiteter

Alla enheter i ett transparent gatewayscenario behöver molnidentiteter så att de kan autentisera till IoT Hub. När du skapar eller uppdaterar en enhetsidentitet kan du ange enhetens överordnade eller underordnade enheter. Den här konfigurationen tillåter den överordnade gatewayenheten att hantera autentisering för sina underordnade enheter.

Kommentar

Att ange den överordnade enheten i IoT Hub brukade vara ett valfritt steg för underordnade enheter som använder symmetrisk nyckelautentisering. Från och med version 1.1.0 måste dock varje nedströmsenhet tilldelas till en överordnad enhet.

Du kan konfigurera IoT Edge-hubben så att den återgår till det tidigare beteendet genom att ange miljövariabeln AuthenticationMode till värdet CloudAndScope.

Underordnade enheter kan bara ha en överordnad enhet. Som standard kan en överordnad enhet ha upp till 100 underordnade enheter. Du kan ändra den här gränsen genom att ange miljövariabeln MaxConnectedClients i den överordnade enhetens edgeHub-modul.

IoT Edge-enheter kan vara både överordnade och underordnade i transparenta gatewayrelationer. En hierarki med flera IoT Edge-enheter som rapporterar till varandra kan skapas. Den översta noden i en gatewayhierarki kan ha upp till fem generationer underordnade enheter. Till exempel kan en IoT Edge-enhet ha fem lager med IoT Edge-enheter som är länkade som underordnade enheter under den. Men IoT Edge-enheten i den femte generationen får inte ha några underordnade, IoT Edge eller något annat.

Gatewayidentifiering

En underordnad enhet måste kunna hitta sin överordnade enhet i det lokala nätverket. Konfigurera gatewayenheter med ett värdnamn, antingen ett fullständigt domännamn (FQDN) eller en IP-adress som dess underordnade enheter använder för att hitta den.

På underordnade IoT-enheter använder du parametern gatewayHostname i niska veze för att peka på den överordnade enheten.

På underordnade IoT Edge-enheter använder du parametern parent_hostname i konfigurationsfilen för att peka på den överordnade enheten.

Säker anslutning

Överordnade och underordnade enheter måste också autentisera sina anslutningar till varandra. Varje enhet behöver en kopia av ett delat rotcertifikatutfärdarcertifikat som de underordnade enheterna använder för att verifiera att de ansluter till rätt gateway.

När flera IoT Edge-gatewayer ansluter till varandra i en gatewayhierarki bör alla enheter i hierarkin använda en enda certifikatkedja.

Enhetsfunktioner bakom transparenta gatewayer

Alla IoT Hub-primitiver som fungerar med IoT Edge-meddelandepipelinen har också stöd för transparenta gatewayscenarier. Varje IoT Edge-gateway har funktioner för lagring och vidarebefordran för meddelanden som kommer genom den.

Använd följande tabell för att se hur olika IoT Hub-funktioner stöds för enheter jämfört med enheter bakom gatewayer.

Kapacitet IoT-enhet IoT bakom en gateway IoT Edge-enhet IoT Edge bakom en gateway
Meddelanden från enhet till moln (D2C) Ja – IoT D2C Ja – underordnad IoT D2C Ja – IoT Edge D2C Ja – underordnad IoT Edge D2C
Meddelanden från moln till enhet (C2D) Ja – IoT C2D Ja – IoT-underordnad C2D Nej – IoT Edge C2D Nej – IoT Edge-underordnad C2D
Direkta metoder Ja – IoT-direktmetod Ja – underordnad IoT-direktmetod Ja – IoT Edge-direktmetod Ja – underordnad IoT Edge-direktmetod
Enhetstvillingar och modultvillingar Ja – IoT-tvillingar Ja – underordnade IoT-tvillingar Ja – IoT Edge-tvillingar Ja – underordnade IoT Edge-tvillingar
Filuppladdning Ja – Uppladdning av IoT-fil Nej – uppladdning av underordnad IoT-fil Nej – Uppladdning av IoT Edge-fil Nej – underordnad IoT Edge-filuppladdning
Containeravbildning hämtar Ja – IoT Edge-containerhämtning Ja – underordnad IoT Edge-containerhämtning
Blobuppladdning Ja – Uppladdning av IoT Edge-blob Ja – underordnad IoT Edge-blobuppladdning

Containeravbildningar kan laddas ned, lagras och levereras från överordnade enheter till underordnade enheter.

Blobar, inklusive stödpaket och loggar, kan laddas upp från underordnade enheter till överordnade enheter.

Översättningsgatewayer

Om underordnade enheter inte kan ansluta till IoT Hub måste IoT Edge-gatewayen fungera som översättare. Ofta krävs det här mönstret för enheter som inte stöder MQTT, AMQP eller HTTP. Eftersom dessa enheter inte kan ansluta till IoT Hub kan de inte heller ansluta till IoT Edge-hubben utan någon förbearbetning.

Anpassade moduler eller moduler från tredje part som ofta är specifika för den underordnade enhetens maskinvara eller protokoll måste distribueras till IoT Edge-gatewayen. Dessa översättningsmoduler tar inkommande meddelanden och omvandlar dem till ett format som kan förstås av IoT Hub.

Det finns två mönster för översättningsgatewayer: protokollöversättning och identitetsöversättning.

Diagram som visar mönster för översättningsgateway.

Protokollöversättning

I mönstret för protokollöversättningsgatewayen har endast IoT Edge-gatewayen en identitet med IoT Hub. Översättningsmodulen tar emot meddelanden från underordnade enheter, översätter dem till ett protokoll som stöds och sedan skickar IoT Edge-enheten meddelanden för de underordnade enheternas räkning. All information ser ut att komma från en enhet, gatewayen. Nedströmsenheter måste bädda in ytterligare identifierande information i sina meddelanden om molnprogram vill analysera data för varje enhet. Dessutom stöds IoT Hub-primitiver som tvillingar och direktmetoder endast för gatewayenheten, inte underordnade enheter. Gatewayer i det här mönstret anses vara ogenomskinliga i motsats till transparenta gatewayer, eftersom de döljer identiteterna för underordnade enheter.

Protokollöversättning stöder enheter som är resursbegränsade. Många befintliga enheter producerar data som kan ge affärsinsikter. men de har inte utformats med molnanslutning i åtanke. Ogenomskinliga gatewayer gör att dessa data kan låsas upp och användas i en IoT-lösning.

Identitetsöversättning

Gatewaymönstret för identitetsöversättning bygger på protokollöversättning, men IoT Edge-gatewayen tillhandahåller även en IoT Hub-enhetsidentitet för de underordnade enheternas räkning. Översättningsmodulen ansvarar för att förstå det protokoll som används av underordnade enheter, tillhandahålla dem identitet och översätta deras meddelanden till IoT Hub-primitiver. Nedströmsenheter visas i IoT Hub som enheter av första klass med tvillingar och metoder. Användare kan interagera med enheterna i IoT Hub och känner inte till den mellanliggande gatewayenheten.

Identitetsöversättning ger fördelarna med protokollöversättning och möjliggör dessutom fullständig hanterbarhet för nedströmsenheter från molnet. Alla enheter i din IoT-lösning visas i IoT Hub oavsett vilket protokoll de använder.

Enhetsfunktioner bakom översättningsgatewayer

I följande tabell beskrivs hur IoT Hub-funktioner utökas till underordnade enheter i båda översättningsgatewaymönstren.

Kapacitet Protokollöversättning Identitetsöversättning
Identiteter som lagras i IoT Hub-identitetsregistret Endast gatewayenhetens identitet Identiteter för alla anslutna enheter
Enhetstvilling Endast gatewayen har en enhets- och modultvilling Varje ansluten enhet har en egen enhetstvilling
Direktmetoder och meddelanden från moln till enhet Molnet kan bara hantera gatewayenheten Molnet kan hantera varje ansluten enhet individuellt
IoT Hub-begränsningar och kvoter Tillämpa på gatewayenheten Tillämpa på varje enhet

När du använder protokollets översättningsmönster delar alla enheter som ansluter via gatewayen samma kö från moln till enhet, som kan innehålla högst 50 meddelanden. Använd bara det här mönstret när få enheter ansluter via varje fältgateway och deras moln-till-enhet-trafik är låg.

IoT Edge-körningen innehåller inte funktioner för protokoll- eller identitetsöversättning. Dessa mönster kräver anpassade moduler eller moduler från tredje part som ofta är specifika för maskinvara och protokoll som används. Azure Marketplace innehåller flera protokollöversättningsmoduler att välja mellan. Ett exempel som använder identitetsöversättningsmönstret finns i Azure IoT Edge LoRaWAN Starter Kit.

Nästa steg

Lär dig de tre stegen för att konfigurera en transparent gateway: