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

Gäller för:IoT Edge 1.4 checkmark IoT Edge 1.4

Viktigt!

IoT Edge 1.4 är den version som stöds. 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 sedan som en IoT Edge-modul utan extra kod.

Du lär dig att:

  • 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 of stream architecture, showing the staging and deploying of an Azure Stream Analytics job.

Stream Analytics-modulen i den här självstudien beräknar medeltemperaturen över ett rullande 30-sekundersschema. När medeltemperaturen når 70 grader skickar modulen en varning så att enheten kan vidta en åtgärd. I det här fallet är åtgärden att återställa den simulerade temperatursensorn. Du kan till exempel 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 i en produktionsmiljö.

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 kan du använda logik från Azure Stream Analytics och flytta den till själva enheten. Du kan minska hur mycket data som överförs och minska tiden det tar att reagera på insikter genom att bearbeta telemetriströmmar på gränsen. Azure IoT Edge och Azure Stream Analytics är integrerade för att förenkla arbetsbelastningsutvecklingen.

Azure Stream Analytics tillhandahåller en omfattande strukturerad frågesyntax för dataanalys, både i molnet och på IoT Edge-enheter. Mer information finns i Dokumentation om Azure Stream Analytics.

Förutsättningar

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

  • En Azure IoT Edge-enhet.

    Du kan använda 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 utför följande steg:

  • Ta emot data från din IoT Edge-enhet.
  • Fråga telemetridata efter värden utanför ett angivet intervall.
  • Vidta åtgärder på 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 det lagras på ett sätt som kan anropas från enheten. Du kan använda ett befintligt Azure Storage-konto eller skapa ett nytt nu.

  1. Gå till Skapa ett lagringskonto för resurs>>i Azure-portalen.

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

    Fält Värde
    Prenumeration Välj samma prenumeration som din IoT-hubb.
    Resursgrupp Vi rekommenderar att du använder samma resursgrupp för alla dina testresurser för snabbstarter och självstudier för IoT Edge. Till exempel IoTEdgeResources.
    Name Ange ett unikt namn för lagringskontot.
    Plats Välj en plats i närheten av 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. Sakernas Internet från menyn till vänster
    3. Skriv Stream Analytics i sökfältet för att hitta det på Marketplace
    4. Välj Skapa och sedan Stream Analytics-jobb på den nedrullningsbara menyn

    Screenshot showing where to find the Stream Analytics job service in the Marketplace and where to create a new job.

  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 Vi rekommenderar att du använder 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. Det här alternativet innebär att distributionen går till en IoT Edge-enhet i stället för att finnas i molnet.
  3. Välj Granska + skapa.

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

Konfigurera jobbet

När ditt Stream Analytics-jobb har skapats i Azure-portalen kan du konfigurera det med indata, utdata och en fråga som ska köras på de data som skickas.

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

Kommentar

Du anger exakt var data kommer från och går till i nästa avsnitt, Konfigurera IoT Edge-inställningar, när du distribuerar 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.

    Screenshot showing where to add stream input in the Azure portal.

  3. Välj Edge Hub i listrutan.

    Om du inte ser alternativet Edge Hub i listan kan du ha skapat ditt Stream Analytics-jobb som ett molnbaserat jobb. Prova att skapa ett nytt jobb och se till att välja 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. Öppna Utdata under Jobbtopologi och välj sedan Lägg till.

    Screenshot showing where to add stream output in the Azure portal.

  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 har förprogrammerats till sensorn som en åtgärd som kan vidtas.

  3. Välj Spara fråga.

Konfigurera IoT Edge-inställningar

För att förbereda ditt Stream Analytics-jobb för distribution på en IoT Edge-enhet måste du associera ditt Azure Stream Analytics-jobb med ett lagringskonto. När du distribuerar jobbet exporteras jobbdefinitionen till lagringskontot i form av en container.

  1. I Stream Analytics-tjänsten på menyn Inställningar väljer du 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. Eller 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 var tvungen att göra några ändringar.

    Screenshot of where to add a storage account in your Stream Analytics job in the Azure portal.

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

    Screenshot confirming that two new modules are on your device. The screenshot also shows where the Review + create button is located.

  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.

    Screenshot that shows your modules list of your device in the Azure portal.

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 har bild-URI:n 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 Modultvilling Inställningar 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 bör vara samma namn som du ser i modullistan för din enhet på sidan Ange moduler , som du ser i Azure-portalen.

    Screenshot showing the name of your Stream Analytics modules in your I o T Edge device in the Azure portal.

    Namn Värde
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset 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

Nu kan du 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 kan du använda 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.

    Screenshot that shows the reset command in your output from your module logs.

Rensa resurser

Om du tänker fortsätta till nästa rekommenderade artikel kan du behålla de resurser och konfigurationer du har skapat och använda dem igen. Du kan även fortsätta att använda samma IoT Edge-enhet som en testenhet.

Annars kan du ta 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-hubben 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 finns i resursgruppen. 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 klicka i varje resurs och ta bort dem individuellt.

Nästa steg

I den här självstudien konfigurerade du ett Azure Streaming Analytics-jobb för att analysera data från din IoT Edge-enhet. Sedan läste du in den här Azure Stream Analytics-modulen på din IoT Edge-enhet för att bearbeta och reagera på temperaturökning lokalt och skicka den aggregerade dataströmmen till molnet. Om du vill se hur Azure IoT Edge kan skapa flera lösningar för ditt företag fortsätter du med de andra självstudiekurserna.