Quickstart: Een Azure Stream Analytics-taak maken in Visual Studio Code

Deze quickstart laat zien hoe u een Azure Stream Analytics-taak kunt maken en uitvoeren met behulp van de Azure Stream Analytics Tools-extensie voor Visual Studio Code. De voorbeeldtaak leest streaminggegevens vanaf een Azure IoT Hub-apparaat. U definieert een taak die de gemiddelde temperatuur bij meer dan 27° berekent en de resulterende uitvoergebeurtenissen naar een nieuw bestand in blobopslag schrijft.

Notitie

De hulpprogramma's Visual Studio en Visual Studio Code bieden geen ondersteuning voor taken in de regio's China - oost, China - noord, Duitsland - centraal en Duitsland - noordoost.

Vereisten

Dit zijn de vereisten voor de quickstart:

De Azure Stream Analytics Tools-extensie installeren

  1. Open Visual Studio Code.

  2. Zoek in extensies in het linkerdeelvenster naar Azure 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 de extensie is geïnstalleerd, controleert u of Azure Stream Analytics Tools zichtbaar is in de ingeschakelde extensies.

    Schermopname van de Azure Stream Analytics-extensie in de lijst met ingeschakelde extensies.

De Azure Stream Analytics Tools-extensie activeren

  1. Selecteer het pictogram Azure op de activiteitenbalk van Visual Studio Code. Selecteer Aanmelden bij Azure onder Stream Analytics in de zijbalk.

    Schermopname die laat zien hoe u zich aanmeldt bij Azure.

  2. Mogelijk moet u een abonnement selecteren zoals wordt weergegeven in de volgende afbeelding:

    Schermopname van de selectie van een Azure-abonnement.

  3. Houd Visual Studio Code open.

    Notitie

    Als u zich niet afmeldt, wordt u de volgende keer automatisch aangemeld door de Azure Stream Analytics Tools-extensie. Als uw account tweeledige verificatie heeft, raden wij u aan gebruik te maken van telefoonverificatie in plaats van een pincode. Als u problemen hebt met het weergeven van resources, helpt het meestal als u zich afmeldt en opnieuw aanmeldt. Voer de opdracht Azure: Sign Out in om u af te melden.

De invoergegevens voorbereiden

Voordat u de Stream Analytics-taak definieert, moet u de gegevens voorbereiden die later als de taakinvoer worden geconfigureerd. Voer de volgende stappen uit om de invoergegevens die vereist zijn voor de taak voor te bereiden:

  1. Meld u aan bij de Azure-portal.

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

    Schermopname van de pagina Resource maken voor IoT Hub.

  3. Voer in het deelvenster IoT Hub de volgende informatie in:

    Instelling Voorgestelde waarde Beschrijving
    Abonnement <Uw abonnement> Selecteer het Azure-abonnement dat u wilt gebruiken.
    Resourcegroep asaquickstart-resourcegroup Selecteer Nieuwe maken en voer een naam voor de nieuwe resourcegroep voor uw account in.
    Regio <Selecteer de regio die het dichtst bij uw gebruikers is gelegen> Selecteer een geografische locatie waar u de IoT-hub kunt hosten. Gebruik de locatie die het dichtst bij uw gebruikers is.
    Naam van de IoT-hub MyASAIoTHub Selecteer een naam voor de IoT-hub.

    Schermopname van de pagina IoT Hub voor het maken.

  4. Selecteer Volgende: Netwerken onder aan de pagina om naar de pagina Netwerken van de wizard Maken te gaan.

  5. Selecteer Volgende op de pagina Netwerkende optie Volgende: Beheer onderaan de pagina.

  6. Selecteer op de pagina Beheer voor prijs- en schaallaagF1: Gratis laag, als deze nog steeds beschikbaar is in uw abonnement. Als de gratis laag niet beschikbaar is, kiest u de laagste beschikbare prijscategorie. Zie Prijzen voor Azure IoT Hub voor meer informatie.

  7. Selecteer Controleren + maken. Controleer de informatie van de IoT-hub en selecteer Maken. Het maken van de IoT-hub kan een paar minuten duren. U kunt de voortgang volgen in het deelvenster Meldingen.

  8. Nadat het maken is voltooid, selecteert u Ga naar de resource om naar de IoT Hub-pagina voor uw IoT-hub te navigeren.

  9. Selecteer op de pagina IoT Hubapparaten onder Apparaatbeheer in het linkermenu en selecteer Vervolgens Apparaat toevoegen zoals weergegeven in de afbeelding.

    Schermopname van de knop Apparaat toevoegen op de pagina Apparaten.

  10. Selecteer in het IoT Hub-navigatiemenu de optie Toevoegen onder IoT-apparaten. Voeg een id toe bij Apparaat-id en selecteer Opslaan.

    Schermopname van de pagina Apparaat toevoegen.

  11. Nadat het apparaat is opgeslagen, selecteert u het apparaat in de lijst. Als deze niet wordt weergegeven in de lijst, gaat u naar een andere pagina en gaat u terug naar de pagina Apparaten .

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

  12. Kopieer de tekenreeks in Verbindingsreeks (primaire sleutel) en sla deze in een kladblok op 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 of -venster.

  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 om het account te maken. Selecteer vervolgens Maken om het opslagaccount te maken. Nadat de resource is gemaakt, selecteert u Ga naar de resource om naar de pagina Opslagaccount te navigeren.

    Schermopname van de pagina Opslagaccount maken.

  3. Selecteer op de pagina Opslagaccountcontainers 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. Selecteer in Visual Studio Code het paletView ->Command in het menu om het opdrachtenpalet te openen.

    Schermopname van het menu Weergave -> Opdrachtpalet.

  2. Voer vervolgens ASA in en selecteer ASA: Nieuw project maken.

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

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

    Schermopname van het invoeren van een ASA-projectnaam.

  4. Het nieuwe project wordt toegevoegd aan uw werkruimte. Een Stream Analytics-project bestaat uit drie mappen: Invoer, Uitvoeren Functies. Het bevat ook het queryscript (*.asaql) , het bestand JobConfig.json en het configuratiebestand asaproj.json. Mogelijk moet u de knop Explorer selecteren in het linkermenu van Visual Studio Code om de verkenner te zien.

    Het configuratiebestand asaproj. json bevat de invoer-, uitvoer- en taakconfiguratiebestandgegevens die nodig zijn voor het indienen van de Stream Analytics-taak bij Azure.

    Schermopname van Stream Analytics-projectbestanden in Visual Studio Code.

    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 myASAproj.asaql vanuit de projectmap.

  2. Voeg de volgende query toe:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Schermopname van de transformatiequery.

