Självstudie: Skicka enhetsdata till Azure Storage med hjälp av IoT Hub meddelandedirigering

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 den 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 Ansluta till 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 Portal.

Registrera en enhet och skicka meddelanden till IoT Hub

Registrera en ny enhet i din IoT-hubb.

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

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

  3. Välj Lägg till enhet.

    Skärmbild som visar hur du lägger till en ny enhet i Azure Portal.

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

  5. Den nya enheten ska finnas i listan över enheter nu. Om den inte är det uppdaterar du sidan. Välj enhets-ID 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 meddelanden om enhetstelemetri.

    Skärmbild som visar kopiering av primärnyckeln från sidan med enhetsinformation.

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.

Tips

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 gjorde det som en del av förutsättningarna 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 navigerar 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ängen 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 .

    Öppna principen för delad åtkomst i iothubowner.

  4. Kopiera den primära anslutningssträngen.

    Kopiera den primära anslutningssträngen för iothubowner.

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

  1. Öppna IoT Explorer på utvecklingsdatorn.

  2. Välj Lägg till anslutning.

    Skärmbild som visar hur du lägger till en IoT Hub-anslutning i 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.

    Börja övervaka enhetstelemetri i IoT Explorer.

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

    Visa meddelanden som kommer till IoT Hub på den inbyggda slutpunkten.

    Titta på inkommande meddelanden en liten 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 att 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 kommer att 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 i det kontot, som innehåller de enhetsmeddelanden som dirigeras till det.

  1. I Azure Portal söker du efter Lagringskonton.

  2. Välj Skapa.

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

    Parameter Värde
    Prenumeration 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 .

    Skärmbild som visar hur du skapar ett lagringskonto.

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

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

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

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

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

    Skärmbild som visar hur du skapar en lagringscontainer

  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å det lagringskonto som du skapade. Skapa sedan en väg som filtrerar för meddelanden där nivåegenskapen är inställd på lagring och dirigerar dem till lagringsslutpunkten.

Anteckning

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

Kodningsformatet kan bara anges när bloblagringsslutpunkten har konfigurerats. 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. I Azure Portal går du till din IoT-hubb.

  2. I resursmenyn under Hubbinställningar väljer du Meddelandedirigering och sedan Lägg till.

    Skärmbild som visar platsen för knappen Lägg till för att lägga till en ny väg i din IoT-hubb.

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

    Parameter Värde
    Slutpunktstyp Välj Lagring.
    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 lagringskontot och containern som du skapade i föregående avsnitt.
    Kodning Välj JSON. Om det här fältet är nedtonat stöder inte lagringskontots region JSON. I så fall fortsätter du med standard-AVRO.

    Skärmbild som visar fönstret Lägg till en lagringsslutpunkt med rätt alternativ valda.

  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.

    Skärmbild som visar hur du lägger till en väg med en routningsfråga.

  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 liten 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 i filstrukturen tills du kommer till en .json-fil .

    Skärmbild som visar hur du hittar dirigerade meddelanden i lagringen.

  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 level egenskapen 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 Portal för att hitta och ta bort de enskilda resurserna.

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

  1. I Azure Portal 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 du vill rensa.
    • Om du vill ta bort alla resurser väljer du Ta bort resursgrupp.
    • Om du bara vill ta bort vissa resurser 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 den slutpunkten. Fortsätt till nästa självstudie om du vill lära dig hur du utökar meddelanden med extra data som kan användas för att förenkla nedströmsbearbetning