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

In deze quickstart ziet u hoe u een Azure Stream Analytics-taak (ASA) maakt, uitvoert en verzendt 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 uit IoT Hub leest en gebeurtenissen met een temperatuur van meer dan 27° filtert. 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 bieden geen ondersteuning voor 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 in Extensies in het linkerdeelvenster naar Stream Analytics en selecteer Installeren in de extensie Azure Stream Analytics Tools .

    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. Nadat u bent aangemeld, kunt u de abonnementen onder uw Azure-account zien.

Notitie

Met de ASA Tools-extensie wordt u automatisch aangemeld wanneer u VS Code opent. Als uw account tweeledige verificatie heeft, raden we u aan telefoonverificatie te gebruiken in plaats van een pincode. Als u uw Azure-account wilt afmelden, drukt u op Ctrl + Shift + P en voert u in Azure: Sign Out.

De invoergegevens voorbereiden

Voordat u de Stream Analytics-taak definieert, moet u de invoergegevens voorbereiden. De real-time sensorgegevens worden opgenomen in IoT Hub en later geconfigureerd als de taakinvoer. Voer de volgende stappen uit om de invoergegevens voor de taak voor te bereiden:

  1. Meld u aan bij de Azure-portal.

  2. Selecteer Een resource > maken die Internet of Things > IoT Hub.

    Schermopname van de pagina Resource maken voor IoT Hub.

  3. Voer op de pagina IoT Hub de volgende gegevens in:

    • Abonnement selecteert u uw Azure-abonnement.
    • Resourcegroep, selecteer een bestaande resourcegroep of maak een nieuwe resourcegroep.
    • Naam van IoT-hub: voer een naam in voor uw IoT-hub.
    • Regio, selecteert u de regio die zich het dichtst bij u in de buurt bevindt.

    Schermopname van de IoT Hub pagina die moet worden gemaakt.

  4. Ga naar de pagina Beheer en selecteer voor Prijzen en schaalcategoriede optie F1: Gratis laag, als deze nog steeds beschikbaar is in uw abonnement. Zie Prijzen voor Azure IoT Hub voor meer informatie.

    Schermopname van de IoT Hub beheerpagina.

  5. Selecteer Controleren + maken. Controleer de informatie van de IoT-hub en selecteer Maken. Dit proces kan enkele minuten duren voordat uw IoT-hub is geïmplementeerd.

  6. Nadat uw IoT-hub is gemaakt, selecteert u Ga naar resource om naar de pagina IoT Hub te navigeren. '

  7. Selecteer op de pagina IoT Hubapparaten in het menu links en selecteer vervolgens + Apparaat toevoegen.

    Schermopname van de knop Apparaat toevoegen op de pagina Apparaten.

  8. Voer een apparaat-id in en selecteer Opslaan.

    Schermopname van de pagina Apparaat toevoegen.

  9. Zodra het apparaat is gemaakt, ziet u het apparaat in de lijst met IoT-apparaten . Selecteer de knop Vernieuwen op de pagina als u deze niet ziet.

    Schermopname van de selectie van het apparaat op de pagina Apparaten.

  10. Selecteer uw apparaat in de lijst. Kopieer de primaire verbindingsreeks en sla deze op in een Kladblok voor later gebruik.

    Schermopname van de primaire connection string van het apparaat dat u hebt gemaakt.

De IoT-simulator uitvoeren

  1. Open de Raspberry Pi Azure IoT Online Simulator in een nieuw browsertabblad.

  2. Vervang de tijdelijke aanduiding in regel 15 door de verbindingsreeks van het IoT-hub-apparaat dat u eerder hebt opgeslagen.

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

    Schermopname van de Raspberry Pi Azure IoT Online Simulator met uitvoer.

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 Opslagaccountde optie Containers in het menu links 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 Openbaar toegangsniveaustaan op 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: Nieuw project maken in.

    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 bestand asaproj.json bevat de instellingen voor invoer, uitvoer en taakconfiguratie 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 de ASA: Invoermenu toevoegen in Visual Studio Code.

    Of druk op Ctrl+Shift+P om het opdrachtenpalet te openen en voer ASA: Invoer toevoegen in.

  2. Kies IoT-hub voor het type invoer.

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

  3. Selecteer een ASA-script *.asaql en Azure-abonnementen in de vervolgkeuzelijst en druk vervolgens op Enter.

  4. Onder de map Invoer ziet u dat er een IoTHub1.json-bestand is gemaakt. Vervang instellingen door de volgende voorgestelde waarden en behoud de standaardwaarden voor velden die hier niet worden vermeld.

    Instelling Voorgestelde waarde Beschrijving
    Naam Invoer Deze invoernaam wordt gebruikt voor de FROM-instructie in de query.
    IotHubNamespace spiothub Naam van uw IoT-hub. De namen van de IoT-hubs worden automatisch gedetecteerd als u selecteert in uw abonnement.
    SharedAccessPolicyName iothubowner

    Schermopname van de IoT Hub-configuratie in VS Code.

  5. Selecteer Voorbeeld van gegevens bekijken 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. Druk op Ctrl+Shift+P om het opdrachtenpalet te openen en voer ASA: Uitvoer toevoegen in.

  2. Kies Data Lake Storage Gen2/Blob Storage als sinktype.

  3. Selecteer het queryscript met behulp van deze uitvoer.

  4. Voer BlobStorage1 in als naam van het uitvoerbestand.

  5. Bewerk de instellingen met behulp van de volgende waarden. Behoud standaardwaarden voor velden die hier niet worden vermeld.

    Instelling Voorgestelde waarde Beschrijving
    Naam Uitvoer Deze uitvoernaam wordt gebruikt voor de INTO-instructie in de query.
    Opslagaccount spstorageaccount0901 Kies of typ de naam van het opslagaccount. Namen van opslagaccounts worden automatisch gedetecteerd als ze in hetzelfde abonnement worden gemaakt.
    Container spcontainer Selecteer de bestaande container die u in uw opslagaccount 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 script en selecteer ASA: Script compileren.

    Schermopname van de compilatie van de scriptoptie uit de Stream Analytics-verkenner 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.

    Volg vervolgens de instructies om het proces te voltooien: Abonnement selecteren > Selecteer een taak Nieuwe taak >> maken Voer taaknaam > kies resourcegroep en regio in.

  4. Selecteer Publiceren naar Azure en voltooi deze. Wacht tot er een nieuw tabblad 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 Cloudtaakweergavede optie Starten om uw taak in de cloud uit te voeren. Dit proces kan enkele minuten duren.

    Schermopname van de knop Taak starten op de pagina Cloudweergave.

  2. Als de taak is gestart, wordt de taakstatus gewijzigd in Actief. U ziet een logisch diagram dat laat zien hoe uw ASA-taak wordt uitgevoerd.

    Schermopname van de taak die wordt uitgevoerd in VS Code.

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

    Schermopname van het uitvoerbestand in de Blob-container.

    Download en open het bestand om de 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 meer gaat gebruiken, verwijdert u alle resources die in deze quickstart zijn gemaakt met behulp van de volgende stappen:

  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: