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

W tym przewodniku Szybki start pokazano, jak utworzyć, uruchomić i przesłać zadanie usługi Azure Stream Analytics (ASA) przy użyciu rozszerzenia narzędzia ASA dla 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 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

Visual Studio Code narzędzia nie obsługują miejsc pracy 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 Visual Studio Code (VS Code).

  2. W okienku po lewej stronie wyszukaj pozycję Stream Analytics i wybierz pozycję Zainstaluj w rozszerzeniu Azure Stream Analytics Tools.

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

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

    Zrzut ekranu przedstawiający sposób logowania się do platformy Azure.

  4. Po zalogowaniu się 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, a nie numeru PIN. Aby wylogować się z konta platformy Azure, naciśnij Ctrl + Shift + P i wprowadź .Azure: Sign Out

Przygotowywanie danych wejściowych

Przed zdefiniowaniem zadania usługi Stream Analytics należy przygotować dane wejściowe. Dane czujnika czasu rzeczywistego są pozyskiwane do IoT Hub, które później zostały skonfigurowane jako dane wejściowe zadania. Aby przygotować dane wejściowe wymagane przez zadanie, wykonaj następujące kroki:

  1. Zaloguj się do Azure portal.

  2. Wybierz pozycję Utwórz zasób > Internet rzeczy > IoT Hub.

    Zrzut ekranu przedstawiający stronę Tworzenie zasobu dla usługi IoT Hub.

  3. Na stronie IoT Hub wprowadź następujące informacje:

    • Subskrypcja, wybierz subskrypcję platformy Azure.
    • Grupa zasobów, wybierz istniejącą grupę zasobów lub utwórz nową grupę zasobów.
    • Nazwa centrum IoT Hub wprowadź nazwę centrum IoT Hub.
    • Wybierz region, który znajduje się najbliżej Ciebie.

    Zrzut ekranu przedstawiający stronę IoT Hub do utworzenia.

  4. Przejdź do strony Zarządzanie , w obszarze Cennik i warstwa skalowania wybierz pozycję F1: Warstwa Bezpłatna, jeśli jest ona nadal dostępna w ramach subskrypcji. Aby uzyskać więcej informacji, zobacz Azure IoT Hub cennik.

    Zrzut ekranu przedstawiający stronę zarządzania IoT Hub.

  5. Wybierz pozycję Przejrzyj i utwórz. Przejrzyj informacje o centrum IoT i wybierz pozycję Utwórz. Wdrożenie centrum IoT Może potrwać kilka minut.

  6. Po utworzeniu centrum IoT wybierz pozycję Przejdź do zasobu, aby przejść do strony IoT Hub. '

  7. Na stronie IoT Hub wybierz pozycję Urządzenia w menu po lewej stronie, a następnie wybierz pozycję + Dodaj urządzenie.

    Zrzut ekranu przedstawiający przycisk Dodaj urządzenie na stronie Urządzenia.

  8. Wprowadź identyfikator urządzenia i wybierz pozycję Zapisz.

    Zrzut ekranu przedstawiający stronę Dodawanie urządzenia.

  9. Po utworzeniu urządzenia powinno zostać wyświetlone urządzenie z listy urządzeń IoT . Wybierz przycisk Odśwież na stronie, jeśli go nie widzisz.

    Zrzut ekranu przedstawiający wybór urządzenia na stronie Urządzenia.

  10. Wybierz urządzenie z listy. Skopiuj podstawowe parametry połączenia i zapisz je w Notatniku do późniejszego użycia.

    Zrzut ekranu przedstawiający podstawowe parametry połączenia utworzonego urządzenia.

Uruchamianie symulatora IoT

  1. Otwórz symulator urządzenia Raspberry Pi Azure IoT Online Simulator na nowej karcie przeglądarki.

  2. Zastąp symbol zastępczy w wierszu 15 zapisanymi wcześniej parametrami połączenia urządzenia centrum IoT Hub.

  3. Wybierz pozycję Uruchom. Dane wyjściowe powinny zawierać dane czujnika i komunikaty wysyłane do centrum IoT.

    Zrzut ekranu przedstawiający symulator usługi Azure IoT Online urządzenia Raspberry Pi z danymi wyjściowymi.

Tworzenie magazynu obiektów blob

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

    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 wartość 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 Visual Studio Code naciśnij klawisze Ctrl+Shift+P i wprowadź ciąg ASA: Create New Project (Utwórz nowy projekt).

    Zrzut ekranu przedstawiający wybór 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 usługi 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 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ą automatycznie dodawane do pliku asaproj.json . Jeśli bezpośrednio dodasz lub usuniesz dane wejściowe lub wyjściowe na dysku, musisz ręcznie dodać lub usunąć je z pliku 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 (Dane wejściowe ) w projekcie usługi Stream Analytics. Następnie wybierz pozycję ASA: Dodaj dane wejściowe z menu kontekstowego.

    Zrzut ekranu przedstawiający menu ASA: Dodawanie danych wejściowych w Visual Studio Code.

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

  2. Wybierz IoT Hub dla typu wejściowego.

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

  3. Wybierz skrypt ASA *.asaql i subskrypcje platformy Azure z menu rozwijanego, a następnie naciśnij klawisz ENTER.

  4. W obszarze Folder Inputs (Dane wejściowe ) zostanie utworzony plik IoTHub1.json . Zastąp ustawienia następującymi sugerowanymi wartościami i zachowaj wartości domyślne dla pól, które nie zostały tutaj wymienione.

    Ustawienie Sugerowana wartość Opis
    Nazwa Dane wejściowe Ta nazwa wejściowa jest używana dla instrukcji FROM w zapytaniu.
    IotHubNamespace spiothub Nazwa centrum IoT. Nazwy centrum IoT są wykrywane automatycznie, jeśli wybierzesz z subskrypcji.
    SharedAccessPolicyName iothubowner

    Zrzut ekranu przedstawiający konfigurację IoT Hub w programie VS Code.

  5. Wybierz pozycję Podgląd danych , aby sprawdzić, czy dane wejściowe zostały pomyślnie skonfigurowane dla zadania. Pobierze próbkę IoT Hub i zostanie wyświetlona w oknie podglądu.

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

Konfigurowanie danych wyjściowych zadania

  1. Naciśnij klawisze Ctrl+Shift+P , aby otworzyć paletę poleceń i wprowadzić ciąg ASA: Dodaj dane wyjściowe.

  2. Wybierz pozycję Data Lake Storage Gen2/Blob Storage dla typu ujścia.

  3. Wybierz skrypt zapytania przy użyciu tych danych wyjściowych.

  4. Wprowadź wartość BlobStorage1 jako nazwę pliku wyjściowego.

  5. Edytuj ustawienia przy użyciu następujących wartości. Zachowaj wartości domyślne dla pól, które nie zostały wymienione tutaj.

    Ustawienie Sugerowana wartość Opis
    Nazwa Dane wyjściowe Ta nazwa danych wyjściowych jest używana dla instrukcji INTO w zapytaniu.
    Konto magazynu spstorageaccount0901 Wybierz lub wprowadź nazwę konta magazynu. Nazwy kont magazynu są wykrywane automatycznie, jeśli są tworzone w tej samej subskrypcji.
    Kontener spcontainer Wybierz istniejący kontener utworzony na koncie magazynu.

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

Skompiluj skrypt i prześlij go na platformę Azure

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

  1. Kliknij prawym przyciskiem myszy skrypt i wybierz pozycję ASA: Kompiluj skrypt.

    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 przesyłania zadania w celu przesłania zadania usługi Stream Analytics na platformę Azure.

    Następnie postępuj zgodnie z instrukcjami, aby ukończyć proces: Wybierz subskrypcję > Wybierz zadanie Utwórz nowe zadanie >> Wprowadź nazwę > zadania Wybierz grupę zasobów i region.

  4. Wybierz pozycję Publikuj na platformie Azure i zakończ. Poczekaj na otwarcie nowej karty Widok zadania w chmurze z informacją o stanie 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 zadań w chmurze wybierz pozycję Uruchom , aby uruchomić zadanie w chmurze. Ukończenie tego procesu może potrwać kilka minut.

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

  2. Jeśli zadanie zostanie pomyślnie uruchomione, stan zadania zostanie zmieniony na Uruchomiono. Na diagramie logicznym pokazano, jak działa zadanie usługi ASA.

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

  3. Aby wyświetlić wyniki wyjściowe, możesz otworzyć magazyn obiektów blob w rozszerzeniu Visual Studio Code lub w 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 kroki:

  1. W menu po lewej stronie w 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 asA Tools dla Visual Studio Code, przejdź do następujących artykułów: