Udostępnij za pośrednictwem


Szybki start: tworzenie zadania usługi Stream Analytics przy użyciu programu Visual Studio Code

W tym przewodniku Szybki start utworzysz, uruchomisz i prześlesz zadanie usługi Azure Stream Analytics (ASA) przy użyciu rozszerzenia ASA Tools dla programu Visual Studio Code na komputerze lokalnym. Dowiesz się, jak utworzyć zadanie usługi ASA, które odczytuje dane przesyłane strumieniowo w czasie rzeczywistym z usługi IoT Hub i filtruje zdarzenia o temperaturze większej niż 27°. Wyniki wyjściowe są wysyłane do pliku w magazynie obiektów blob. Dane wejściowe używane w tym przewodniku Szybki start są generowany przez symulator online Raspberry Pi.

Uwaga

Narzędzia programu Visual Studio Code nie obsługują zadań w regionach Chiny Wschodnie, Chiny Północne, Niemcy Środkowe i Niemcy Północne.

Wymagania wstępne

Instalowanie rozszerzenia narzędzi usługi Azure Stream Analytics

  1. Otwórz program Visual Studio Code (VS Code).

  2. W okienku po lewej stronie wyszukaj pozycję Stream Analytics i wybierz pozycję Zainstaluj w rozszerzeniu Narzędzi usługi Azure Stream Analytics.

    Zrzut ekranu przedstawiający stronę Rozszerzenia programu Visual Studio Code z opcją zainstalowania rozszerzenia usługi Stream Analytics.

  3. Po zainstalowaniu wybierz ikonę platformy Azure na pasku działań i zaloguj się na platformie Azure.

    Zrzut ekranu przedstawiający sposób logowania się na platformie Azure.

  4. Po zalogowaniu możesz zobaczyć subskrypcje na koncie platformy Azure.

Uwaga

Rozszerzenie ASA Tools automatycznie loguje się za każdym razem, gdy otworzysz program VS Code. Jeśli twoje konto ma uwierzytelnianie dwuskładnikowe, zalecamy użycie uwierzytelniania za pomocą telefonu zamiast używania numeru PIN. Aby wylogować się z konta platformy Azure, naciśnij Ctrl + Shift + P i wprowadź .Azure: Sign Out

Uruchamianie symulatora IoT

  1. Otwórz symulator Raspberry Pi Azure IoT Online Simulator.

  2. Zamień symbol zastępczy w wierszu 15 na parametry połączenia urządzenia usługi Azure IoT Hub, które zostały zapisane w poprzedniej sekcji.

  3. Wybierz Uruchom. Dane wyjściowe powinny pokazywać dane z czujników i komunikaty, które są wysyłane do usługi IoT Hub.

    Zrzut ekranu przedstawiający stronę **Symulator usługi Azure IoT Online Dla urządzenia Raspberry Pi z przykładowym zapytaniem.

    Ważne

    Wybierz pozycję Resetuj po kilku minutach, aby zresetować parametry połączenia.

Tworzenie magazynu obiektów blob

  1. W lewym górnym rogu witryny Azure Portal wybierz pozycję Utwórz konto> magazynu magazynu>zasobów.

    Zrzut ekranu przedstawiający menu Tworzenie konta magazynu.

  2. W okienku Utwórz konto magazynu wprowadź nazwę konta magazynu, lokalizację i grupę zasobów. Wybierz tę samą lokalizację i grupę zasobów co utworzone centrum IoT. Następnie wybierz pozycję Przejrzyj i utwórz , aby utworzyć konto magazynu.

    Zrzut ekranu przedstawiający stronę Tworzenie konta magazynu.

  3. Na stronie Konto magazynu wybierz pozycję Kontenery w menu po lewej stronie, a następnie wybierz pozycję + Kontener na pasku poleceń.

    Zrzut ekranu przedstawiający stronę Kontenery.

  4. Na stronie Nowy kontener podaj nazwę kontenera, pozostaw poziom dostępu publicznego jako Prywatny (bez dostępu anonimowego) i wybierz przycisk OK.

    Zrzut ekranu przedstawiający tworzenie strony kontenera obiektów blob.

Tworzenie projektu usługi Stream Analytics

  1. W programie Visual Studio Code naciśnij Ctrl+Shift+P i wprowadź ciąg ASA: Create New Project (Utwórz nowy projekt).

    Zrzut ekranu przedstawiający wybór usługi ASA: Utwórz nowy projekt na palecie poleceń.

  2. Wprowadź nazwę projektu, taką jak myASAproj, i wybierz folder dla projektu.

    Zrzut ekranu przedstawiający wprowadzanie nazwy projektu ASA.

  3. Projekt ASA jest dodawany do obszaru roboczego. Składa się z trzech folderów: Dane wejściowe, Dane wyjściowe i Funkcje. Zawiera również skrypt zapytania (*.asaql), plik JobConfig.json i plik konfiguracji asaproj.json.

    Zrzut ekranu przedstawiający pliki projektu usługi Stream Analytics w programie Visual Studio Code.

    Plik asaproj.json zawiera ustawienia konfiguracji danych wejściowych, wyjściowych i zadań do przesyłania zadania usługi Stream Analytics na platformę Azure.

    Uwaga

    Podczas dodawania danych wejściowych i wyjściowych z palety poleceń odpowiednie ścieżki są dodawane do asaproj.json automatycznie. Jeśli bezpośrednio dodasz lub usuniesz dane wejściowe lub wyjściowe na dysku, musisz ręcznie dodać je lub usunąć z asaproj.json. Możesz umieścić dane wejściowe i wyjściowe w jednym miejscu, a następnie odwołać się do nich w różnych zadaniach, określając ścieżki w każdym pliku asaproj.json .

Definiowanie zapytania przekształcenia

  1. Otwórz plik myASAproj.asaql i dodaj następujące zapytanie:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Zrzut ekranu przedstawiający zapytanie przekształcenia.

Konfigurowanie danych wejściowych zadania

  1. Kliknij prawym przyciskiem myszy folder Inputs w projekcie usługi Stream Analytics. Następnie wybierz pozycję ASA: Dodaj dane wejściowe z menu kontekstowego.

    Zrzut ekranu przedstawiający menu ASA: Dodaj dane wejściowe w programie Visual Studio Code.

    Możesz też nacisnąć Ctrl+Shift+P , aby otworzyć paletę poleceń i wprowadzić ciąg ASA: Dodaj dane wejściowe.

  2. Wybierz usługę IoT Hub dla typu danych wejściowych.

    Zrzut ekranu przedstawiający wybór centrum IoT w palecie poleceń programu VS Code.

  3. Wybierz pozycję Wybierz z subskrypcji platformy Azure z menu rozwijanego, a następnie naciśnij ENTER.

  4. Wprowadź dane wejściowe dla nazwy, a następnie naciśnij ENTER.

  5. W obszarze Folder Inputs (Dane wejściowe) zostanie utworzony plik IoTHub1.json .

  6. W pliku JSON upewnij się, że w polu Input (Dane wejściowe ) określono wartość Name (Nazwa).

  7. W edytorze JSON dla Input.json wybierz pozycję Wybierz z subskrypcji, a następnie wybierz subskrypcję platformy Azure z centrum IoT.

    Zrzut ekranu przedstawiający edytor JSON z linkiem Wybierz z Twoich subskrypcji.

  8. W edytorze JSON wybierz pozycję Wybierz centrum IoT Hub, a następnie wybierz utworzone centrum IoT.

    Zrzut ekranu przedstawiający edytor JSON z linkiem Wybierz centrum IoT Hub.

  9. Domyślnie SharedAccessPolicyName parametr powinien być ustawiony na iothubownerwartość . Jeśli nie, wybierz link Wybierz nazwę zasad dostępu współdzielonego, a następnie wybierz pozycję iothubowner z listy rozwijanej.

  10. Wartość SharedAccessPolicyKey powinna być ustawiana automatycznie.

  11. Wybierz pozycję Podgląd danych , aby sprawdzić, czy dane wejściowe zostały pomyślnie skonfigurowane dla zadania. Spowoduje to pobranie próbki usługi IoT Hub i wyświetlenie jej w oknie podglądu.

    Zrzut ekranu przedstawiający podgląd danych wejściowych w centrum IoT.

Konfigurowanie danych wyjściowych zadania

  1. Kliknij prawym przyciskiem myszy pozycję Dane wyjściowe w eksploratorze i wybierz pozycję ASA: Dodaj dane wyjściowe.
  2. Wybierz pozycję Data Lake Storage Gen2/Blob Storage dla typu ujścia z listy rozwijanej.
  3. Wybierz pozycję Wybierz z subskrypcji platformy Azure
  4. Wprowadź wartość Output (Dane wyjściowe ) jako nazwę aliasu i naciśnij ENTER. Ta nazwa danych wyjściowych jest używana dla instrukcji INTO w zapytaniu.
  5. W edytorze JSON dla Output.json wybierz pozycję Wybierz z subskrypcji, a następnie wybierz subskrypcję platformy Azure, która ma konto usługi Azure Storage
  6. Jeśli musisz zmienić wypełnione automatycznie konto magazynu, wybierz pozycję Wybierz konto magazynu, a następnie wybierz konto usługi Azure Storage. Nazwy kont magazynu są wykrywane automatycznie, jeśli zostały utworzone w tej samej subskrypcji.
  7. Jeśli musisz zmienić nazwę kontenera, wybierz pozycję Wybierz kontener i wybierz utworzony kontener obiektów blob.

Zrzut ekranu przedstawiający konfigurację danych wyjściowych zadania usługi Stream Analytics.

Kompilowanie skryptu i przesyłanie do platformy Azure

Kompilacja skryptu sprawdza składnię i generuje szablony usługi Azure Resource Manager na potrzeby automatycznego wdrażania.

  1. Kliknij prawym przyciskiem myszy plik skryptu w oknie eksploratora, wskaż polecenie ASA: Skompiluj skrypt, a następnie wybierz pozycję ASA: szablon usługi ARM w wersji 2 (zalecane).

    Zrzut ekranu przedstawiający opcję kompilacji skryptu z eksploratora usługi Stream Analytics w programie VS Code.

  2. Po kompilacji zobaczysz folder Deploy w projekcie z dwoma szablonami usługi Azure Resource Manager. Te dwa pliki są używane do automatycznego wdrażania.

    Zrzut ekranu przedstawiający wygenerowane szablony wdrożenia w folderze projektu.

  3. Wybierz pozycję Prześlij na platformę Azure w edytorze zapytań.

    Zrzut ekranu przedstawiający przycisk Prześlij zadanie w celu przesłania zadania usługi Stream Analytics na platformę Azure.

  4. W oknie Prześlij wykonaj następujące kroki:

    1. Wybierz swoją subskrypcję platformy Azure.

    2. Wybierz grupę zasobów platformy Azure.

    3. Wybierz region, w którym chcesz utworzyć zadanie usługi Stream Analytics.

    4. Następnie wybierz pozycję Prześlij.

      Zrzut ekranu przedstawiający opcje przesyłania.

  5. Wybierz pozycję Publikuj na platformie Azure i ukończ. Poczekaj na otwarcie nowej karty Widok zadania w chmurze z wyświetlonym stanem zadania.

    Zrzut ekranu przedstawiający przycisk Publikuj na platformie Azure w programie VS Code.

Uruchamianie zadania usługi Stream Analytics i sprawdzanie danych wyjściowych

  1. Na karcie Widok zadania w chmurze wybierz pozycję Uruchom, aby uruchomić zadanie w chmurze.

    Zrzut ekranu przedstawiający przycisk Uruchom zadanie na stronie Widok chmury.

  2. W oknie Uruchamianie zadania przesyłania strumieniowego wybierz przycisk OK. Ukończenie tego procesu może potrwać kilka minut.

  3. Jeśli zadanie zostanie pomyślnie uruchomione, stan zadania zostanie zmieniony na Uruchomiono. Możesz zobaczyć diagram logiczny przedstawiający sposób działania zadania usługi ASA.

    Zrzut ekranu przedstawiający stan uruchomienia zadania w programie VS Code.

  4. Aby wyświetlić wyniki wyjściowe, możesz otworzyć magazyn obiektów blob w rozszerzeniu programu Visual Studio Code lub w witrynie Azure Portal.

    Zrzut ekranu przedstawiający plik wyjściowy w kontenerze obiektów blob.

    Pobierz i otwórz plik, aby wyświetlić dane wyjściowe.

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

Czyszczenie zasobów

Gdy grupa zasobów, zadanie usługi Stream Analytics i wszystkie powiązane zasoby nie będą już potrzebne, usuń grupę zasobów. Usunięcie zadania pozwala uniknąć opłat za jednostki przesyłania strumieniowego zużywane przez zadanie. Jeśli planujesz użyć zadania w przyszłości, możesz je zatrzymać i uruchomić ponownie później, gdy będzie potrzebne. Jeśli nie zamierzasz nadal korzystać z tego zadania, usuń wszystkie zasoby utworzone w tym przewodniku Szybki start, wykonując następujące czynności:

  1. W menu po lewej stronie w witrynie Azure Portal wybierz pozycję Grupy zasobów, a następnie wybierz nazwę utworzonego zasobu.

  2. Na stronie grupy zasobów wybierz pozycję Usuń. Wprowadź nazwę zasobu do usunięcia w polu tekstowym, a następnie wybierz pozycję Usuń.

Następne kroki

Aby dowiedzieć się więcej na temat rozszerzenia narzędzi ASA dla programu Visual Studio Code, przejdź do następujących artykułów: