Zelfstudie: Azure Stream Analytics implementeren als een IoT Edge-module

Van toepassing op:IoT Edge 1.4 checkmark IoT Edge 1.4

Belangrijk

IoT Edge 1.4 is de ondersteunde release. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.

In deze zelfstudie maakt u een Azure Stream Analytics-taak in Azure Portal en implementeert u deze vervolgens als een IoT Edge-module zonder extra code.

U leert het volgende:

  • Een Azure Stream Analytics-taak maken om gegevens te verwerken.
  • Verbinding maken tussen de nieuwe Azure Stream Analytics-taak en andere IoT Edge-modules.
  • De Azure Stream Analytics-taak implementeren op een IoT Edge-apparaat vanuit Azure Portal.

Diagram of stream architecture, showing the staging and deploying of an Azure Stream Analytics job.

Met de Stream Analytics-module in deze zelfstudie wordt gedurende 30 seconden (lopende telling) de gemiddelde temperatuur gemeten. Wanneer het gemiddelde de 70 bereikt, wordt met de module voor het apparaat een waarschuwing verzonden dat er actie moet worden ondernomen. In dit geval bestaat deze actie uit het opnieuw instellen van de gesimuleerde temperatuursensor. In een productieomgeving kunt u deze functie gebruiken om een computer uit te schakelen of om voorzorgsmaatregelen te nemen wanneer de temperatuur een gevaarlijk niveau bereikt.

Waarom Azure Stream Analytics gebruiken in IoT Edge?

Veel IoT-oplossingen maken gebruik van analyseservices om inzicht te krijgen in gegevens wanneer deze binnenkomen in de cloud vanaf IoT-apparaten. Met Azure IoT Edge kunt u de logica van Azure Stream Analytics verplaatsen naar het apparaat zelf. Door telemetriestromen te verwerken kunt u de hoeveelheid geüploade gegevens verkleinen en tijd besparen bij het reageren op inzichten waarvoor een actie kan worden uitgevoerd. Azure IoT Edge en Azure Stream Analytics zijn geïntegreerd om uw workloadontwikkeling te vereenvoudigen.

Azure Stream Analytics biedt een rijk gestructureerde querysyntaxis voor gegevensanalyse, zowel in de cloud als op IoT Edge-apparaten. Zie Documentatie voor Azure Stream Analytics voor meer informatie.

Vereisten

Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

  • Een Azure IoT Edge-apparaat.

    U kunt een virtuele Azure-machine gebruiken als een IoT Edge-apparaat door de stappen te volgen in de quickstart voor Linux- of Windows-apparaten.

  • Een gratis of standaard IoT Hub-laag in Azure.

Een Azure Stream Analytics-taak maken

In deze sectie maakt u een Azure Stream Analytics-taak die de volgende stappen uitvoert:

  • Gegevens ontvangen van uw IoT Edge-apparaat.
  • Query's uitvoeren op de telemetriegegevens voor waarden buiten een ingesteld bereik.
  • Actie ondernemen op het IoT Edge apparaat op basis van de queryresultaten.

Een opslagaccount maken

Wanneer u een Azure Stream Analytics-taak maakt die op een IoT Edge-apparaat moet worden uitgevoerd, moet deze worden opgeslagen op een manier die door het apparaat kan worden aangeroepen. U kunt een bestaand Azure-opslagaccount gebruiken of een nieuwe maken.

  1. Ga in Azure Portal naar Een resource maken>Opslag>Opslagaccount.

  2. Geef de volgende waarden op om uw opslagaccount te maken:

    Veld Waarde
    Abonnement Kies het hetzelfde abonnement als uw IoT-hub.
    Resourcegroep Het wordt aanbevolen om dezelfde resourcegroep te gebruiken voor alle testresources voor de IoT Edge-quickstarts en -zelfstudies. zoals IoTEdgeResources.
    Naam Voer een unieke naam in voor het opslagaccount.
    Locatie Kies een locatie dicht bij u in de buurt.
  3. Houd de standaardwaarden voor de andere velden aan en selecteer Beoordelen en maken.

  4. Controleer uw instellingen en selecteer vervolgens Maken.

Een nieuwe taak maken

  1. Selecteer in Azure Portal:

    1. Een resource maken
    2. Internet of Things in het menu aan de linkerkant
    3. Typ Stream Analytics in de zoekbalk om deze te vinden in Marketplace
    4. Selecteer Maken en vervolgens Stream Analytics-taak in de vervolgkeuzelijst

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

  2. Geef de volgende waarden op om uw nieuwe Stream Analytics-taak te maken:

    Veld Weergegeven als
    Naam Geef de taak een naam. Bijvoorbeeld IoTEdgeJob.
    Abonnement Kies het hetzelfde abonnement als uw IoT-hub.
    Resourcegroep U wordt aangeraden dezelfde resourcegroep te gebruiken voor alle testresources die u maakt tijdens de quickstarts en zelfstudies van IoT Edge. Bijvoorbeeld een resource met de naam IoTEdgeResources.
    Region Kies een locatie dicht bij u in de buurt.
    Hostingomgeving Selecteer Edge. Deze optie betekent dat de implementatie naar een IoT Edge-apparaat gaat in plaats van in de cloud te worden gehost.
  3. Selecteer Controleren + maken.

  4. Bevestig uw opties en selecteer Vervolgens Maken.

Uw taak configureren

Zodra uw Stream Analytics-taak is gemaakt in Azure Portal, kunt u deze configureren met invoer, uitvoer en een query die moet worden uitgevoerd op de gegevens die worden doorgegeven.

In deze sectie wordt een taak gemaakt die temperatuurgegevens ontvangt van een IoT Edge-apparaat. Het analyseert die gegevens in een doorlopend venster van 30 seconden. Als de gemiddelde temperatuur in dat venster meer dan 70 graden bedraagt, wordt er een waarschuwing verzonden naar het IoT Edge-apparaat.

Notitie

U geeft precies op waar de gegevens vandaan komen en gaat naar in de volgende sectie, IoT Edge-instellingen configureren wanneer u de taak implementeert.

Uw invoer en uitvoer instellen

  1. Navigeer naar uw Stream Analytics-taak in de Azure-portal.

  2. Selecteer onder Taaktopologie invoer en voeg invoer toe.

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

  3. Kies Edge Hub in de vervolgkeuzelijst.

    Als u de optie Edge Hub niet in de lijst ziet, hebt u mogelijk uw Stream Analytics-taak gemaakt als een in de cloud gehoste taak. Probeer een nieuwe taak te maken en zorg ervoor dat u Edge als hostingomgeving selecteert.

  4. Voer in het deelvenster Nieuwe invoer de temperatuur in als de invoeralias.

  5. Behoud de standaardwaarden van de andere velden en selecteer Opslaan.

  6. Open onder Taaktopologie de optie Uitvoer en selecteer vervolgens Toevoegen.

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

  7. Kies Edge Hub in de vervolgkeuzelijst.

  8. Voer in het deelvenster Nieuwe uitvoerwaarschuwing in als de uitvoeralias.

  9. Behoud de standaardwaarden van de andere velden en selecteer Opslaan.

Een query maken

  1. Selecteer Query onder Taaktopologie.

  2. Vervang de standaardtekst door de volgende query.

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

    In deze query verzendt de SQL-code een opdracht voor opnieuw instellen naar de waarschuwingsuitvoer als de gemiddelde temperatuur van de machine in een venster van 30 seconden 70 graden bereikt. De opdracht Reset is vooraf geprogrammeerd in de sensor als een actie die kan worden uitgevoerd.

  3. Selecteer Query opslaan.

Instellingen voor IoT Edge configureren

Als u uw Stream Analytics-taak wilt voorbereiden om te worden geïmplementeerd op een IoT Edge-apparaat, moet u uw Azure Stream Analytics-taak koppelen aan een opslagaccount. Wanneer u uw taak implementeert, wordt de taakdefinitie geëxporteerd naar het opslagaccount in de vorm van een container.

  1. Selecteer in uw Stream Analytics-service in het menu Instellingen de instellingen van het opslagaccount.

  2. Kies de optie Blob Storage/ADLS Gen 2 selecteren in uw abonnementsoptie .

  3. Uw Azure-opslagaccount wordt automatisch weergegeven op de pagina. Als u er geen ziet, controleert u of u een opslag maakt. Of als u een andere opslag moet kiezen dan de opslag die wordt vermeld in het veld Opslagaccount , selecteert u deze in de vervolgkeuzelijst.

  4. Selecteer Opslaan als u wijzigingen moet aanbrengen.

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

De taak implementeren

U bent nu klaar om de Azure Stream Analytics-taak te implementeren op uw IoT Edge-apparaat.

In deze sectie gaat u de wizard Modules instellen in de Azure-portal gebruiken om een distributiemanifest te maken. Een implementatiemanifest is een JSON-bestand dat alle modules beschrijft die op een apparaat worden geïmplementeerd. Het manifest toont ook de containerregisters waarin de moduleinstallatiekopieën worden opgeslagen, hoe de modules moeten worden beheerd en hoe de modules met elkaar kunnen communiceren. Uw IoT Edge-apparaat haalt het distributiemanifest op uit IoT Hub en gebruikt vervolgens de informatie die zich daarin bevindt, om alle modules die eraan zijn toegewezen te implementeren en te configureren.

In deze zelfstudie gaat u twee modules implementeren. De eerste is SimulatedTemperatureSensor, een module waarmee een temperatuur- en vochtigheidssensor wordt gesimuleerd. De tweede is uw Stream Analytics-taak. De sensormodule biedt de gegevensstroom die door uw taakquery wordt geanalyseerd.

  1. Ga in Azure Portal naar uw IoT-hub.

  2. Selecteer Apparaten in het menu Apparaatbeheer en selecteer vervolgens uw IoT Edge-apparaat om het te openen.

  3. Selecteer Modules instellen.

  4. Als u de module SimulatedTemperatureSensor al eerder op dit apparaat hebt geïmplementeerd, wordt deze mogelijk automatisch ingevuld. Als dit niet het probleem is, voegt u de module toe met de volgende stappen:

    1. Selecteer + Toevoegen en kies IoT Edge-module.
    2. Typ SimulatedTemperatureSensor als de naam.
    3. Voer voor de afbeeldings-URI mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4 in.
    4. Laat de overige standaardinstellingen staan en selecteer Vervolgens Toevoegen.
  5. Voeg uw Azure Stream Analytics Edge-taak toe met behulp van de volgende stappen:

    1. Selecteer + Toevoegen en kies Azure Stream Analytics-module.
    2. Selecteer uw abonnement en de Azure Stream Analytics-taak die u hebt gemaakt.
    3. Selecteer Opslaan.

    Zodra u de wijzigingen hebt opgeslagen, worden de details van uw Stream Analytics-taak gepubliceerd in de opslagcontainer die u hebt gemaakt.

  6. Nadat de implementatie van de Stream Analytics-toevoeging is voltooid, controleert u of er twee nieuwe modules worden weergegeven op de pagina Modules instellen.

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

  7. Selecteer Controleren + maken. Het implementatiemanifest wordt weergegeven.

  8. Selecteer Maken.

  9. Op de pagina Modules instellen van uw apparaat ziet u na een paar minuten dat de modules worden vermeld en uitgevoerd. Vernieuw de pagina als u geen modules ziet of wacht nog een paar minuten en vernieuw deze opnieuw.

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

Inzicht in de twee nieuwe modules

  1. Selecteer op het tabblad Modules instellen van uw apparaat de naam van de Stream Analytics-module om naar de pagina IoT Edge-module bijwerken te gaan. Hier kunt u de instellingen bijwerken.

    Het tabblad Instellingen bevat de afbeeldings-URI die verwijst naar een standaardinstallatiekopieën van Azure Stream Analytics. Deze enkele installatiekopie wordt gebruikt voor elke Stream Analytics-module die wordt geïmplementeerd op een IoT Edge-apparaat.

    Op het tabblad Instellingen van moduledubbel wordt de JSON weergegeven waarmee de ASA-eigenschap (Azure Stream Analytics) ASAJobInfo wordt gedefinieerd. De waarde van deze eigenschap verwijst naar de taakdefinitie in uw opslagcontainer. Deze eigenschap bepaalt hoe de installatiekopie van Stream Analytics wordt geconfigureerd met uw specifieke taakdetails.

    Standaard krijgt de Stream Analytics-module dezelfde naam als de taak waarop deze is gebaseerd. U kunt de modulenaam desgewenst op deze pagina wijzigen, maar dat hoeft niet.

  2. Selecteer Toepassen als u wijzigingen hebt aangebracht of Annuleren als u geen wijzigingen hebt aangebracht.

Routes toewijzen aan uw modules

  1. Selecteer volgende op de pagina Modules instellen op het apparaat:<uw-apparaatnaampagina>: Routes.

  2. Op het tabblad Routes definieert u hoe berichten tussen modules en de IoT Hub worden uitgewisseld. Berichten worden samengesteld met behulp van naam- en waardeparen.

    Voeg de routenamen en -waarden toe met de paren die worden weergegeven in de volgende tabel. Vervang exemplaren van {moduleName} door de naam van uw Azure Stream Analytics-module. Deze module moet dezelfde naam hebben die u ziet in de moduleslijst van uw apparaat op de pagina Modules instellen, zoals wordt weergegeven in Azure Portal.

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

    Naam Waarde
    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 routes die u hier declareert, definiëren de gegevensstroom via het IoT Edge-apparaat. De telemetriegegevens van SimulatedTemperatureSensor worden naar IoT Hub verzonden en naar de temperatuurinvoer die is geconfigureerd in de Stream Analytics-taak. De waarschuwingsuitvoerberichten worden verzonden naar IoT Hub en naar de module SimulatedTemperatureSensor om de opdracht voor opnieuw instellen te activeren.

  3. Selecteer Volgende: controleren en maken.

  4. Op het tabblad Beoordelen en maken kunt u zien hoe de gegevens die u in de wizard hebt opgegeven, worden geconverteerd naar een JSON-implementatiemanifest.

  5. Wanneer u klaar bent met het controleren van het manifest, selecteert u Maken om de instelling van de module te voltooien.

Gegevens weergeven

U kunt nu naar uw IoT Edge-apparaat gaan om de interactie tussen de Azure Stream Analytics-module en de Module SimulatedTemperatureSensor te bekijken.

Notitie

Als u een virtuele machine voor een apparaat gebruikt, kunt u de Azure Cloud Shell gebruiken om rechtstreeks toegang te krijgen tot alle geverifieerde Azure-services.

  1. Controleer of alle modules worden uitgevoerd in Docker:

    iotedge list  
    
  2. Bekijk alle systeemlogboeken en metrische gegevens. Vervang {moduleName} door de naam van uw Azure Stream Analytics-module:

    iotedge logs -f {moduleName}  
    
  3. Bekijk hoe de opdracht Reset van invloed is op simulatedTemperatureSensor door de sensorlogboeken weer te geven:

    iotedge logs SimulatedTemperatureSensor
    

    U ziet nu dat de temperatuur van de machine geleidelijk stijgt totdat deze gedurende 30 seconden 70 graden is. Vervolgens worden met de Stream Analytics-module de beginwaarden ingesteld. De temperatuur van de machine zakt nu weer naar 21 graden.

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

Resources opschonen

Als u van plan bent door te gaan met het volgende aanbevolen artikel, kunt u de resources en configuraties die u hebt gemaakt behouden en opnieuw gebruiken. U kunt ook hetzelfde IoT Edge-apparaat blijven gebruiken als een testapparaat.

Anders kunt u de lokale configuraties en Azure-resources die u in dit artikel hebt gemaakt, verwijderen om kosten te voorkomen.

Azure-resources verwijderen

Het verwijderen van de Azure-resources en resourcegroepen kan niet ongedaan worden gemaakt. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de IoT-hub in een bestaande resourcegroep hebt gemaakt met de resources die u wilt behouden, moet u alleen de IoT-hub zelf verwijderen en niet de resourcegroep.

Om de resources te verwijderen:

  1. Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.

  2. Selecteer de naam van de resourcegroep die uw IoT Edge-testresources bevat.

  3. Bekijk de lijst met resources die zich in de resourcegroep bevinden. Als u alle mappen wilt verwijderen, kunt u Resourcegroep verwijderen selecteren. Als u slechts een deel ervan wilt verwijderen, kunt u in elke resource afzonderlijk klikken om ze te verwijderen.

Volgende stappen

In deze zelfstudie hebt u een Azure Stream Analytics-taak geconfigureerd om gegevens van uw IoT Edge-apparaat te analyseren. Vervolgens hebt u deze Azure Stream Analytics-module op uw IoT Edge-apparaat geladen om de temperatuurstijging lokaal te verwerken en erop te reageren en de geaggregeerde gegevensstroom naar de cloud te verzenden. Ga verder met de andere zelfstudies om te zien hoe u met Azure IoT Edge meer oplossingen voor uw bedrijf kunt maken.