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
- En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Visual Studio Code.
Installera Azure Stream Analytics Tools-tillägget
Öppna Visual Studio Code (VS Code).
Från Tillägg i det vänstra fönstret söker du efter stream analytics och väljer Installera på Azure Stream Analytics Tools-tillägget .
När den har installerats väljer du Azure-ikonen i aktivitetsfältet och loggar in på Azure.
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:
Logga in på Azure-portalen.
Välj Skapa en resurs > sakernas > Internet IoT Hub.
På 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.
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.
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.
När IoT-hubben har skapats väljer du Gå till resurs för att gå till IoT Hub sidan. '
På sidan IoT Hub väljer du Enheter på den vänstra menyn och sedan + Lägg till enhet.
Ange ett enhets-ID och välj Spara.
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.
Välj din enhet i listan. Kopiera primär anslutningssträng och spara den i ett anteckningsblock för senare användning.
Köra IoT-simulatorn
Öppna Raspberry Pi Azure IoT Online-simulatorn på en ny webbläsarflik.
Ersätt platshållaren på rad 15 med anslutningssträngen för IoT Hub-enheten som du sparade tidigare.
Välj Kör. Utdata ska visa sensordata och meddelanden som skickas till din IoT-hubb.
Skala bloblagring
I det övre vänstra hörnet i Azure Portal väljer du Skapa ettlagringskontoförresurslagring>>.
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.
På sidan Lagringskonto väljer du Containrar på den vänstra menyn och sedan + Container i kommandofältet.
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.
Skapa ett Stream Analytics-projekt
Tryck på Ctrl+Skift+P i Visual Studio Code och ange ASA: Skapa nytt projekt.
Ange projektnamnet, till exempel myASAproj, och välj en mapp för projektet.
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 .
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
Öppna filen myASAproj.asaql och lägg till följande fråga:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Konfigurera jobbindata
Högerklicka på mappen Indata i Stream Analytics-projektet. Välj sedan ASA: Lägg till indata från snabbmenyn.
Eller tryck på Ctrl+Skift+P för att öppna kommandopaletten och ange ASA: Lägg till indata.
Välj IoT Hub för indatatypen.
Välj ett ASA-skript *.asaql och Azure-prenumerationer på den nedrullningsbara menyn och tryck sedan på RETUR.
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 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.
Konfigurera jobbutdata
Tryck på Ctrl+Skift+P för att öppna kommandopaletten och ange ASA: Lägg till utdata.
Välj Data Lake Storage Gen2/Blob Storage som mottagartyp.
Välj frågeskriptet med hjälp av dessa utdata.
Ange BlobStorage1 som utdatafilnamn.
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.
Kompilera skriptet och skicka till Azure
Skriptkompilering kontrollerar syntaxen och genererar Azure Resource Manager-mallar för automatisk distribution.
Högerklicka på skriptet och välj ASA: Kompilera skript.
Efter kompilering visas en Distribuera-mapp under projektet med två Azure Resource Manager-mallar. Dessa två filer används för automatisk distribution.
Välj Skicka till Azure i frågeredigeraren.
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.
Välj Publicera till Azure och slutför. Vänta tills den öppnar en ny flik Molnjobbvy som visar jobbets status.
Starta Stream Analytics-jobbet och kontrollera utdata
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.
Om jobbet startar ändras jobbstatusen till Körs. Du kan se ett logiskt diagram som visar hur ditt ASA-jobb körs.
Om du vill visa utdataresultatet kan du öppna bloblagringen i Visual Studio Code-tillägget eller i Azure Portal.
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:
På den vänstra menyn i Azure Portal väljer du Resursgrupper och sedan namnet på den resurs som du skapade.
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: