Snabbstart: Skapa ett Stream Analytics-jobb med Visual Studio Code

Den här snabbstarten visar hur du skapar, kör och skickar ett Azure Stream Analytics-jobb (ASA) med hjälp av ASA Tools-tillägget för Visual Studio Code på din lokala dator. Du lär dig att skapa ett ASA-jobb som läser strömmande realtidsdata från IoT Hub och filtrerar händelser med en temperatur som är större än 27°. Utdataresultatet skickas till en fil i Blob Storage. De indata som används i den här snabbstarten genereras av en Raspberry Pi-onlinesimulator.

Anteckning

Visual Studio Code-verktyg stöder inte jobb i regionerna China East, China North, Germany Central och Germany NorthEast.

Förutsättningar

Installera Azure Stream Analytics Tools-tillägget

  1. Öppna Visual Studio Code (VS Code).

  2. Från Tillägg i det vänstra fönstret söker du efter stream analytics och väljer InstalleraAzure Stream Analytics Tools-tillägget .

    Skärmbild som visar sidan Tillägg i Visual Studio Code med ett alternativ för att installera Stream Analytics-tillägget.

  3. När den har installerats väljer du Azure-ikonen i aktivitetsfältet och loggar in på Azure.

    Skärmbild som visar hur du loggar in på Azure.

  4. När du är inloggad kan du se prenumerationerna under ditt Azure-konto.

Anteckning

ASA Tools-tillägget loggar automatiskt in dig varje gång du öppnar VS Code. Om ditt konto har tvåfaktorautentisering rekommenderar vi att du använder telefonautentisering i stället för att använda en PIN-kod. Om du vill logga ut ditt Azure-konto trycker du på Ctrl + Shift + P och anger Azure: Sign Out.

Förbereda indata

Innan du definierar Stream Analytics-jobbet bör du förbereda indata. Realtidssensordata matas in till IoT Hub, som senare konfigureras som jobbindata. Följ dessa steg för att förbereda indata som krävs av jobbet:

  1. Logga in på Azure-portalen.

  2. Välj Skapa en resurs > sakernas > Internet IoT Hub.

    Skärmbild som visar sidan Skapa resurs för Iot Hub.

  3. sidan IoT Hub anger du följande information:

    • Välj din Azure-prenumeration.
    • Resursgrupp, välj en befintlig resursgrupp eller skapa en ny resursgrupp.
    • IoT Hub-namn, ange ett namn för din IoT-hubb.
    • Region, välj den region som är närmast dig.

    Skärmbild som visar IoT Hub sida för att skapa.

  4. Gå till sidan Hantering för Pris- och skalningsnivå och välj F1: Kostnadsfri nivå, om den fortfarande är tillgänglig i din prenumeration. Mer information finns i Azure IoT Hub prissättning.

    Skärmbild som visar IoT Hub hanteringssidan.

  5. Välj Granska + skapa. Granska din IoT Hub-information och välj Skapa. Den här processen kan ta några minuter att distribuera din IoT-hubb.

  6. När IoT-hubben har skapats väljer du Gå till resurs för att gå till IoT Hub sidan. '

  7. På sidan IoT Hub väljer du Enheter på den vänstra menyn och sedan + Lägg till enhet.

    Skärmbild som visar knappen Lägg till enhet på sidan Enheter.

  8. Ange ett enhets-ID och välj Spara.

    Skärmbild som visar sidan Lägg till enhet.

  9. När enheten har skapats bör du se enheten från IoT-enhetslistan . Välj knappen Uppdatera på sidan om du inte ser den.

    Skärmbild som visar valet av enhet på sidan Enheter.

  10. Välj din enhet i listan. Kopiera primär anslutningssträng och spara den i ett anteckningsblock för senare användning.

    Skärmbild som visar den primära anslutningssträngen för den enhet som du skapade.

Köra IoT-simulatorn

  1. Öppna Raspberry Pi Azure IoT Online-simulatorn på en ny webbläsarflik.

  2. Ersätt platshållaren på rad 15 med anslutningssträngen för IoT Hub-enheten som du sparade tidigare.

  3. Välj Kör. Utdata ska visa sensordata och meddelanden som skickas till din IoT-hubb.

    Skärmbild som visar Raspberry Pi Azure IoT Online-simulatorn med utdata.

Skala bloblagring

  1. I det övre vänstra hörnet i Azure Portal väljer du Skapa ettlagringskontoförresurslagring>>.

    Skärmbild som visar menyn Skapa lagringskonto.

  2. I fönsterrutan Skapa lagringskonto anger du namn, plats och resursgrupp för lagringskonto. Välj samma plats och resursgrupp som den IoT-hubb som du skapade. Välj sedan Granska och Skapa för att skapa lagringskontot.

    Skärmbild som visar sidan Skapa lagringskonto.

  3. På sidan Lagringskonto väljer du Containrar på den vänstra menyn och sedan + Container i kommandofältet.

    Skärmbild som visar sidan Containrar.

  4. På sidan Ny container anger du ett namn för din container, lämnar offentlig åtkomstnivå som Privat (ingen anonym åtkomst) och väljer OK.

    Skärmbild som visar skapandet av en blobcontainersida.

Skapa ett Stream Analytics-projekt

  1. Tryck på Ctrl+Skift+P i Visual Studio Code och ange ASA: Skapa nytt projekt.

    Skärmbild som visar valet av ASA: Skapa nytt projekt i kommandopaletten.

  2. Ange projektnamnet, till exempel myASAproj, och välj en mapp för projektet.

    Skärmbild som visar hur du anger ett ASA-projektnamn.

  3. Ett ASA-projekt läggs till i arbetsytan. Den består av tre mappar: Indata, utdata och funktioner. Det har också frågeskriptet (*.asaql), en JobConfig.json-fil och en asaproj.json-konfigurationsfil .

    Skärmbild som visar Stream Analytics-projektfiler i Visual Studio Code.

    Filen asaproj.json innehåller indata, utdata och jobbkonfigurationsinställningar för att skicka Stream Analytics-jobbet till Azure.

    Anteckning

    När du lägger till indata och utdata från kommandopaletten läggs motsvarande sökvägar till i asaproj.json automatiskt. Om du lägger till eller tar bort indata eller utdata direkt på disken måste du lägga till eller ta bort dem manuellt från asaproj.json. Du kan välja att placera indata och utdata på en plats och sedan referera till dem i olika jobb genom att ange sökvägarna i varje asaproj.json-fil .

Definiera transformationsfrågan

  1. Öppna filen myASAproj.asaql och lägg till följande fråga:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Skärmbild som visar transformeringsfrågan.

Konfigurera jobbindata

  1. Högerklicka på mappen Indata i Stream Analytics-projektet. Välj sedan ASA: Lägg till indata från snabbmenyn.

    Skärmbild som visar MENYN ASA: Lägg till indata i Visual Studio Code.

    Eller tryck på Ctrl+Skift+P för att öppna kommandopaletten och ange ASA: Lägg till indata.

  2. Välj IoT Hub för indatatypen.

    Skärmbild som visar valet av din IoT-hubb i VS Code-kommandopaletten.

  3. Välj ett ASA-skript *.asaql och Azure-prenumerationer på den nedrullningsbara menyn och tryck sedan på RETUR.

  4. Under mappen Indata ser du att en IoTHub1.json-fil har skapats. Ersätt inställningarna med följande föreslagna värden och behåll standardvärden för fält som inte nämns här.

    Inställningen Föreslaget värde Beskrivning
    Name Indata Det här indatanamnet används för FROM-instruktionen i frågan.
    IotHubNamespace spiothub Namnet på din IoT-hubb. IoT-hubbens namn identifieras automatiskt om du väljer från din prenumeration.
    SharedAccessPolicyName iothubowner

    Skärmbild som visar IoT Hub konfiguration i VS Code.

  5. Välj Förhandsgranska data för att se om indata har konfigurerats för jobbet. Det hämtar ett exempel på din IoT Hub och visas i förhandsgranskningsfönstret.

    Skärmbild som visar förhandsversionen av indata i IoT-hubben.

Konfigurera jobbutdata

  1. Tryck på Ctrl+Skift+P för att öppna kommandopaletten och ange ASA: Lägg till utdata.

  2. Välj Data Lake Storage Gen2/Blob Storage som mottagartyp.

  3. Välj frågeskriptet med hjälp av dessa utdata.

  4. Ange BlobStorage1 som utdatafilnamn.

  5. Redigera inställningarna med hjälp av följande värden. Behåll standardvärden för fält som inte nämns här.

    Inställning Föreslaget värde Beskrivning
    Name Resultat Det här utdatanamnet används för INTO-instruktionen i frågan.
    Lagringskonto spstorageaccount0901 Välj eller ange namnet på ditt lagringskonto. Lagringskontonamn identifieras automatiskt om de skapas i samma prenumeration.
    Container spcontainer Välj en befintlig container som du skapade i ditt lagringskonto.

Skärmbild som visar konfigurationen av utdata för Stream Analytics-jobbet.

Kompilera skriptet och skicka till Azure

Skriptkompilering kontrollerar syntaxen och genererar Azure Resource Manager-mallar för automatisk distribution.

  1. Högerklicka på skriptet och välj ASA: Kompilera skript.

    Skärmbild som visar kompilering av skriptalternativet från Stream Analytics-utforskaren i VS Code.

  2. Efter kompilering visas en Distribuera-mapp under projektet med två Azure Resource Manager-mallar. Dessa två filer används för automatisk distribution.

    Skärmbild som visar de genererade distributionsmallarna i projektmappen.

  3. Välj Skicka till Azure i frågeredigeraren.

    Skärmbild som visar knappen skicka jobb för att skicka Stream Analytics-jobbet till Azure.

    Följ sedan anvisningarna för att slutföra processen: Välj prenumeration > Välj ett jobb > Skapa nytt jobb > Ange jobbnamn > Välj resursgrupp och region.

  4. Välj Publicera till Azure och slutför. Vänta tills den öppnar en ny flik Molnjobbvy som visar jobbets status.

    Skärmbild som visar knappen Publicera till Azure i VS Code.

Starta Stream Analytics-jobbet och kontrollera utdata

  1. På fliken Molnjobbvy väljer du Starta för att köra jobbet i molnet. Den här processen kan ta några minuter att slutföra.

    Skärmbild som visar knappen Starta jobb på sidan Molnvy.

  2. Om jobbet startar ändras jobbstatusen till Körs. Du kan se ett logiskt diagram som visar hur ditt ASA-jobb körs.

    Skärmbild som visar jobbet som kör status i VS Code.

  3. Om du vill visa utdataresultatet kan du öppna bloblagringen i Visual Studio Code-tillägget eller i Azure Portal.

    Skärmbild som visar utdatafilen i Blob-containern.

    Ladda ned och öppna filen för att se utdata.

    {"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"}}
    

Rensa resurser

Ta bort resursgruppen, Stream Analytics-jobbet och alla relaterade resurser när den inte längre behövs. Om du tar bort jobbet undviker du att bli fakturerad för de strömmande enheter som används av jobbet. Om du planerar att använda jobbet i framtiden kan du stoppa det och sedan starta det igen när du behöver det. Om du inte kommer att fortsätta att använda det här jobbet tar du bort alla resurser som skapats av den här snabbstarten med hjälp av följande steg:

  1. På den vänstra menyn i Azure Portal väljer du Resursgrupper och sedan namnet på den resurs som du skapade.

  2. Välj Ta bort på din resursgruppssida. Ange namnet på resursen som ska tas bort i textrutan och välj sedan Ta bort.

Nästa steg

Om du vill veta mer om ASA Tools-tillägget för Visual Studio Code fortsätter du till följande artiklar: