Zelfstudie: Apparaatgegevens verzenden naar Azure Storage met ioT Hub-berichtroutering
Gebruik berichtroutering in Azure IoT Hub om telemetriegegevens van uw IoT-apparaten te verzenden naar Azure-services zoals blobopslag, Service Bus-wachtrijen, Service Bus-onderwerpen en Event Hubs. Elke IoT-hub heeft een standaard ingebouwd eindpunt dat compatibel is met Event Hubs. U kunt ook aangepaste eindpunten maken en berichten doorsturen naar andere Azure-services door routeringsquery's te definiëren. Elk bericht dat bij de IoT-hub aankomt, wordt doorgestuurd naar alle eindpunten waarvan de routeringsquery's overeenkomen. Als een bericht niet overeenkomt met een van de gedefinieerde routeringsquery's, wordt het doorgestuurd naar het standaardeindpunt.
In deze zelfstudie voert u de volgende taken uit:
- Maak een IoT-hub en verzend er apparaatberichten naartoe.
- Een opslagaccount maken.
- Maak een aangepast eindpunt voor het opslagaccount en routeer berichten naar het eindpunt vanuit de IoT-hub.
- Apparaatberichten weergeven in de blob van het opslagaccount.
Vereisten
Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.
Een IoT-hub in uw Azure-abonnement. Als u nog geen hub hebt, kunt u de stappen volgen in Een IoT-hub maken.
In deze zelfstudie wordt voorbeeldcode van Azure IoT SDK voor C# gebruikt.
- Download of kloon de SDK-opslagplaats naar uw ontwikkelcomputer.
- Laat .NET Core 3.0.0 of hoger op uw ontwikkelcomputer staan. Controleer uw versie door .NET uit te voeren
dotnet --version
en download indien nodig.
Zorg ervoor dat de poort 8883 is geopend in uw firewall. In het voorbeeld in deze zelfstudie wordt het MQTT-protocol gebruikt, dat communiceert via poort 8883. Deze poort is in sommige netwerkomgevingen van bedrijven en onderwijsinstellingen mogelijk geblokkeerd. Zie Verbinding maken met IoT Hub (MQTT) voor meer informatie en manieren om dit probleem te omzeilen.
Installeer eventueel Azure IoT Explorer. Met dit hulpprogramma kunt u de berichten observeren wanneer ze binnenkomen bij uw IoT-hub. In dit artikel wordt Azure IoT Explorer gebruikt.
Er zijn geen andere vereisten voor Azure Portal.
Een apparaat registreren en berichten verzenden naar IoT Hub
Registreer een nieuw apparaat in uw IoT-hub.
Belangrijk
Dit artikel bevat stappen voor het verbinden van een apparaat met behulp van een Shared Access Signature, ook wel symmetrische sleutelverificatie genoemd. Deze verificatiemethode is handig voor testen en evalueren, maar het verifiëren van een apparaat met X.509-certificaten is een veiligere benadering. Zie Best practices > voor beveiliging voor verbindingsbeveiliging voor meer informatie.
Meld u aan bij de Azure-portal en ga naar uw IoT Hub.
Selecteer Apparaten in de sectie Apparaatbeheer van het menu.
Selecteer Apparaat toevoegen.
Geef een apparaat-id op en selecteer Opslaan.
Het nieuwe apparaat moet nu in de lijst met apparaten staan. Als dit niet het is, vernieuwt u de pagina. Selecteer de apparaat-id om de pagina met apparaatdetails te openen.
Kopieer een van de apparaatsleutels en sla deze op. U gebruikt deze waarde om de voorbeeldcode te configureren waarmee gesimuleerde telemetrieberichten van apparaten worden gegenereerd.
Nu u een apparaat-id en -sleutel hebt, gebruikt u de voorbeeldcode om telemetrieberichten van apparaten naar IoT Hub te verzenden.
Tip
Als u de Azure CLI-stappen voor deze zelfstudie volgt, voert u de voorbeeldcode uit in een afzonderlijke sessie. Op die manier kunt u toestaan dat de voorbeeldcode wordt uitgevoerd terwijl u de rest van de CLI-stappen volgt.
Als u niet als onderdeel van de vereisten hebt gewerkt, downloadt of kloont u de Azure IoT SDK voor C#-opslagplaats nu vanuit GitHub.
Navigeer in de map waarin u de SDK hebt gedownload of gekloond naar de
azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample
map.Installeer de Azure IoT C#SDK en de benodigde afhankelijkheden zoals opgegeven in het
HubRoutingSample.csproj
bestand:dotnet restore
Open het
Parameters.cs
bestand in een editor naar keuze. Dit bestand bevat de parameters die worden ondersteund door het voorbeeld. Alleen dePrimaryConnectionString
parameter wordt in dit artikel gebruikt bij het uitvoeren van het voorbeeld. Controleer de code in dit bestand. Er zijn geen wijzigingen nodig.Bouw en voer de voorbeeldcode uit met behulp van de volgende opdracht:
Vervang
<myDevicePrimaryConnectionString>
door uw primaire verbindingsreeks van uw apparaat in uw IoT-hub.dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
U ziet nu berichten die naar uitvoer worden afgedrukt wanneer ze naar IoT Hub worden verzonden. Laat dit programma actief tijdens de zelfstudie.
IoT Explorer configureren om berichten weer te geven
Configureer IoT Explorer om verbinding te maken met uw IoT-hub en lees berichten zodra ze binnenkomen op het ingebouwde eindpunt.
Haal eerst de verbindingsreeks voor uw IoT-hub op.
Ga in Azure Portal naar uw IoT-hub.
Selecteer Beleid voor gedeelde toegang in de sectie Beveiligingsinstellingen van het menu.
Selecteer het iothubowner-beleid .
Kopieer de primaire verbindingsreeks.
Gebruik nu dat verbindingsreeks om IoT Explorer voor uw IoT-hub te configureren.
Open IoT Explorer op uw ontwikkelcomputer.
Selecteer Verbinding toevoegen.
Plak de verbindingsreeks van uw hub in het tekstvak.
Selecteer Opslaan.
Zodra u verbinding hebt gemaakt met uw IoT-hub, ziet u een lijst met apparaten. Selecteer de apparaat-id die u voor deze zelfstudie hebt gemaakt.
Selecteer Telemetrie.
Wanneer uw apparaat nog steeds actief is, selecteert u Start. Als uw apparaat niet wordt uitgevoerd, ziet u geen telemetrie.
U ziet nu de berichten die vanaf uw apparaat binnenkomen, met de meest recente bovenaan weergegeven.
Bekijk de binnenkomende berichten even om te controleren of u drie verschillende typen berichten ziet: normaal, opslag en kritiek. Nadat u dit hebt gezien, kunt u uw apparaat stoppen.
Deze berichten komen allemaal aan op het standaard ingebouwde eindpunt voor uw IoT-hub. In de volgende secties gaan we een aangepast eindpunt maken en enkele van deze berichten doorsturen naar de opslag op basis van de berichteigenschappen. Deze berichten worden niet meer weergegeven in IoT Explorer, omdat berichten alleen naar het ingebouwde eindpunt gaan wanneer ze niet overeenkomen met andere routes in IoT Hub.
Berichtroutering instellen
U gaat berichten doorsturen naar verschillende resources op basis van eigenschappen die zijn gekoppeld aan het bericht door het gesimuleerde apparaat. Berichten die niet zijn aangepast, worden verzonden naar het standaardeindpunt (berichten/gebeurtenissen).
De voorbeeld-app voor deze zelfstudie wijst een niveaueigenschap toe aan elk bericht dat wordt verzonden naar IoT Hub. Aan elk bericht wordt willekeurig een niveau van normaal, opslag of kritiek toegewezen.
In de eerste stap bestaat uit het instellen van het eindpunt waarnaar de gegevens worden gerouteerd. In de tweede stap wordt de berichtroute ingesteld die van dat eindpunt gebruikmaakt. Nadat u de routering hebt ingesteld, kunt u eindpunten en berichtroutes weergeven in de portal.
Een opslagaccount maken
Maak een Azure Storage-account en een container binnen dat account, waarin de apparaatberichten worden opgeslagen die naar het account worden gerouteerd.
Zoek in Azure Portal naar Opslagaccounts.
Selecteer Maken.
Geef de volgende waarden op voor uw opslagaccount:
Parameter Weergegeven als Abonnement Selecteer hetzelfde abonnement dat uw IoT-hub bevat. Resourcegroep Selecteer dezelfde resourcegroep die uw IoT-hub bevat. Naam van opslagaccount Geef een wereldwijd unieke naam op voor uw opslagaccount. Prestaties Accepteer de standaardwaarde Standard . U kunt alle andere standaardwaarden accepteren door Beoordelen en maken te selecteren.
Nadat de validatie is voltooid, selecteert u Maken.
Selecteer Naar resource gaan wanneer de implementatie is voltooid.
Selecteer Containers in het menu opslagaccount in de sectie Gegevensopslag.
Selecteer + Container om een nieuwe container te maken.
Geef een naam op voor uw container en selecteer Maken.
Routeren naar een opslagaccount
Stel nu de routering in voor het opslagaccount. In deze sectie definieert u een nieuw eindpunt dat verwijst naar het opslagaccount dat u hebt gemaakt. Maak vervolgens een route die filtert op berichten waarop de eigenschap niveau is ingesteld op opslag en die doorsturen naar het opslageindpunt.
Notitie
De gegevens kunnen worden geschreven naar blobopslag in de Apache Avro-indeling , de standaardindeling of JSON.
De coderingsindeling kan alleen worden ingesteld op het moment dat het eindpunt van de blob-opslag wordt geconfigureerd. De indeling kan niet worden gewijzigd voor een eindpunt dat al is ingesteld. Wanneer u de JSON-coderings gebruikt, moet u contentType instellen op JSON en contentEncoding op UTF-8 in de systeemeigenschappen van het bericht.
Zie richtlijnen voor routering naar opslag voor meer informatie over het gebruik van een eindpunt van de blob-opslag.
Belangrijk
Dit artikel bevat stappen voor het maken van verbinding met een service met behulp van een handtekening voor gedeelde toegang. Deze verificatiemethode is handig voor testen en evalueren, maar verificatie bij een service met Microsoft Entra ID of beheerde identiteiten is een veiligere benadering. Zie Best practices > voor beveiliging voor cloudbeveiliging voor meer informatie.
Ga in Azure Portal naar uw IoT-hub.
Selecteer in het resourcemenu onder Hub-instellingen de optie Berichtroutering en selecteer Vervolgens Toevoegen.
Maak op het tabblad Eindpunt een opslageindpunt door de volgende informatie op te geven:
Parameter Weergegeven als Eindpunttype Selecteer Opslag. Eindpuntnaam Geef een unieke naam op voor dit eindpunt. Azure Storage-container Selecteer Een container kiezen. Volg de aanwijzingen om het opslagaccount en de container te selecteren die u in de vorige sectie hebt gemaakt. Codering Selecteer JSON. Als dit veld grijs wordt weergegeven, biedt uw opslagaccountregio geen ondersteuning voor JSON. In dat geval gaat u verder met de standaard AVRO. Accepteer de standaardwaarden voor de rest van de parameters en selecteer Maken + volgende.
Geef op het tabblad Route de volgende informatie op om een route te maken die verwijst naar het opslageindpunt dat u hebt gemaakt:
Parameter Weergegeven als Naam Maak een naam voor uw route. Gegevensbron Controleer of Apparaattelemetrieberichten is geselecteerd in de vervolgkeuzelijst. Route inschakelen Controleer of dit veld is ingeschakeld. Routeringsquery Voer level="storage"
in als querytekenreeks.Selecteer Maken + verrijkingen overslaan.
Gerouteerde berichten weergeven
Zodra de route is gemaakt in IoT Hub en is ingeschakeld, wordt er onmiddellijk begonnen met het routeren van berichten die voldoen aan de queryvoorwaarde naar het opslageindpunt.
Het ingebouwde eindpunt bewaken met IoT Explorer
Ga terug naar de IoT Explorer-sessie op uw ontwikkelcomputer. Zoals u weet, controleert IoT Explorer het ingebouwde eindpunt voor uw IoT-hub. Dit betekent dat u nu alleen de berichten ziet die niet worden gerouteerd door de aangepaste route die we hebben gemaakt.
Start het voorbeeld opnieuw door de code uit te voeren. Bekijk de binnenkomende berichten even en u ziet alleen berichten waarop level
is ingesteld normal
of critical
.
Berichten in de opslagcontainer weergeven
Controleer of de berichten binnenkomen in de opslagcontainer.
Ga in Azure Portal naar uw opslagaccount.
Selecteer Containers in de sectie Gegevensopslag van het menu.
Selecteer de container die u voor deze zelfstudie hebt gemaakt.
Er moet een map zijn met de naam van uw IoT-hub. Zoom in op de bestandsstructuur totdat u bij een .json-bestand bent.
Selecteer het JSON-bestand en selecteer vervolgens Downloaden om het JSON-bestand te downloaden. Controleer of het bestand berichten bevat van uw apparaat waarop de
level
eigenschap is ingesteldstorage
.Stop met het uitvoeren van het voorbeeld.
Resources opschonen
Als u alle Azure-resources die u voor deze zelfstudie hebt gebruikt, wilt verwijderen, verwijdert u de resourcegroep. Hiermee verwijdert u ook alle resources in de groep. Als u de hele resourcegroep niet wilt verwijderen, gebruikt u Azure Portal om de afzonderlijke resources te zoeken en te verwijderen.
Als u van plan bent om door te gaan naar de volgende zelfstudie, houdt u de resources die u hier hebt gemaakt.
- Navigeer in Azure Portal naar de resourcegroep met het IoT-hub- en opslagaccount voor deze zelfstudie.
- Bekijk alle resources in de resourcegroep om te bepalen welke u wilt opschonen.
- Als u alle resources wilt verwijderen, selecteert u Resourcegroep verwijderen.
- Als u alleen bepaalde resources wilt verwijderen, gebruikt u de selectievakjes naast elke resourcenaam om de resources te selecteren die u wilt verwijderen. Selecteer daarna Verwijderen.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u een aangepast eindpunt voor een Azure-resource maakt en vervolgens een route maakt om apparaatberichten naar dat eindpunt te verzenden. Ga verder met de volgende zelfstudie om te leren hoe u berichten kunt verrijken met extra gegevens die kunnen worden gebruikt om downstreamverwerking te vereenvoudigen