Delen via


Quickstart: Een Stream Analytics-taak maken met Visual Studio Code

In deze quickstart maakt, voert u een ASA-taak (Azure Stream Analytics) uit met behulp van de ASA Tools-extensie voor Visual Studio Code op uw lokale computer. U leert hoe u een ASA-taak bouwt die realtime streaminggegevens van IoT Hub leest en gebeurtenissen filtert met een temperatuur die groter is dan 27°. De uitvoerresultaten worden verzonden naar een bestand in blobopslag. De invoergegevens in deze quickstart worden gegenereerd via een Raspberry Pi Online Simulator.

Notitie

Visual Studio Code-hulpprogramma's ondersteunen geen taken in de regio's China - oost, China - noord, Duitsland - centraal en Duitsland - noord.

Vereisten

De Azure Stream Analytics Tools-extensie installeren

  1. Open Visual Studio Code (VS Code).

  2. Zoek vanuit Extensies in het linkerdeelvenster naar Stream Analytics en selecteer Installeren in de Azure Stream Analytics Tools-extensie.

    Schermopname van de pagina Extensies van Visual Studio Code met een optie voor het installeren van de Stream Analytics-extensie.

  3. Nadat deze is geïnstalleerd, selecteert u het Azure-pictogram op de activiteitenbalk en meldt u zich aan bij Azure.

    Schermopname die laat zien hoe u zich aanmeldt bij Azure.

  4. Zodra u bent aangemeld, ziet u de abonnementen onder uw Azure-account.

Notitie

De extensie ASA Tools meldt u automatisch aan telkens wanneer u VS Code opent. Als uw account tweeledige verificatie heeft, raden wij u aan gebruik te maken van telefoonverificatie in plaats van een pincode. Als u zich wilt afmelden bij uw Azure-account, drukt u op Ctrl + Shift + P Enter en drukt u op Azure: Sign Out.

De IoT-simulator uitvoeren

  1. Open de Raspberry Pi Azure IoT Online Simulator.

  2. Vervang de tijdelijke aanduiding in regel 15 door de verbindingsreeks van het Azure IoT Hub-apparaat die u hebt opgeslagen in de vorige sectie.

  3. Selecteer Uitvoeren. De uitvoer geeft de sensorgegevens en berichten weer die worden verzonden naar de IoT-hub.

    Schermopname van de pagina **Raspberry Pi Azure IoT Online Simulator** met de voorbeeldquery.

    Belangrijk

    Selecteer Opnieuw instellen na een paar minuten om de verbindingsreeks opnieuw in te stellen.

Blob-opslag maken

  1. Selecteer in de linkerbovenhoek in Azure Portal achtereenvolgens Een resource maken>Opslag>Opslagaccount.

    Schermopname van het menu Opslagaccount maken.

  2. Voer in het deelvenster Opslagaccount maken een opslagaccountnaam, locatie en resourcegroep in. Kies dezelfde locatie en resourcegroep als de IoT-hub die u hebt gemaakt. Selecteer Vervolgens Controleren en Maken om het opslagaccount te maken.

    Schermopname van de pagina Opslagaccount maken.

  3. Selecteer op de pagina Opslagaccount containers in het linkermenu en selecteer vervolgens + Container op de opdrachtbalk.

    Schermopname van de pagina Containers.

  4. Geef op de pagina Nieuwe container een naam op voor uw container, laat het niveau Openbare toegang staan als Privé (geen anonieme toegang) en selecteer OK.

    Schermopname van het maken van een blobcontainerpagina.

Een Stream Analytics-project maken

  1. Druk in Visual Studio Code op Ctrl+Shift+P en voer ASA in : Nieuw project maken.

    Schermopname van de selectie van ASA: Nieuw project maken in het opdrachtenpalet.

  2. Voer de naam van uw project in, zoals myASAproj, en selecteer een map voor uw project.

    Schermopname van het invoeren van een ASA-projectnaam.

  3. Er wordt een ASA-project toegevoegd aan uw werkruimte. Het bestaat uit drie mappen: Invoer, Uitvoer en Functies. Het bevat ook het queryscript (*.asaql), het bestand JobConfig.json en het configuratiebestand asaproj.json.

    Schermopname van Stream Analytics-projectbestanden in Visual Studio Code.

    Het asaproj.json-bestand bevat de invoer-, uitvoer- en taakconfiguratie-instellingen voor het verzenden van de Stream Analytics-taak naar Azure.

    Notitie

    Wanneer u invoer en uitvoer toevoegt vanuit het opdrachtenpalet, worden de bijbehorende paden automatisch toegevoegd aan asaproj.json. Als u invoer of uitvoer rechtstreeks aan de schijf toevoegt of verwijdert, moet u deze handmatig toevoegen aan of verwijderen uit asaproj.json. U kunt ervoor kiezen om de invoer en uitvoer op één plek te plaatsen en ernaar te verwijzen in verschillende taken door de paden op te geven in elk asaproj.json-bestand.

De transformatiequery definiëren

  1. Open het bestand myASAproj.asaql en voeg de volgende query toe:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Schermopname van de transformatiequery.

Taakinvoer configureren

  1. Klik met de rechtermuisknop op de map Invoer in uw Stream Analytics-project. Selecteer vervolgens ASA: Invoer toevoegen vanuit het contextmenu.

    Schermopname van het ASA: Invoermenu toevoegen in Visual Studio Code.

    U kunt ook op Ctrl+Shift+P drukken om het opdrachtenpalet te openen en ASA in te voeren: Invoer toevoegen.

  2. Kies IoT-hub voor het type invoer.

    Schermopname van de selectie van uw IoT-hub in het opdrachtenpalet van VS Code.

  3. Kies Selecteren uit Azure-abonnementen in de vervolgkeuzelijst en druk vervolgens op Enter.

  4. Voer invoer in voor de naam en druk op Enter.

  5. Onder De map Invoer ziet u dat er een IoTHub1.json-bestand is gemaakt.

  6. Controleer in het JSON-bestand of invoer de naam is opgegeven.

  7. Kies selecteren in de JSON-editor voor Input.json de optie Selecteren in uw abonnementen en selecteer vervolgens uw Azure-abonnement met de IoT-hub.

    Schermopname van de JSON-editor met Select in uw abonnementenkoppeling.

  8. Kies een IoT Hub selecteren in de JSON-editor en selecteer vervolgens de IoT-hub die u hebt gemaakt.

    Schermopname van de JSON-editor met een IoT Hub-koppeling selecteren.

  9. Standaard moet de SharedAccessPolicyName naam worden ingesteld op iothubowner. Als dat niet zo is, kiest u een koppeling naam voor gedeeld toegangsbeleid selecteren en selecteert u vervolgens iothubowner in de vervolgkeuzelijst.

  10. De SharedAccessPolicyKey waarde moet automatisch worden ingesteld.

  11. Selecteer Voorbeeldgegevens om te zien of de invoergegevens zijn geconfigureerd voor uw taak. Er wordt een voorbeeld van uw IoT Hub opgehaald en weergegeven in het voorbeeldvenster.

    Schermopname van het voorbeeld van invoergegevens in uw IoT-hub.

Taakuitvoer configureren

  1. Klik met de rechtermuisknop op Uitvoer in de verkenner en selecteer ASA: Uitvoer toevoegen.
  2. Kies Data Lake Storage Gen2/Blob Storage voor het sinktype in de vervolgkeuzelijst.
  3. Kiezen uit Azure-abonnementen
  4. Voer uitvoer in voor de naam van de alias en druk op Enter. Deze uitvoernaam wordt gebruikt voor into-instructie in de query.
  5. Kies in de JSON-editor voor Output.json Selecteren uit uw abonnementen en selecteer vervolgens uw Azure-abonnement met het Azure Storage-account
  6. Als u het opslagaccount wilt wijzigen dat automatisch wordt ingevuld, kiest u Een opslagaccount selecteren en selecteert u vervolgens uw Azure Storage-account. Namen van opslagaccounts worden automatisch gedetecteerd als ze in hetzelfde abonnement worden gemaakt.
  7. Als u de containernaam wilt wijzigen, kiest u Een container selecteren en selecteert u de blobcontainer die u hebt gemaakt.

Schermopname van de configuratie van uitvoer voor de Stream Analytics-taak.

Het script compileren en verzenden naar Azure

Met de syntaxiscontroles voor scriptcompilatie worden de Azure Resource Manager-sjablonen voor automatische implementatie gegenereerd.

  1. Klik met de rechtermuisknop op het scriptbestand in het verkenner-venster, wijs ASA aan: Script compileren en selecteer vervolgens ASA: ARM-sjabloon V2 (aanbevolen).

    Schermopname van de compilatie van de scriptoptie vanuit Stream Analytics Explorer in VS Code.

  2. Na de compilatie ziet u een map Implementeren onder uw project met twee Azure Resource Manager-sjablonen. Deze twee bestanden worden gebruikt voor automatische implementatie.

    Schermopname van de gegenereerde implementatiesjablonen in de projectmap.

  3. Selecteer Verzenden naar Azure in de query-editor.

    Schermopname van de knop Taak verzenden om de Stream Analytics-taak naar Azure te verzenden.

  4. Voer in het venster Verzenden de volgende stappen uit:

    1. Selecteer uw Azure-abonnement.

    2. Selecteer een Azure-resourcegroep.

    3. Selecteer de regio waar u de Stream Analytics-taak wilt maken.

    4. Selecteer vervolgens Verzenden.

      Schermopname met opties voor verzenden.

  5. Selecteer Publiceren naar Azure en voltooi deze. Wacht totdat het een nieuw tabblad In de cloudtaakweergave wordt geopend met de status van uw taak.

    Schermopname van de knop Publiceren naar Azure in VS Code.

Stream Analytics-taak starten en uitvoer controleren

  1. Selecteer op het tabblad Taakweergave van de cloud de optie Starten om uw taak in de cloud uit te voeren.

    Schermopname van de knop Taak starten op de pagina Cloudweergave.

  2. Selecteer OK in het venster Streamingtaak starten. Het duurt enkele minuten voordat dit proces is voltooid.

  3. Als uw taak is gestart, wordt de taakstatus gewijzigd in Actief. U ziet een logisch diagram waarin wordt getoond hoe uw ASA-taak wordt uitgevoerd.

    Schermopname van de taak die wordt uitgevoerd in VS Code.

  4. Als u de uitvoerresultaten wilt weergeven, kunt u de blobopslag openen in de Visual Studio Code-extensie of in Azure Portal.

    Schermopname van het uitvoerbestand in de Blob-container.

    Download en open het bestand om uitvoer te bekijken.

    {"messageId":11,"deviceId":"Raspberry Pi Web Client","temperature":28.165519323167562,"humidity":76.875393581654379,"EventProcessedUtcTime":"2022-09-01T22:53:58.1015921Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:52:57.6250000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:52:57.6290000Z"}}
    {"messageId":14,"deviceId":"Raspberry Pi Web Client","temperature":29.014941877871451,"humidity":64.93477299527828,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:03.6100000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:03.6140000Z"}}
    {"messageId":17,"deviceId":"Raspberry Pi Web Client","temperature":28.032846241745975,"humidity":66.146114343897338,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:19.5960000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:19.5830000Z"}}
    {"messageId":18,"deviceId":"Raspberry Pi Web Client","temperature":30.176185593576143,"humidity":72.697359909427419,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:21.6120000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:21.6140000Z"}}
    {"messageId":20,"deviceId":"Raspberry Pi Web Client","temperature":27.851894248213021,"humidity":71.610229530268214,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:25.6270000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:25.6140000Z"}}
    {"messageId":21,"deviceId":"Raspberry Pi Web Client","temperature":27.718624694772238,"humidity":66.540445035685153,"EventProcessedUtcTime":"2022-09-01T22:53:58.2421545Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:53:48.0820000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:53:48.0830000Z"}}
    {"messageId":22,"deviceId":"Raspberry Pi Web Client","temperature":27.7849054424326,"humidity":74.300662748167085,"EventProcessedUtcTime":"2022-09-01T22:54:09.3393532Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:09.2390000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:09.2400000Z"}}
    {"messageId":28,"deviceId":"Raspberry Pi Web Client","temperature":30.839892925680324,"humidity":76.237611741451786,"EventProcessedUtcTime":"2022-09-01T22:54:47.8053253Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:47.6180000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:47.6150000Z"}}
    {"messageId":29,"deviceId":"Raspberry Pi Web Client","temperature":30.561040300759053,"humidity":78.3845172058103,"EventProcessedUtcTime":"2022-09-01T22:54:49.8070489Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:54:49.6030000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:54:49.5990000Z"}}
    {"messageId":31,"deviceId":"Raspberry Pi Web Client","temperature":28.163585438418679,"humidity":60.0511571297096,"EventProcessedUtcTime":"2022-09-01T22:55:25.1528729Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:24.9050000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:24.9120000Z"}}
    {"messageId":32,"deviceId":"Raspberry Pi Web Client","temperature":31.00503387156985,"humidity":78.68821066044552,"EventProcessedUtcTime":"2022-09-01T22:55:43.2652127Z","PartitionId":3,"EventEnqueuedUtcTime":"2022-09-01T22:55:43.0480000Z","IoTHub":{"MessageId":null,"CorrelationId":null,"ConnectionDeviceId":"MyASAIoTDevice","ConnectionDeviceGenerationId":"637976642928634103","EnqueuedTime":"2022-09-01T22:55:43.0520000Z"}}
    

Resources opschonen

Wanneer u een resourcegroep niet meer nodig hebt, verwijdert u de resourcegroep, de Stream Analytics-taak en alle gerelateerde resources. Door de taak te verwijderen, voorkomt u dat de streaming-eenheden die door de taak worden verbruikt, in rekening worden gebracht. Als u denkt dat u de taak in de toekomst nog gaat gebruiken, kunt u deze stoppen en later opnieuw starten wanneer dat nodig is. Als u deze taak niet wilt blijven gebruiken, verwijdert u alle resources die in deze quickstart zijn gemaakt door de volgende stappen uit te voeren:

  1. Selecteer in het menu aan de linkerkant in Azure Portal de optie Resourcegroepen en selecteer vervolgens de naam van de resource die u hebt gemaakt.

  2. Selecteer Verwijderen op de pagina van de resourcegroep. Voer de naam van de resource die u wilt verwijderen in het tekstvak in en selecteer vervolgens Verwijderen.

Volgende stappen

Ga verder met de volgende artikelen voor meer informatie over de ASA Tools-extensie voor Visual Studio Code: