Dela via


Självstudie: Distribuera Azure Stream Analytics som en IoT Edge-modul

Applies to:IoT Edge 1.5 bock IoT Edge 1.5

Viktigt!

IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphörde den 12 november 2024. Om du använder en tidigare version läser du Update IoT Edge.

I den här självstudien skapar du ett Azure Stream Analytics jobb i Azure-portalen och distribuerar det som en IoT Edge modul utan extra kod.

I den här tutorialen lär du dig följande:

  • Skapa ett Azure Stream Analytics jobb för att bearbeta data på gränsen.
  • Anslut det nya Azure Stream Analytics jobbet till andra IoT Edge moduler.
  • Distribuera Azure Stream Analytics-jobbet till en IoT Edge enhet från Azure-portalen.

Diagram som visar dataströmarkitektur, inklusive mellanlagring och distribution av ett Azure Stream Analytics jobb.

Stream Analytics-modulen i den här självstudien beräknar medeltemperaturen över ett rullande 30-sekundersfönster. När genomsnittet når 70 skickar modulen en avisering om att enheten ska vidta åtgärder. I det här fallet är åtgärden att återställa den simulerade temperatursensorn. I en produktionsmiljö kan du använda den här funktionen för att stänga av en dator eller vidta förebyggande åtgärder när temperaturen når farliga nivåer.

Varför ska Azure Stream Analytics användas i IoT Edge?

Många IoT-lösningar använder analystjänster för att få insikter om data när de kommer till molnet från IoT-enheter. Med hjälp av Azure IoT Edge flyttar du logiken Azure Stream Analytics till själva enheten. Bearbetning av telemetriströmmar vid gränsen minskar mängden uppladdade data och den tid det tar att reagera på användbara insikter. Azure IoT Edge och Azure Stream Analytics integrerar för att förenkla utvecklingen av arbetsbelastningar.

Azure Stream Analytics använder en strukturerad frågesyntax för dataanalys i molnet och på IoT Edge enheter. Mer information finns i Azure Stream Analytics dokumentation.

Förutsättningar

Om du inte har ett Azure konto skapar du ett fritt konto innan du börjar.

  • En Azure IoT Edge-enhet.

    Använd en Azure virtuell dator som en IoT Edge enhet genom att följa stegen i snabbstarten för Linux eller Windows enheter.

  • En kostnadsfri eller standardnivå IoT Hub i Azure.

Skapa ett Azure Stream Analytics jobb

I det här avsnittet skapar du ett Azure Stream Analytics jobb som:

  • Tar emot data från din IoT Edge enhet.
  • Frågar telemetridata efter värden utanför ett angivet intervall.
  • Vidtar åtgärder på den IoT Edge enheten baserat på frågeresultaten.

Skapa ett lagringskonto

När du skapar ett Azure Stream Analytics jobb som ska köras på en IoT Edge enhet måste du lagra det så att enheten kan komma åt det. Du kan använda ett befintligt Azure Storage konto eller skapa ett nytt.

  1. I Azure-portalen går du till Skapa en resurs > Storage > Storage-konto.

  2. Skapa lagringskontot genom att ange följande värden:

    Fält Värde
    Prenumeration Välj samma prenumeration som din IoT-hubb.
    Resursgrupp Använd samma resursgrupp för alla dina testresurser för IoT Edge snabbstarter och självstudier. Till exempel IoTEdgeResources.
    Namn Ange ett unikt namn för lagringskontot.
    Plats Välj en plats nära dig.
  3. Behåll standardvärdena för de andra fälten och välj Granska + Skapa.

  4. Granska inställningarna och välj sedan Skapa.

Skapa ett nytt jobb

  1. I Azure-portalen väljer du:

    1. Skapa en resurs
    2. Internet of Things från menyn till vänster
    3. Skriv Stream Analytics i sökfältet för att hitta det i Azure Marketplace
    4. Välj Skapa och sedan Stream Analytics-jobb på den nedrullningsbara menyn
  2. Ange följande värden för att skapa ditt nya Stream Analytics-jobb:

    Fält Värde
    Namn Ange ett namn för ditt jobb. Till exempel IoTEdgeJob
    Prenumeration Välj samma prenumeration som din IoT-hubb.
    Resursgrupp Använd samma resursgrupp för alla testresurser som du skapar under IoT Edge snabbstarter och självstudier. Till exempel en resurs med namnet IoTEdgeResources.
    Region Välj en plats i närheten av dig.
    Värdmiljö Välj Gräns. Med det här alternativet kan du distribuera till en IoT Edge enhet i stället för molnet.
  3. Välj Förhandsgranska + skapa.

  4. Bekräfta alternativen och välj sedan Skapa.

Konfigurera jobbet

När du har skapat streamanalysjobbet i Azure-portalen konfigurerar du det med ett input, ett output och en query för att köra på data som passerar.

Det här avsnittet visar hur du skapar ett jobb som tar emot temperaturdata från en IoT Edge enhet. Den analyserar data i ett rullande 30-sekundersfönster. Om medeltemperaturen i det fönstret överskrider 70 grader skickar jobbet en avisering till den IoT Edge enheten.

Kommentar

I nästa avsnitt, Konfigurera IoT Edge-inställningar, anger du var data hämtas från och skickas till när du kör jobbet.

Ange indata och utdata

  1. Gå till Stream Analytics-jobbet i Azure portalen.

  2. Under Jobbtopologi väljer du Indata och sedan Lägg till indata.

  3. Välj Edge Hub i listrutan.

    Om du inte ser alternativet Edge Hub i listan kanske du har skapat ditt Stream Analytics-jobb som ett molnbaserat jobb. Prova att skapa ett nytt jobb och se till att du väljer Edge som värdmiljö.

  4. I fönstret Ny indata anger du temperatur som indataalias.

  5. Behåll standardvärdena för de andra fälten och välj Spara.

  6. Under Jobbtopologi väljer du Utdata och sedan Lägg till.

  7. Välj Edge Hub i listrutan.

  8. I rutan Nya utdata anger du avisering som utdataalias.

  9. Behåll standardvärdena för de andra fälten och välj Spara.

Skapa en fråga

  1. Välj Fråga under Jobbtopologi.

  2. Ersätt standardtexten med följande fråga:

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    I den här frågan skickar SQL-koden ett återställningskommando till aviseringsutdata om den genomsnittliga datortemperaturen i ett 30-sekundersfönster når 70 grader. Återställningskommandot är förprogrammerad till sensorn som en åtgärd.

  3. Välj Spara fråga.

Konfigurera IoT Edge inställningar

Om du vill distribuera Stream Analytics-jobbet på en IoT Edge enhet associerar du ditt Azure Stream Analytics jobb med ett lagringskonto. När du distribuerar jobbet exporteras jobbdefinitionen till lagringskontot som en container.

  1. I Stream Analytics-tjänsten går du till menyn Inställningar och väljer Inställningar för lagringskonto.

  2. Välj alternativet Välj Blob Storage/ADLS Gen 2 från dina prenumerationer.

  3. Ditt Azure lagringskonto visas automatiskt på sidan. Om du inte ser något, se till att du skapar ett lagringsutrymme. Om du behöver välja ett annat lagringsutrymme än det som anges i fältet Lagringskonto väljer du det i listrutan.

  4. Välj Spara om du har gjort några ändringar.

Distribuera uppgiften

Nu är du redo att distribuera det Azure Stream Analytics jobbet på din IoT Edge enhet.

I det här avsnittet använder du guiden Set Modules i Azure-portalen för att skapa ett distributionsmanifest. Ett distributionsmanifest är en JSON-fil som beskriver alla moduler som distribueras till en enhet. Manifestet visar också de containerregister som lagrar modulavbildningarna, hur modulerna ska hanteras och hur modulerna kan kommunicera med varandra. Din IoT Edge-enhet hämtar sitt distributionsmanifest från IoT Hub och använder sedan informationen i den för att distribuera och konfigurera alla dess tilldelade moduler.

I den här handledningen kommer du att distribuera två moduler. Den första är SimulatedTemperatureSensor, som är en modul som simulerar en temperatur- och luftfuktighetssensor. Den andra modulen är ditt Stream Analytics-jobb. Sensormodulen tillhandahåller dataströmmen som din jobbfråga analyserar.

  1. I Azure-portalen går du till din IoT-hubb.

  2. Välj Enheter under menyn Enhetshantering och välj sedan din IoT Edge enhet för att öppna den.

  3. Välj Ange moduler.

  4. Om du tidigare distribuerade modulen SimulatedTemperatureSensor på den här enheten kan den fyllas i automatiskt. Om den inte gör det lägger du till modulen med följande steg:

    1. Välj + Lägg till och välj IoT Edge Module.
    2. Som namn skriver du SimulatedTemperatureSensor.
    3. För bild-URI anger du mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
    4. Lämna de andra standardinställningarna och välj sedan Lägg till.
  5. Lägg till ditt Azure Stream Analytics Edge-jobb med följande steg:

    1. Välj + Lägg till och välj Azure Stream Analytics Module.
    2. Välj din prenumeration och det Azure Stream Analytics Edge-jobb som du skapade.
    3. Välj Spara.

    När du har sparat ändringarna publiceras informationen om Stream Analytics-jobbet till den lagringscontainer som du skapade.

  6. När Stream Analytics-tillägget har slutfört distributionen bekräftar du att två nya moduler visas på sidan Ange moduler .

    Skärmbild som bekräftar att två nya moduler finns på enheten. Skärmbilden visar också var knappen Granska + skapa finns.

  7. Välj Förhandsgranska + skapa. Distributionsmanifestet visas.

  8. Välj Skapa.

  9. På sidan Ange moduler på enheten bör du efter några minuter se modulerna som visas och körs. Uppdatera sidan om du inte ser moduler eller vänta några minuter till och uppdatera den igen.

Förstå de två nya modulerna

  1. På fliken Set-moduler på enheten väljer du namnet på Stream Analytics-modulen för att ta dig till sidan Update IoT Edge Module. Här kan du uppdatera inställningarna.

    Fliken Settings har Image URI som innehåller en standardbild för Azure Stream Analytics. Den här avbildningen används för varje Stream Analytics-modul som distribueras till en IoT Edge enhet.

    Fliken Module Twin Settings visar JSON som definierar egenskapen Azure Stream Analytics (ASA) med namnet ASAJobInfo. Värdet för den egenskapen pekar på jobbdefinitionen i din lagringscontainer. Den här egenskapen är hur Stream Analytics-avbildningen konfigureras med din specifika jobbinformation.

    Som standard får Stream Analytics-modulen samma namn som det jobb som den baseras på. Du kan ändra modulnamnet på den här sidan om du vill, men det är inte nödvändigt.

  2. Välj Använd om du har gjort ändringar eller Avbryt om du inte har gjort några ändringar.

Tilldela vägar till dina moduler

  1. På sidan Set modules on device:your-device-name (Ange moduler på enhet:<din-enhet-namn> ) väljer du Nästa: Vägar.

  2. På fliken Routes definierar du hur meddelanden skickas mellan moduler och IoT Hub. Meddelanden skapas med namn- och värdepar.

    Lägg till ruttnamnen och värdena tillsammans med paren som visas i följande tabell. Ersätt instanser av {moduleName} med namnet på din Azure Stream Analytics modul. Den här modulen bör vara samma namn som du ser i modullistan för enheten på sidan Set, som du ser i Azure portalen.

    Screenshot som visar namnet på dina Stream Analytics-moduler i din IoT Edge-enhet på Azure portalen.

    Namn Värde
    telemetri till molnet FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    varningarAttÅterställa FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    De vägar som du deklarerar här definierar dataflödet via den IoT Edge enheten. Telemetridata från SimulatedTemperatureSensor skickas till IoT Hub och till temperature indata som konfigurerades i Stream Analytics-jobbet. Utdatameddelandena alert skickas till IoT Hub och modulen SimulatedTemperatureSensor för att utlösa återställningskommandot.

  3. Välj Nästa: Granska + Skapa.

  4. På fliken Granska + skapa kan du se hur informationen du angav i guiden konverteras till ett JSON-distributionsmanifest.

  5. När du är klar med att granska manifestet väljer du Skapa för att slutföra inställningen av modulen.

Visa data

Gå till din IoT Edge enhet för att se interaktionen mellan modulen Azure Stream Analytics och modulen SimulatedTemperatureSensor.

Kommentar

Om du använder en virtuell dator för en enhet använder du Azure Cloud Shell för att få direkt åtkomst till alla Azure autentiserade tjänster.

  1. Kontrollera att alla moduler körs i Docker:

    iotedge list  
    
  2. Visa alla systemloggar och statistikdata. Ersätt {moduleName} med namnet på din Azure Stream Analytics modul:

    iotedge logs -f {moduleName}  
    
  3. Se hur återställningskommandot påverkar SimulatedTemperatureSensor genom att visa sensorloggarna:

    iotedge logs SimulatedTemperatureSensor
    

    Du kan se maskinens temperatur gradvis stiga tills den når 70 grader i 30 sekunder. Då utlöser Stream Analytics-modulen en återställning och datortemperaturen går tillbaka till 21.

    Skärmbild av återställningskommandot i modulloggarnas utdata.

Rensa resurser

Om du vill fortsätta till nästa rekommenderade artikel behåller du de resurser och konfigurationer som du skapade och återanvänder dem. Du kan också fortsätta att använda samma IoT Edge enhet som en testenhet.

Annars tar du bort de lokala konfigurationerna och Azure resurser som du använde i den här artikeln för att undvika avgifter.

Ta bort Azure resurser

Du kan inte ångra borttagning av Azure resurser och resursgrupper. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat IoT Hub i en befintlig resursgrupp som innehåller resurser som du vill behålla tar du bara bort själva IoT Hub resursen, inte resursgruppen.

Ta bort resurser:

  1. Logga in på portalen Azure och välj sedan Resource-grupper.
  2. Välj namnet på resursgruppen som innehåller dina IoT Edge testresurser.
  3. Granska listan över resurser som resursgruppen innehåller. Om du vill ta bort alla kan du välja Ta bort resursgrupp. Om du bara vill ta bort några av dem väljer du varje resurs för att ta bort dem individuellt.

Nästa steg

I den här självstudien konfigurerar du ett Azure Stream Analytics jobb för att analysera data från din IoT Edge enhet. Du läste in modulen Azure Stream Analytics på din IoT Edge enhet för att bearbeta och reagera på temperaturökningar lokalt och skickade den aggregerade dataströmmen till molnet. Om du vill veta hur Azure IoT Edge kan hjälpa dig att skapa fler lösningar kan du fortsätta till nästa självstudie.