Live invoer definiëren

  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.

    Of selecteer Ctrl+Shift+P (of menu Opdrachtpaletweergeven>) om het opdrachtenpalet te openen en ASA in te voeren: Invoer toevoegen.

    Schermopname van de ASA: Invoer toevoegen in het opdrachtenpalet van Visual Studio Code.

  2. Kies IoT-hub voor het type invoer.

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

  3. Als u de invoer vanuit het opdrachtenpalet hebt toegevoegd, kiest u het Stream Analytics-queryscript dat de invoer gaat gebruiken. Hierin moet het bestandspad naar myASAproj.asaql automatisch worden ingevuld.

    Schermopname van de selectie van uw Stream Analytics-script in het opdrachtenpalet van VS Code.

  4. Kies Selecteren in uw Azure-abonnementen in de vervolgkeuzelijst en druk op Enter.

    Schermopname van de selectie van uw Azure-abonnement in het opdrachtenpalet van VS Code.

  5. Bewerk het zojuist gegenereerde IoTHub1.json-bestand met de volgende waarden. Behoud standaardwaarden voor velden die hier niet worden vermeld.

    Instelling Voorgestelde waarde Beschrijving
    Naam Invoer Voer een naam in voor de invoer van de taak.
    IotHubNamespace MyASAIoTHub Kies uw IoT-hub, of voer de naam ervan in. Namen van IoT-hubs worden automatisch gedetecteerd als ze worden gemaakt in hetzelfde abonnement.
    SharedAccessPolicyName iothubowner

    U kunt de functie CodeLens gebruiken om een tekenreeks in te voeren, een selectie in een vervolgkeuzelijst te maken of de tekst rechtstreeks in het bestand te wijzigen. De volgende schermopname toont Selecteren in uw abonnementen als voorbeeld. De referenties worden automatisch weergegeven en opgeslagen in de lokale referentiebeheerfunctie.

    Schermopname van het starten van de Functie CodeLens in VS Code.

    Nadat u een abonnement hebt geselecteerd, selecteert u een IoT-hub als u meerdere hubs in dat abonnement hebt.

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

    Belangrijk

    Zorg ervoor dat de naam van de invoer Invoer is zoals de query verwacht.

Invoer vooraf bekijken

Selecteer Gegevens vooraf bekijken in IoTHub1.json vanaf de bovenste regel. Sommige invoergegevens worden opgehaald van de IoT-hub en weergegeven in het voorbeeldvenster. Dit proces kan even duren.

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

Uitvoer definiëren

  1. Selecteer Ctrl+Shift+P om het opdrachtenpalet te openen. Voer vervolgens ASA: Uitvoer toevoegen in.

  2. Kies Data Lake Storage Gen2/Blob Storage voor het sinktype.

  3. Kies het Stream Analytics-queryscript dat deze invoer gaat gebruiken.

  4. Voer BlobStorage als naam van het uitvoerbestand in.

  5. Bewerk BlobStorage met behulp van de volgende waarden. Behoud standaardwaarden voor velden die hier niet worden vermeld. Gebruik de Functie CodeLens om u te helpen bij het selecteren van een Azure-abonnement en opslagaccountnaam in een vervolgkeuzelijst of het handmatig invoeren van waarden.

    Instelling Voorgestelde waarde Beschrijving
    Naam Uitvoer Voer een naam in voor de uitvoer van de taak.
    Opslagaccount <Naam van uw opslagaccount> Kies of typ de naam van het opslagaccount. Namen van opslagaccounts worden automatisch gedetecteerd als ze in hetzelfde abonnement worden gemaakt.
    Container container1 Selecteer de bestaande container die u in uw opslagaccount hebt gemaakt.
    Padpatroon output Voer de naam in van een bestandspad dat in de container moet worden gemaakt.

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

    Belangrijk

    Zorg ervoor dat de naam van de uitvoer Uitvoer is zoals de query verwacht.

Het script compileren

Met de syntaxiscontroles voor scriptcompilatie worden de Azure Resource Manager-sjablonen voor automatische implementatie gegenereerd. Er zijn twee manieren om scriptcompilatie te activeren:

  • Het script selecteren in de werkruimte en vervolgens compileren vanuit het opdrachtenpalet.

    Schermopname van de compilatie van de scriptoptie in het opdrachtpalet.

  • Klik met de rechtermuisknop op het script en selecteer ASA: Script compileren.

    Schermopname van de compilatie van scriptopties in Stream Analytics Explorer in VS Code.

Na de compilatie ziet u de resultaten in het venster Uitvoer . U vindt de twee gegenereerde Azure Resource Manager-sjablonen in de submap Implementeren in uw projectmap. Deze twee bestanden worden gebruikt voor automatische implementatie.

Schermopname van de gegenereerde implementatiesjablonen in de projectmap.

Een Stream Analytics-taak verzenden naar Azure

  1. Selecteer in het scripteditorvenster van het queryscript de optie Verzenden naar Azure.

Schermopname van de knop Taak verzenden om de Stream Analytics-taak naar Azure te verzenden. 2. Selecteer uw abonnement in de pop-uplijst. 3. Kies Een taak selecteren. Kies vervolgens Nieuwe taak maken. 4. Voer uw taaknaam in, myASAjob. Volg vervolgens de instructies om de resourcegroep en de locatie te kiezen. 5. Selecteer Publiceren naar Azure. U vindt de logboeken in het uitvoervenster. 6. Wanneer uw taak is gemaakt, kunt u deze zien in Stream Analytics Explorer. Zie de afbeelding in de volgende sectie.

Stream Analytics-taak starten en uitvoer controleren

  1. Open Stream Analytics Explorer in Visual Studio Code en zoek uw taak, myASAJob.

  2. Selecteer Starten op de pagina Cloudweergave (OF) met de rechtermuisknop op de taaknaam in Stream Analytics Explorer en selecteer Start in het contextmenu.

    Schermopname van de knop Taak starten op de pagina Cloudweergave.

  3. Houd er rekening mee dat de taakstatus is gewijzigd in Wordt uitgevoerd. Klik met de rechtermuisknop op de naam van de taak en selecteer Taakweergave openen in portal om de metrische gegevens voor de invoer- en uitvoergebeurtenis weer te geven. Deze actie kan enkele minuten duren.

  4. Als u de resultaten wilt weergeven, opent u de blob-opslag in de Visual Studio Code-extensie of in Azure Portal.

    Schermopname van het uitvoerbestand in de Blob-container.

    Download het bestand en open het om uitvoer weer te geven.

    {"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 deze niet meer nodig hebt, verwijdert u de resourcegroep, de streamingtaak 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. Als u deze taak niet meer gaat gebruiken, voert u de volgende stappen uit om alle resources die in deze quickstart zijn gemaakt te verwijderen:

  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

In deze quickstart hebt u een eenvoudige Stream Analytics-taak met behulp van Visual Studio Code geïmplementeerd. U kunt Stream Analytics-taken ook implementeren met behulp van Azure Portal, PowerShell en Visual Studio.

Ga voor meer informatie over Azure Stream Analytics-hulpprogramma's voor Visual Studio Code naar het volgende artikel: