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.

  1. Meld u aan bij de Azure-portal en ga naar uw IoT Hub.

  2. Selecteer Apparaten in de sectie Apparaatbeheer van het menu.

  3. Selecteer Apparaat toevoegen.

    Screenshot that shows adding a new device in the Azure portal.

  4. Geef een apparaat-id op en selecteer Opslaan.

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

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

    Screenshot that shows copying the primary key from the device details page.

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.

  1. Als u niet als onderdeel van de vereisten hebt gewerkt, downloadt of kloont u de Azure IoT SDK voor C#-opslagplaats nu vanuit GitHub.

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

  3. Installeer de Azure IoT C#SDK en de benodigde afhankelijkheden zoals opgegeven in het HubRoutingSample.csproj bestand:

    dotnet restore
    
  4. Open het Parameters.cs bestand in een editor naar keuze. Dit bestand bevat de parameters die worden ondersteund door het voorbeeld. Alleen de PrimaryConnectionString parameter wordt in dit artikel gebruikt bij het uitvoeren van het voorbeeld. Controleer de code in dit bestand. Er zijn geen wijzigingen nodig.

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

  1. Ga in Azure Portal naar uw IoT-hub.

  2. Selecteer Beleid voor gedeelde toegang in de sectie Beveiligingsinstellingen van het menu.

  3. Selecteer het iothubowner-beleid .

    Open the iothubowner shared access policy.

  4. Kopieer de primaire verbindingsreeks.

    Copy the iothubowner primary connection string.

Gebruik nu dat verbindingsreeks om IoT Explorer voor uw IoT-hub te configureren.

  1. Open IoT Explorer op uw ontwikkelcomputer.

  2. Selecteer Verbinding toevoegen.

    Screenshot that shows adding an IoT hub connection in IoT Explorer.

  3. Plak de verbindingsreeks van uw hub in het tekstvak.

  4. Selecteer Opslaan.

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

  6. Selecteer Telemetrie.

  7. Wanneer uw apparaat nog steeds actief is, selecteert u Start. Als uw apparaat niet wordt uitgevoerd, ziet u geen telemetrie.

    Start monitoring device telemetry in IoT Explorer.

  8. U ziet nu de berichten die vanaf uw apparaat binnenkomen, met de meest recente bovenaan weergegeven.

    View messages arriving at IoT hub on the built-in endpoint.

    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.

  1. Zoek in Azure Portal naar Opslagaccounts.

  2. Selecteer Maken.

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

    Screenshot that shows creating a storage account.

  4. U kunt alle andere standaardwaarden accepteren door Beoordelen en maken te selecteren.

  5. Nadat de validatie is voltooid, selecteert u Maken.

  6. Selecteer Naar resource gaan wanneer de implementatie is voltooid.

  7. Selecteer Containers in het menu opslagaccount in de sectie Gegevensopslag.

  8. Selecteer + Container om een nieuwe container te maken.

    Screenshot that shows creating a storage container

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

  1. Ga in Azure Portal naar uw IoT-hub.

  2. Selecteer in het resourcemenu onder Hub-instellingen de optie Berichtroutering en selecteer Vervolgens Toevoegen.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

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

    Screenshot that shows the Add a storage endpoint pane with the correct options selected.

  4. Accepteer de standaardwaarden voor de rest van de parameters en selecteer Maken + volgende.

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

    Screenshot that shows adding a route with a routing query.

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

  1. Ga in Azure Portal naar uw opslagaccount.

  2. Selecteer Containers in de sectie Gegevensopslag van het menu.

  3. Selecteer de container die u voor deze zelfstudie hebt gemaakt.

  4. Er moet een map zijn met de naam van uw IoT-hub. Zoom in op de bestandsstructuur totdat u bij een .json-bestand bent.

    Screenshot that shows finding routed messages in storage.

  5. 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 ingesteld storage.

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

  1. Navigeer in Azure Portal naar de resourcegroep met het IoT-hub- en opslagaccount voor deze zelfstudie.
  2. 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