Enhetsinfrastruktur och -anslutning
Den här översikten beskriver viktiga begrepp kring hur enheter ansluter till molnet i en typisk Azure IoT-lösning. Artikeln innehåller även valfria infrastrukturelement som gatewayer och bryggor. Varje avsnitt innehåller länkar till innehåll som ger mer information och vägledning.
IoT Central-program använder IoT Hub- och DPS-tjänsterna (Device Provisioning Service) internt. Därför gäller begreppen i den här artikeln oavsett om du använder IoT Central för att utforska ett IoT-scenario eller skapa din lösning med hjälp av IoT Hub och DPS.
Följande diagram visar en översikt över komponenterna i en typisk IoT-lösning. Den här artikeln fokuserar på anslutningen mellan enheterna och IoT-molntjänsterna, inklusive gatewayer och bryggor, som visas i diagrammet.
Primitiver
Azure IoT-enheter använder följande primitiver för att utbyta data med molntjänster. Enheter använder:
- Meddelanden från enhet till moln för att skicka telemetri för tidsserier till molnet. Till exempel temperaturdata som samlas in från en sensor som är ansluten till enheten.
- Enhetstvillingar för att dela och synkronisera tillståndsdata med molnet. En enhet kan till exempel använda enhetstvillingen för att rapportera det aktuella tillståndet för en ventil som den styr till molnet och för att få en önskad måltemperatur från molnet.
- Digitala tvillingar som representerar en enhet i den digitala världen. En digital tvilling kan till exempel representera en enhets fysiska plats, dess funktioner och dess relationer med andra enheter.
- Filuppladdningar för mediefiler som tagna bilder och video. Tillfälliga anslutna enheter kan skicka telemetribatch. Enheter kan komprimera uppladdningar för att spara bandbredd.
- Direkta metoder för att ta emot kommandon från molnet. En direktmetod kan ha parametrar och returnera ett svar. Molnet kan till exempel anropa en direktmetod för att begära att enheten startas om.
- Meddelanden från moln till enhet tar emot enkelriktade meddelanden från molnet. Till exempel ett meddelande om att en uppdatering är redo att laddas ned.
Mer information finns i Vägledning för kommunikation från enhet till moln och vägledning för kommunikation från moln till enhet.
Enhetsriktade molnslutpunkter
En Azure IoT-hubb exponerar en samling slutpunkter per enhet som låter enheter utbyta data med molnet. Dessa slutpunkter omfattar:
- Skicka meddelanden från enhet till moln. En enhet använder den här slutpunkten för att skicka meddelanden från enhet till moln.
- Hämta och uppdatera egenskaper för enhetstvillingar. En enhet använder den här slutpunkten för att komma åt dess egenskaper för enhetstvillingar.
- Ta emot begäranden om direktmetoder. En enhet använder den här slutpunkten för att lyssna efter direkta metodbegäranden.
Varje IoT-hubb har ett unikt värdnamn som du använder för att ansluta enheter till hubben. Värdnamnet är i formatet iothubname.azure-devices.net
. Om du använder någon av enhetens SDK:er behöver du inte känna till de fullständiga namnen på de enskilda slutpunkterna eftersom SDK:erna ger abstraktioner på högre nivå. Enheten behöver dock känna till värdnamnet för den IoT-hubb som den ansluter till.
En enhet kan upprätta en säker anslutning till en IoT-hubb:
- I så fall måste du ange en anslutningssträng för enheten som innehåller värdnamnet.
- Indirekt genom att använda DPS, i vilket fall enheten ansluter till en välkänd DPS-slutpunkt för att hämta anslutningssträng för den IoT-hubb som den är tilldelad till.
Fördelen med att använda DPS är att du inte behöver konfigurera alla dina enheter med anslutningssträngar som är specifika för din IoT-hubb. I stället konfigurerar du dina enheter för att ansluta till en välkänd, vanlig DPS-slutpunkt där de upptäcker sin anslutningsinformation. Mer information finns i Enhetsetableringstjänst.
Mer information om hur du implementerar automatiska återanslutningar till slutpunkter finns i Hantera enhetsåteranslutningar för att skapa motståndskraftiga program.
Enhetens anslutningssträng
En enhet anslutningssträng ger en enhet den information den behöver för att ansluta säkert till en IoT-hubb. Anslutningssträng innehåller följande information:
- IoT-hubbens värdnamn.
- Enhets-ID:t som registrerats med IoT-hubben.
- Säkerhetsinformationen som enheten behöver för att upprätta en säker anslutning till IoT-hubben.
Autentisering
Azure IoT-enheter använder TLS för att verifiera äktheten hos den IoT-hubb eller DPS-slutpunkt som de ansluter till. Enhetens SDK:er innehåller DigiCert Global Root G2 TLS-certifikatet som de för närvarande behöver för att upprätta en säker anslutning till IoT-hubben. Mer information finns i TLS-stöd (Transport Layer Security) i IoT Hub - och TLS-stöd i Azure IoT Hub Device Provisioning Service (DPS).
Azure IoT-enheter kan använda antingen SAS-token (signatur för delad åtkomst) eller X.509-certifikat för att autentisera sig själva till en IoT-hubb. X.509-certifikat rekommenderas i en produktionsmiljö. Mer information om enhetsautentisering finns i:
- Autentisera enheter till IoT Hub med X.509 CA-certifikat
- Autentisera enheter till IoT Hub med hjälp av SAS-token
- DPS symmetrisk nyckelattestering
- DPS X.509-certifikatattestering
- DPS-betrott plattformsmodulattestering
- Begrepp för enhetsautentisering i IoT Central
Alla data som utbyts mellan en enhet och en IoT-hubb krypteras.
Mer information om säkerhet i din IoT-lösning finns i Säkerhetsarkitektur för IoT-lösningar.
Protokoll
En IoT-enhet kan använda ett av flera nätverksprotokoll när den ansluter till en IoT Hub- eller DPS-slutpunkt:
- MQTT
- MQTT över WebSockets
- Advanced Message Queuing Protocol (AMQP)
- AMQP över WebSockets
- HTTPS
Kommentar
IoT Hub har begränsat funktionsstöd för MQTT. Om din lösning behöver stöd för MQTT v3.1.1 eller v5 rekommenderar vi MQTT-stöd i Azure Event Grid. Mer information finns i Jämför MQTT-stöd i IoT Hub och Event Grid.
Mer information om hur du väljer ett protokoll för dina enheter att ansluta till molnet finns i:
- Protokollstöd i Azure IoT Hub
- Kommunicera med DPS med MQTT-protokollet
- Kommunicera med DPS med hjälp av HTTPS-protokollet (symmetriska nycklar)
- Kommunicera med DPS med hjälp av HTTPS-protokollet (X.509)
Industriella IoT-scenarier använder ofta OPC UA-branschens öppna gränssnitt (Open Platform Communications Unified Architecture). Om du vill aktivera anslutning till Azure-molnet använder du Azure IoT Operations. Mer information finns i Vad är Azure IoT Operations?.
Anslut ionsmönster
Det finns två breda kategorier av anslutningsmönster som IoT-enheter använder för att ansluta till molnet:
Beständiga anslutningar
Beständiga anslutningar krävs när din lösning behöver kommando- och kontrollfunktioner . I kommando- och kontrollscenarier skickar din IoT-lösning kommandon till enheter för att styra deras beteende nästan i realtid. Beständiga anslutningar underhåller en nätverksanslutning till molnet och återansluter när det uppstår ett avbrott. Använd antingen MQTT- eller AMQP-protokollet för beständiga enhetsanslutningar till en IoT-hubb. IoT-enhets-SDK:erna aktiverar både MQTT- och AMQP-protokollen för att skapa beständiga anslutningar till en IoT-hubb.
Tillfälliga anslutningar
Tillfälliga anslutningar är korta anslutningar för enheter som skickar telemetri till din IoT-hubb. När en enhet har skickat telemetrin avbryts anslutningen. Enheten återansluts när den har mer telemetri att skicka. Tillfälliga anslutningar är inte lämpliga för kommando- och kontrollscenarier. En enhetsklient kan använda HTTP-API:et om allt den behöver göra är att skicka telemetri.
Fältgatewayer
Fältgatewayer (kallas ibland gränsgatewayer) distribueras vanligtvis lokalt och nära dina IoT-enheter. Fältgatewayer hanterar kommunikation med molnet för dina IoT-enheters räkning. Fältgatewayer kan:
- Gör protokollöversättning. Du kan till exempel aktivera Bluetooth-aktiverade enheter för att ansluta till molnet.
- Hantera offline- och frånkopplade scenarier. Till exempel buffring av telemetri när molnslutpunkten inte kan nås.
- Filtrera, komprimera eller aggregera telemetri innan du skickar den till molnet.
- Kör logik vid gränsen för att ta bort svarstiden som är associerad med att köra logik för enheter i molnet. Till exempel identifiera en temperaturtoppar och öppna en ventil som svar.
Du kan använda Azure IoT Edge för att distribuera en fältgateway till din lokala miljö. IoT Edge innehåller en uppsättning funktioner som gör att du kan distribuera och hantera fältgatewayer i stor skala. IoT Edge tillhandahåller också en uppsättning moduler som du kan använda för att implementera vanliga gatewayscenarier. Mer information finns i Vad är Azure IoT Edge?
En IoT Edge-enhet kan upprätthålla en beständig anslutning till en IoT-hubb. Gatewayen vidarebefordrar enhetens telemetri till IoT Hub. Det här alternativet aktiverar kommando och kontroll över de underordnade enheter som är anslutna till IoT Edge-enheten.
Bryggor
En enhetsbrygga gör det möjligt för enheter som är anslutna till ett moln som inte kommer från Microsoft att ansluta till din IoT-lösning. Exempel på moln som inte kommer från Microsoft är Sigfox, Particle Device Cloud och The Things Network.
öppen källkod IoT Central Device Bridge fungerar som en översättare som vidarebefordrar telemetri till ett IoT Central-program. Mer information finns i Azure IoT Central Device Bridge. Det finns brygglösningar som inte kommer från Microsoft, till exempel Tartabit IoT Bridge, för att ansluta enheter till en IoT-hubb.
Nästa steg
Nu när du har sett en översikt över enhetsanslutningen i Azure IoT-lösningar kan några föreslagna nästa steg vara: