Dela via


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

Gäller för:Bockmarkering för IoT Edge 1.5 IoT Edge 1.5

Viktigt!

IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphör från och med den 12 november 2024. Om du har en tidigare version läser du Uppdatera 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 bearbetning av data på gränsen.
  • Anslut det nya Azure Stream Analytics-jobbet med andra IoT Edge-moduler.
  • Distribuera Azure Stream Analytics-jobbet till en IoT Edge-enhet från Azure Portal.

Diagram som visar dataströmsarkitektur, 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-sekundersschema. 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 du använda Azure Stream Analytics 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 Azure IoT Edge flyttar du Azure Stream Analytics-logik 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 integreras för att förenkla arbetsbelastningsutvecklingen.

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

Förutsättningar

Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.

  • En Azure IoT Edge-enhet.

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

  • En IoT Hub på kostnadsfri nivå eller standardnivå 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å IoT Edge-enheten baserat på frågeresultatet.

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 Portal går du till Skapa ett lagringskonto> för resurs.>

  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 snabbstarter och självstudier för IoT Edge. 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 Portal väljer du:

    1. Skapa en resurs
    2. Sakernas Internet från menyn till vänster
    3. Skriv Stream Analytics i sökfältet för att hitta det på 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 snabbstarterna och självstudierna i IoT Edge. 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 Granska + skapa.

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

Konfigurera jobbet

När du har skapat ditt Stream Analytics-jobb i Azure-portalen konfigurerar du det med indata, utdata och en fråga som ska köras på de 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 IoT Edge-enheten.

Kommentar

Du anger var data kommer ifrån och vart den ska i nästa avsnitt, Konfigurera IoT Edge-inställningar, när du implementerar jobbet.

Ange indata och utdata

  1. Gå till Stream Analytics-jobbet på Azure Portal.

  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 ditt Stream Analytics-jobb 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 Storage-konto visas automatiskt på sidan. Om du inte ser något ska du skapa 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 jobbet

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

I det här avsnittet använder du guiden Ange moduler på Azure Portal 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 distributionsmanifestet från IoT Hub och använder sedan informationen i det för att distribuera och konfigurera alla dess tilldelade moduler.

I den här självstudien ska du 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. Gå till din IoT-hubb på Azure Portal.

  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-modul.
    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-modul.
    2. Välj din prenumeration och Azure Stream Analytics Edge-jobbet 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 Granska + 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 Ange moduler på enheten väljer du ditt Stream Analytics-modulnamn för att ta dig till sidan Uppdatera IoT Edge-modul. Här kan du uppdatera inställningarna.

    fliken Inställningar finns den bild-URI som pekar på en Azure Stream Analytics-standardbild. Den här avbildningen används för varje Stream Analytics-modul som distribueras till en IoT Edge-enhet.

    Fliken Inställningar för modultvilling visar JSON som definierar egenskapen Azure Stream Analytics (ASA) med namnet ASAJobInfo. Värdet för den egenskapen pekar på jobbdefinitionen i lagringscontainern. 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 Vägar definierar du hur meddelanden skickas mellan moduler och IoT Hub. Meddelanden skapas med namn- och värdepar.

    Lägg till routningsnamnen och värdena med de par som visas i följande tabell. Ersätt instanser av {moduleName} med namnet på din Azure Stream Analytics-modul. Den här modulen ska vara samma namn som du ser i modullistan för enheten på sidan Ange moduler, som du ser i Azure Portal.

    Skärmbild som visar namnet på dina Stream Analytics-moduler på din IoT Edge-enhet i Azure Portal.

    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 IoT Edge-enheten. Telemetridata från SimulatedTemperatureSensor skickas till IoT Hub och till temperaturindata som konfigurerades i Stream Analytics-jobbet. Aviseringsutdatameddelandena 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 Azure Stream Analytics-modulen 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 även fortsätta att använda samma IoT Edge-enhet som en testenhet.

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

Ta bort Azure-resurser

Det går inte att ångra borttagningen 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 har resurser som du vill behålla tar du bara bort själva IoT Hub-resursen, inte resursgruppen.

Ta bort resurser:

  1. Logga in på Azure-portalen och välj Resursgrupper.

  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 kan du välja 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 Azure Stream Analytics-modulen 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 prova nästa självstudie.