Självstudie: Skicka enhetsdata till Azure Storage med IoT Hub-meddelanderoutning

Använd meddelanderoutning i Azure IoT Hub för att skicka telemetridata från dina IoT-enheter till Azure-tjänster som bloblagring, Service Bus-köer, Service Bus-ämnen och Event Hubs. Varje IoT-hubb har en inbyggd standardslutpunkt som är kompatibel med Event Hubs. Du kan också skapa anpassade slutpunkter och dirigera meddelanden till andra Azure-tjänster genom att definiera routningsfrågor. Varje meddelande som kommer till IoT-hubben dirigeras till alla slutpunkter vars routningsfrågor det matchar. Om ett meddelande inte matchar någon av de definierade routningsfrågorna dirigeras det till standardslutpunkten.

I den här självstudien utför du följande åtgärder:

  • Skapa en IoT-hubb och skicka enhetsmeddelanden till den.
  • Skapa ett lagringskonto.
  • Skapa en anpassad slutpunkt för lagringskontot och dirigera meddelanden till det från IoT-hubben.
  • Visa enhetsmeddelanden i lagringskontobloben.

Förutsättningar

  • En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

  • En IoT-hubb i din Azure-prenumeration. Om du inte har någon hubb ännu kan du följa stegen i Skapa en IoT-hubb.

  • I den här självstudien används exempelkod från Azure IoT SDK för C#.

    • Ladda ned eller klona SDK-lagringsplatsen till utvecklingsdatorn.
    • Ha .NET Core 3.0.0 eller senare på utvecklingsdatorn. Kontrollera din version genom att köra dotnet --version och ladda ned .NET om det behövs.
  • Kontrollera att port 8883 är öppen i brandväggen. Exemplet i den här självstudien använder MQTT-protokollet, som kommunicerar via port 8883. Den här porten kan blockeras i vissa företags- och utbildningsnätverksmiljöer. Mer information och sätt att kringgå det här problemet finns i Anslut ing to IoT Hub (MQTT).

  • Du kan också installera Azure IoT Explorer. Det här verktyget hjälper dig att observera meddelandena när de kommer till din IoT-hubb. Den här artikeln använder Azure IoT Explorer.

Det finns inga andra krav för Azure-portalen.

Registrera en enhet och skicka meddelanden till IoT Hub

Registrera en ny enhet i din IoT-hubb.

  1. Logga in på Azure-portalen och gå till din IoT-hubb.

  2. Välj Enheter i avsnittet Enhetshantering på menyn.

  3. Välj Lägg till enhet.

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

  4. Ange ett enhets-ID och välj Spara.

  5. Den nya enheten ska finnas i listan över enheter nu. Om det inte är det uppdaterar du sidan. Välj enhets-ID:t för att öppna sidan med enhetsinformation.

  6. Kopiera en av enhetsnycklarna och spara den. Du använder det här värdet för att konfigurera exempelkoden som genererar simulerade enhetstelemetrimeddelanden.

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

Nu när du har ett enhets-ID och en nyckel använder du exempelkoden för att börja skicka enhetstelemetrimeddelanden till IoT Hub.

Dricks

Om du följer Azure CLI-stegen för den här självstudien kör du exempelkoden i en separat session. På så sätt kan du tillåta att exempelkoden fortsätter att köras medan du följer resten av CLI-stegen.

  1. Om du inte har gjort det som en del av förhandskraven laddar du ned eller klonar Azure IoT SDK för C#-lagringsplatsen från GitHub nu.

  2. Från mappen där du laddade ned eller klonade SDK:t går du till azure-iot-sdk-csharp\iothub\device\samples\how to guides\HubRoutingSample mappen.

  3. Installera Azure IoT C# SDK och nödvändiga beroenden enligt vad som anges i HubRoutingSample.csproj filen:

    dotnet restore
    
  4. Öppna filen i Parameters.cs valfri redigerare. Den här filen visar de parametrar som stöds av exemplet. Endast parametern PrimaryConnectionString används i den här artikeln när du kör exemplet. Granska koden i den här filen. Inga ändringar behövs.

  5. Skapa och kör exempelkoden med följande kommando:

    Ersätt <myDevicePrimaryConnectionString> med din primära anslutningssträng från enheten i IoT-hubben.

    dotnet run --PrimaryConnectionString <myDevicePrimaryConnectionString>
    
  6. Du bör börja se meddelanden som skrivs ut till utdata när de skickas till IoT Hub. Låt det här programmet köras under självstudien.

Konfigurera IoT Explorer för att visa meddelanden

Konfigurera IoT Explorer för att ansluta till din IoT-hubb och läsa meddelanden när de kommer till den inbyggda slutpunkten.

Hämta först anslutningssträng för din IoT-hubb.

  1. Gå till din IoT-hubb på Azure Portal.

  2. Välj Principer för delad åtkomst i avsnittet Säkerhetsinställningar på menyn.

  3. Välj principen iothubowner.

    Open the iothubowner shared access policy.

  4. Kopiera den primära anslutningssträng.

    Copy the iothubowner primary connection string.

Använd nu den anslutningssträng för att konfigurera IoT Explorer för din IoT-hubb.

  1. Öppna IoT Explorer på utvecklingsdatorn.

  2. Välj Lägg till anslutning.

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

  3. Klistra in hubbens anslutningssträng i textrutan.

  4. Välj Spara.

  5. När du ansluter till din IoT-hubb bör du se en lista över enheter. Välj det enhets-ID som du skapade för den här självstudien.

  6. Välj Telemetri.

  7. När enheten fortfarande körs väljer du Starta. Om enheten inte körs visas inte telemetri.

    Start monitoring device telemetry in IoT Explorer.

  8. Du bör se de meddelanden som kommer från enheten, med den senaste som visas längst upp.

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

    Titta på inkommande meddelanden en stund för att kontrollera att du ser tre olika typer av meddelanden: normal, lagring och kritisk. När du har sett detta kan du stoppa enheten.

Alla dessa meddelanden kommer till den inbyggda standardslutpunkten för din IoT-hubb. I nästa avsnitt ska vi skapa en anpassad slutpunkt och dirigera några av dessa meddelanden till lagring baserat på meddelandeegenskaperna. Dessa meddelanden slutar visas i IoT Explorer eftersom meddelanden endast går till den inbyggda slutpunkten när de inte matchar några andra vägar i IoT Hub.

Konfigurera meddelandedirigering

Du ska dirigera meddelanden till olika resurser baserat på egenskaper som är kopplade till meddelandet av den simulerade enheten. Meddelanden som inte är anpassade dirigeras skickas till standardslutpunkten (meddelanden/händelser).

Exempelappen för den här självstudien tilldelar en nivåegenskap till varje meddelande som skickas till IoT Hub. Varje meddelande tilldelas slumpmässigt en nivå av normal, lagring eller kritisk.

Det första steget är att konfigurera slutpunkten som data ska dirigeras till. Det andra steget är att konfigurera meddelandevägen som använder slutpunkten. När du har konfigurerat routningen kan du visa slutpunkter och meddelandevägar i portalen.

Skapa ett lagringskonto

Skapa ett Azure Storage-konto och en container inom det kontot, som innehåller de enhetsmeddelanden som dirigeras till det.

  1. Sök efter Lagringskonton i Azure-portalen.

  2. Välj Skapa.

  3. Ange följande värden för ditt lagringskonto:

    Parameter Värde
    Abonnemang Välj samma prenumeration som innehåller din IoT-hubb.
    Resursgrupp Välj samma resursgrupp som innehåller din IoT-hubb.
    Namn på lagringskonto Ange ett globalt unikt namn för ditt lagringskonto.
    Prestanda Acceptera standardvärdet Standard .

    Screenshot that shows creating a storage account.

  4. Du kan acceptera alla andra standardvärden genom att välja Granska + skapa.

  5. När valideringen är klar väljer du Skapa.

  6. När distributionen är klar väljer du Gå till resurs.

  7. I menyn för lagringskonto väljer du Containrar i avsnittet Datalagring .

  8. Välj + Container för att skapa en ny container.

    Screenshot that shows creating a storage container

  9. Ange ett namn för containern och välj Skapa.

Dirigera till ett lagringskonto

Konfigurera nu routning för lagringskontot. I det här avsnittet definierar du en ny slutpunkt som pekar på lagringskontot som du skapade. Skapa sedan en väg som filtrerar efter meddelanden där nivåegenskapen är inställd på lagring och dirigerar dem till lagringsslutpunkten.

Kommentar

Data kan skrivas till bloblagring i antingen Apache Avro-format , som är standard eller JSON.

Kodningsformatet kan bara anges när bloblagringsslutpunkten konfigureras. Det går inte att ändra formatet för en slutpunkt som redan har konfigurerats. När du använder JSON-kodning måste du ange contentType till JSON och contentEncoding till UTF-8 i egenskaperna för meddelandesystemet.

Mer detaljerad information om hur du använder en bloblagringsslutpunkt finns i vägledningen om routning till lagring.

  1. Gå till din IoT-hubb i Azure-portalen.

  2. På resursmenyn under Hubbinställningar väljer du Meddelanderoutning och sedan Lägg till.

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

  3. På fliken Slutpunkt skapar du en lagringsslutpunkt genom att ange följande information:

    Parameter Värde
    Slutpunktstyp Välj Storage.
    Slutpunktsnamn Ange ett unikt namn för den här slutpunkten.
    Azure Storage-container Välj Välj en container. Följ anvisningarna för att välja det lagringskonto och den container som du skapade i föregående avsnitt.
    Kodning Välj JSON. Om det här fältet är nedtonat stöder inte din lagringskontoregion JSON. I så fall fortsätter du med standard-AVRO.

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

  4. Acceptera standardvärdena för resten av parametrarna och välj Skapa + nästa.

  5. På fliken Väg anger du följande information för att skapa en väg som pekar på lagringsslutpunkten som du skapade:

    Parameter Värde
    Namn Skapa ett namn för din väg.
    Datakälla Kontrollera att Enhetstelemetrimeddelanden har valts i listrutan.
    Aktivera väg Kontrollera att det här fältet är markerat.
    Routningsfråga Ange level="storage" som frågesträng.

    Screenshot that shows adding a route with a routing query.

  6. Välj Skapa + hoppa över berikanden.

Visa dirigerade meddelanden

När vägen har skapats i IoT Hub och aktiverats börjar den omedelbart dirigera meddelanden som uppfyller frågevillkoret till lagringsslutpunkten.

Övervaka den inbyggda slutpunkten med IoT Explorer

Gå tillbaka till IoT Explorer-sessionen på utvecklingsdatorn. Kom ihåg att IoT Explorer övervakar den inbyggda slutpunkten för din IoT-hubb. Det innebär att du nu bara bör se de meddelanden som inte dirigeras av den anpassade vägen som vi skapade.

Starta exemplet igen genom att köra koden. Titta på inkommande meddelanden en stund och du bör bara se meddelanden där level är inställt på normal eller critical.

Visa meddelanden i lagringscontainern

Kontrollera att meddelandena kommer till lagringscontainern.

  1. Navigera till ditt lagringskonto på Azure-portalen.

  2. Välj Containrar i avsnittet Datalagring på menyn.

  3. Välj den container som du skapade för den här självstudien.

  4. Det bör finnas en mapp med namnet på din IoT-hubb. Öka detaljnivån genom filstrukturen tills du kommer till en .json fil.

    Screenshot that shows finding routed messages in storage.

  5. Välj JSON-filen och välj sedan Ladda ned för att ladda ned JSON-filen. Bekräfta att filen innehåller meddelanden från enheten som har egenskapen level inställd på storage.

  6. Sluta köra exemplet.

Rensa resurser

Om du vill ta bort alla Azure-resurser som du använde för den här självstudien tar du bort resursgruppen. Detta tar även bort alla resurser som ingår i gruppen. Om du inte vill ta bort hela resursgruppen använder du Azure-portalen för att hitta och ta bort de enskilda resurserna.

Om du tänker fortsätta till nästa självstudie behåll de resurser som du har skapat här.

  1. I Azure-portalen går du till den resursgrupp som innehåller IoT-hubben och lagringskontot för den här självstudien.
  2. Granska alla resurser som finns i resursgruppen för att avgöra vilka som du vill rensa.
    • Om du vill ta bort alla resurser väljer du Ta bort resursgrupp.
    • Om du bara vill ta bort en viss resurs använder du kryssrutorna bredvid varje resursnamn för att markera de som du vill ta bort. Välj sedan ta bort.

Nästa steg

I den här självstudien har du lärt dig hur du skapar en anpassad slutpunkt för en Azure-resurs och sedan skapar en väg för att skicka enhetsmeddelanden till slutpunkten. Fortsätt till nästa självstudie för att lära dig hur du berikar meddelanden med extra data som kan användas för att förenkla nedströmsbearbetning