Delen via


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 apparatentweelingen, gebeurtenissen van digitale tweelingwijzigingen en gebeurtenissen van de verbindingsstatus van apparaten.

  • Filter gegevens voordat u ze routeert door rijke query's toe te passen. Met berichtroutering kunt u zoeken uitvoeren op de berichteigenschappen en berichtinhoud, evenals tags en eigenschappen van apparaat-twins. 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 en -grootte kiezen voor uw oplossing 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 Routes en eindpunten beheren met behulp van Azure Portal voor meer informatie over het maken van eindpunten.

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 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.

Routeringsqueries

IoT Hub-berichtroutering biedt een queryfunctie om de gegevens te filteren voordat deze naar de eindpunten worden gerouteerd. Elke routeringsquery heeft de volgende eigenschappen:

Eigendom Beschrijving
Naam De unieke naam waarmee de query wordt geïdentificeerd.
Bron De oorsprong van de gegevensstroom waarop moet worden gereageerd. Bijvoorbeeld apparaattelemetrie.
Voorwaarde 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 automatisch de bezorging van berichten. Als een bericht overeenkomt met meerdere query's met dezelfde bestemming, levert IoT Hub het slechts één keer aan die bestemming.

Zie de querysyntaxis van ioT Hub-berichtroutering voor meer informatie.

Gerouteerde gegevens lezen

Gebruik de volgende artikelen voor meer informatie over het lezen van berichten van een eindpunt.

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 er een terugvalroute is ingeschakeld, worden alleen berichten die niet overeenkomen met queryvoorwaarden voor 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 pagina Berichtroutering . U kunt ook Azure Resource Manager gebruiken voor FallbackRouteProperties om een aangepast eindpunt te gebruiken voor de terugvalroute.

Niet-telemetriegebeurtenissen

Naast telemetrie van apparaten maakt berichtroutering ook het verzenden van niet-telemetrie-gebeurtenissen mogelijk, waaronder:

  • Wijzigingen van apparaattweelingen
  • Gebeurtenissen voor de levenscyclus van apparaten
  • Levenscyclus-gebeurtenissen voor apparaattaken
  • Wijzigingsgebeurtenissen van digitale tweeling
  • Apparaatverbindingstoestandgebeurtenissen

Als er bijvoorbeeld een route wordt gemaakt met de gegevensbron die is ingesteld op Wijzigingsevenementen voor apparaat-tweelingen, verzendt IoT Hub berichten naar het eindpunt die de wijziging van de apparaat-tweeling bevatten. 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. Zie de verschillen tussen berichtroutering en Event Grid voor meer informatie over welke service 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. Voor IoT Hub om de statusgebeurtenissen van apparaatverbindingen te starten, moet een apparaat na het openen van een verbinding ofwel de cloud-naar-apparaat ontvangen berichten operatie of de apparaat-naar-cloud telemetrie verzenden operatie aanroepen. 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 verbindings- en verbreekgebeurtenis van apparaten, maar publiceert in plaats daarvan de huidige verbindingsstatus, genomen bij een momentopname die elke 60 seconden wordt gemaakt. 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 routeert, 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.