IoT Hub-berichtroutering gebruiken om apparaat-naar-cloud-berichten te verzenden naar Azure-services
Met berichtroutering kunt u berichten van uw apparaten verzenden naar cloudservices op een geautomatiseerde, schaalbare en betrouwbare manier. Berichtroutering kan worden gebruikt voor het volgende:
Telemetrieberichten en gebeurtenissen van apparaten verzenden naar het ingebouwde eindpunt en aangepaste eindpunten. Gebeurtenissen die kunnen worden gerouteerd, zijn gebeurtenissen voor de levenscyclus van apparaten, wijzigingsgebeurtenissen van apparaatdubbels, gebeurtenissen van digitale dubbelwijzigingen en gebeurtenissen van de apparaatverbindingsstatus.
Filter gegevens voordat u deze doorsturen door uitgebreide query's toe te passen. Met berichtroutering kunt u query's uitvoeren op de berichteigenschappen en hoofdtekst van het bericht, evenals tags van apparaatdubbels en eigenschappen van apparaatdubbels. Zie query's in berichtroutering voor meer informatie.
De IoT Hub definieert een algemene indeling voor alle apparaat-naar-cloud-berichten voor interoperabiliteit tussen protocollen. Zie IoT Hub-berichten maken en lezen voor meer informatie.
Notitie
Sommige van de functies die in dit artikel worden genoemd, zoals cloud-naar-apparaat-berichten, apparaatdubbels en apparaatbeheer, zijn alleen beschikbaar in de standaardlaag van IoT Hub. Zie De juiste IoT Hub-laag voor uw oplossing kiezen voor meer informatie over de Basic- en Standard-/gratis IoT Hub-lagen.
Routeringseindpunten
Elke IoT-hub heeft een standaardrouteringseindpunt met de naam berichten/gebeurtenissen die compatibel zijn met Event Hubs. U kunt ook aangepaste eindpunten maken die verwijzen naar andere services in uw Azure-abonnement.
IoT Hub ondersteunt momenteel de volgende eindpunten voor berichtroutering:
- Ingebouwd eindpunt
- Opslagcontainers
- Service Bus-wachtrijen
- Service Bus-onderwerpen
- Event Hubs
- Cosmos DB
Zie IoT Hub-eindpunten voor meer informatie over elk van deze eindpunten.
Elk bericht wordt doorgestuurd naar alle eindpunten waarvan de routeringsquery's overeenkomen, wat betekent dat een bericht naar meerdere eindpunten kan worden gerouteerd. Als een bericht echter overeenkomt met meerdere routes die naar hetzelfde eindpunt verwijzen, levert IoT Hub het bericht slechts één keer aan dat eindpunt.
IoT Hub heeft schrijftoegang tot deze service-eindpunten nodig om berichtroutering te laten werken. Als u uw eindpunten configureert via Azure Portal, worden de benodigde machtigingen voor u toegevoegd. Als u uw eindpunten configureert met PowerShell of de Azure CLI, moet u de machtiging voor schrijftoegang opgeven.
Zie de volgende artikelen voor meer informatie over het maken van eindpunten:
- Routes en eindpunten beheren met behulp van Azure Portal
- Routes en eindpunten beheren met behulp van de Azure CLI
- Routes en eindpunten beheren met Behulp van PowerShell
- Routes en eindpunten beheren met Azure Resource Manager
Zorg ervoor dat u uw services configureert ter ondersteuning van de verwachte doorvoer. Als u bijvoorbeeld Event Hubs gebruikt als een aangepast eindpunt, moet u de doorvoereenheden voor die Event Hub configureren, zodat deze het inkomend verkeer van gebeurtenissen kan verwerken dat u wilt verzenden via IoT Hub-berichtroutering. Op dezelfde manier moet u, wanneer u een Service Bus-wachtrij als eindpunt gebruikt, de maximale grootte configureren om ervoor te zorgen dat de wachtrij alle binnenkomende gegevens kan bevatten totdat deze wordt verzonden door consumenten. Wanneer u uw IoT-oplossing voor het eerst configureert, moet u mogelijk uw andere eindpunten bewaken en eventuele benodigde aanpassingen aanbrengen voor de werkelijke belasting.
Als uw aangepaste eindpunt firewallconfiguraties heeft, kunt u overwegen om de uitzondering van vertrouwde eerste partijen van Microsoft te gebruiken.
Routeren naar een eindpunt in een ander abonnement
Als de eindpuntresource zich in een ander abonnement bevindt dan uw IoT-hub, moet u uw IoT-hub configureren als een vertrouwde Microsoft-service voordat u een aangepast eindpunt maakt. Wanneer u het aangepaste eindpunt maakt, stelt u het verificatietype in op door de gebruiker toegewezen identiteit.
Zie Egress-connectiviteit van IoT Hub naar andere Azure-resources voor meer informatie.
Routeringsquery's
IoT Hub-berichtroutering biedt een queryfunctie om de gegevens te filteren voordat deze naar de eindpunten worden gerouteerd. Elke routeringsquery die u configureert, heeft de volgende eigenschappen:
Eigenschappen | Beschrijving |
---|---|
Naam | De unieke naam waarmee de query wordt geïdentificeerd. |
Bron | De oorsprong van de gegevensstroom waarop moet worden gereageerd. Bijvoorbeeld apparaattelemetrie. |
Condition | De query-expressie voor de routeringsquery die wordt uitgevoerd op basis van de eigenschappen van de berichttoepassing, systeemeigenschappen, berichttekst, apparaatdubbeltags en apparaatdubbeleigenschappen om te bepalen of deze overeenkomt met het eindpunt. |
Eindpunt | De naam van het eindpunt waar IoT Hub berichten verzendt die overeenkomen met de query. U wordt aangeraden een eindpunt te kiezen in dezelfde regio als uw IoT-hub. |
Eén bericht kan overeenkomen met de voorwaarde voor meerdere routeringsquery's. In dat geval levert IoT Hub het bericht aan het eindpunt dat is gekoppeld aan elke overeenkomende query. IoT Hub ontdubbelt ook de bezorging van berichten automatisch, dus als een bericht overeenkomt met meerdere query's met dezelfde bestemming, wordt het slechts eenmaal naar die bestemming geschreven.
Zie de querysyntaxis van ioT Hub-berichtroutering voor meer informatie.
Gegevens lezen die zijn gerouteerd
Gebruik de volgende artikelen voor meer informatie over het lezen van berichten van een eindpunt.
Lezen vanuit een ingebouwd eindpunt
Lezen uit Blob Storage
Lezen uit Event Hubs
Lezen uit Service Bus-wachtrijen
Lezen uit Service Bus-onderwerpen
Alternatieve route
De terugvalroute verzendt alle berichten die niet voldoen aan queryvoorwaarden op een van de bestaande routes naar het ingebouwde eindpunt (berichten/gebeurtenissen), dat compatibel is met Event Hubs. Als berichtroutering is ingeschakeld, kunt u de mogelijkheid voor terugvalroute inschakelen. Zodra een route is gemaakt, worden gegevens niet meer naar het ingebouwde eindpunt gestroomd, tenzij er een route naar dat eindpunt wordt gemaakt. Als er geen routes naar het ingebouwde eindpunt zijn en een terugvalroute is ingeschakeld, worden alleen berichten die niet overeenkomen met queryvoorwaarden op routes verzonden naar het ingebouwde eindpunt. Zelfs als alle bestaande routes worden verwijderd, moet de mogelijkheid voor terugvalroute zijn ingeschakeld om alle gegevens op het ingebouwde eindpunt te ontvangen.
U kunt de terugvalroute in- of uitschakelen in Azure Portal op de blade Berichtroutering . U kunt ook Azure Resource Manager gebruiken voor FallbackRouteProperties om een aangepast eindpunt te gebruiken voor de terugvalroute.
Niet-telemetriegebeurtenissen
Naast apparaattelemetrie biedt berichtroutering ook het verzenden van niet-telemetriegebeurtenissen mogelijk, waaronder:
- Wijzigingen van apparaatdubbels
- Gebeurtenissen voor de levenscyclus van apparaten
- Levenscyclus-gebeurtenissen voor apparaattaken
- Gebeurtenissen met wijziging van dubbel
- Status van apparaatverbindingsevenementen
Als er bijvoorbeeld een route wordt gemaakt met de gegevensbron die is ingesteld op Wijzigingsevenementen van apparaatdubbel, verzendt IoT Hub berichten naar het eindpunt dat de wijziging in de apparaatdubbel bevat. Als er ook een route wordt gemaakt met de gegevensbron die is ingesteld op levenscyclusgebeurtenissen van apparaten, verzendt IoT Hub een bericht dat aangeeft of het apparaat of de module is verwijderd of gemaakt. Zie meldingen over de levenscyclus van apparaten en modules voor meer informatie over gebeurtenissen voor de levenscyclus van apparaten.
Wanneer u Azure IoT Plug en Play gebruikt, kan een ontwikkelaar routes maken met de gegevensbron die is ingesteld op Wijzigingsgebeurtenissen van Digital Twin en IoT Hub berichten verzendt wanneer een eigenschap van een digitale dubbel is ingesteld of gewijzigd, een digitale dubbel wordt vervangen of wanneer er een wijzigingsgebeurtenis plaatsvindt voor de onderliggende apparaatdubbel. Als ten slotte een route wordt gemaakt met gegevensbron die is ingesteld op Statusgebeurtenissen van apparaatverbinding, verzendt IoT Hub een bericht dat aangeeft of het apparaat is verbonden of verbroken.
IoT Hub kan ook worden geïntegreerd met Azure Event Grid om apparaatgebeurtenissen te publiceren ter ondersteuning van realtime integraties en automatisering van werkstromen op basis van deze gebeurtenissen. Bekijk de belangrijkste verschillen tussen berichtroutering en Event Grid voor meer informatie over wat het beste werkt voor uw scenario.
Beperkingen voor statusgebeurtenissen voor apparaatverbinding
Statusgebeurtenissen voor apparaatverbindingen zijn beschikbaar voor apparaten die verbinding maken met het MQTT- of AMQP-protocol, of met behulp van een van deze protocollen via WebSockets. Aanvragen die alleen zijn gedaan met HTTPS, activeren geen meldingen over de verbindingsstatus van het apparaat. IoT Hub moet na het openen van een verbinding de statusgebeurtenissen voor apparaatverbindingen starten door de cloud-naar-apparaat-berichtbewerking of de telemetriebewerking voor apparaat-naar-cloud-verzending aan te roepen. Buiten de Azure IoT SDK's zijn deze bewerkingen in MQTT gelijk aan ABONNEREN- of PUBLISH-bewerkingen voor de betreffende berichtenonderwerpen. Via AMQP zijn deze bewerkingen gelijk aan het koppelen of overdragen van een bericht op de juiste koppelingspaden. Raadpleeg voor meer informatie de volgende artikelen:
IoT Hub rapporteert niet elke afzonderlijke apparaatverbindings- en verbindingsgebeurtenis, maar publiceert de huidige verbindingsstatus die is genomen op een periodieke momentopname van 60 seconden. Het ontvangen van dezelfde verbindingsstatusgebeurtenis met verschillende reeksnummers of verschillende verbindingsstatusgebeurtenissen betekent beide dat er een wijziging is aangebracht in de verbindingsstatus van het apparaat tijdens het venster van 60 seconden.
Testroutes
Wanneer u een nieuwe route maakt of een bestaande route bewerkt, moet u de routequery testen met een voorbeeldbericht. U kunt afzonderlijke routes testen of alle routes tegelijk testen en er worden tijdens de test geen berichten doorgestuurd naar de eindpunten. Azure Portal, Azure Resource Manager, Azure PowerShell en Azure CLI kunnen worden gebruikt voor testen. Resultaten helpen bepalen of het voorbeeldbericht overeenkomt met of niet overeenkomt met de query, of dat de test niet kan worden uitgevoerd omdat het voorbeeldbericht of de querysyntaxis onjuist zijn. Zie Route testen en Alle routes testen voor meer informatie.
Latentie
Wanneer u telemetrieberichten van apparaten naar de cloud routegeeft, neemt de end-to-end-latentie enigszins toe na het maken van de eerste route.
In de meeste gevallen is de gemiddelde latentiestijging minder dan 500 milliseconden. De latentie die u ondervindt, kan echter variëren en kan hoger zijn, afhankelijk van de laag van uw IoT-hub en uw oplossingsarchitectuur. U kunt de latentie bewaken met behulp van de routering: berichtlatentie voor berichten/gebeurtenissen of d2c.endpoints.latency.builtIn.events IoT Hub metrische gegevens. Het maken of verwijderen van een route na de eerste route heeft geen invloed op de end-to-end latentie.
Bewaken en problemen oplossen
IoT Hub biedt verschillende metrische gegevens met betrekking tot routering en eindpunten om u een overzicht te geven van de status van uw hub en verzonden berichten. U kunt ook fouten bijhouden die optreden tijdens de evaluatie van een routeringsquery en eindpuntstatus zoals waargenomen door IoT Hub met de categorie routes in resourcelogboeken van IoT Hub. Zie Azure IoT Hub bewaken voor meer informatie over het gebruik van metrische gegevens en resourcelogboeken met IoT Hub.
U kunt de REST API Eindpuntstatus ophalen gebruiken om de status van eindpunten op te halen.
Gebruik de probleemoplossingsgids voor routering voor meer informatie en voor ondersteuning bij het oplossen van routeringsproblemen.