Udostępnij za pośrednictwem


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

Podczas tego szybkiego rozpoczęcia pracy utworzysz, uruchomisz i prześlesz zadanie usługi Azure Stream Analytics (ASA) za pomocą 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 BLOB. Dane wejściowe używane w tym przewodniku szybkiego startu są generowane 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ółnocno-Wschodnie.

Wymagania wstępne

Instalowanie rozszerzenia narzędzi usługi Azure Stream Analytics

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

  2. W rozszerzeniach po lewej stronie, wyszukaj stream analytics i wybierz Zainstaluj w rozszerzeniu Azure Stream Analytics Tools.

    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, użyj 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 przygotuj dane wejściowe. Rozwiązanie pobiera dane czujnika w czasie rzeczywistym do usługi IoT Hub, które następnie konfigurujesz jako dane wejściowe zadania. Aby przygotować dane wejściowe wymagane przez zadanie, wykonaj następujące kroki:

  1. Zaloguj się do witryny Azure Portal.

  2. Wybierz pozycję Utwórz zasób. Na stronie Tworzenie zasobu wybierz pozycję Internet rzeczy>IoT Hub.

    Zrzut ekranu przedstawiający menu usługi IoT Hub na stronie Tworzenie zasobu.

  3. Na stronie usługi IoT Hub wykonaj następujące kroki:

    1. W polu Subskrypcja wybierz subskrypcję platformy Azure.
    2. W obszarze Grupa zasobów wybierz istniejącą grupę zasobów lub utwórz nową grupę zasobów.
    3. W polu Nazwa centrum IoT wprowadź nazwę centrum IoT Hub.
    4. W obszarze Region wybierz region, który znajduje się najbliżej Ciebie.
    5. W obszarze Warstwa wybierz pozycję Bezpłatna, jeśli jest ona nadal dostępna w ramach subskrypcji. Aby uzyskać więcej informacji, zobacz cennik usługi IoT Hub.
    6. W przypadku dziennego limitu komunikatów zachowaj wartość domyślną.
    7. Wybierz pozycję Dalej: Sieć w dolnej części strony.

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

  4. Wybierz opcję Recenzja + utwórz. Przejrzyj informacje o usłudze IoT Hub i wybierz pozycję Utwórz. Utworzenie usługi IoT Hub może potrwać kilka minut. Postęp można monitorować w okienku Powiadomienia .

  5. Po utworzeniu zasobu (centrum IoT) wybierz pozycję Przejdź do zasobu , aby przejść do strony usługi IoT Hub.

  6. Na stronie usługi 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.

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

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

  8. Po utworzeniu urządzenia na liście urządzeń IoT zostanie wyświetlone urządzenie. Wybierz przycisk Odśwież na stronie, jeśli go nie widzisz.

    Zrzut ekranu przedstawiający listę urządzeń.

  9. Wybierz urządzenie z listy.

  10. Na stronie urządzenia wybierz przycisk kopiowania obok pozycji Podstawowe parametry połączenia i zapisz go w Notatniku do późniejszego użycia.

    Zrzut ekranu przedstawiający przycisk kopiowania obok parametry połączenia urządzenia.

Uruchamianie symulatora IoT

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

  2. Zastąp symbol zastępczy w wierszu 15 parametrami połączenia urządzenia usługi Azure IoT Hub zapisanymi w poprzedniej sekcji.

  3. Wybierz Uruchom. Dane wyjściowe zawierają dane czujnika i komunikaty wysyłane do usługi IoT Hub.

    Zrzut ekranu przedstawiający stronę **Symulator Azure IoT Online dla Raspberry Pi** z przykładowym zapytaniem.

    Ważne

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

Tworzenie magazynu blobów

  1. W lewym górnym rogu portalu Azure wybierz Utwórz zasób>magazyn>konto magazynu.

    Zrzut ekranu przedstawiający menu Tworzenie konta przechowywania.

  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 usługi magazynowej.

    Zrzut ekranu przedstawiający stronę tworzenia konta magazynowania.

  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 blobów.

Tworzenie projektu usługi Stream Analytics

  1. W programie Visual Studio Code wybierz pozycję Wyświetl>paletę poleceń i wprowadź asa: 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. Program Visual Studio Code dodaje projekt ASA 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

    Po dodaniu 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. Dane wejściowe i wyjściowe można umieścić w jednym miejscu, a następnie odwoływać 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 folderze Inputs widzisz, że utworzony został plik Input.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 Wybierz z subskrypcji, a następnie wybierz swoją subskrypcję platformy Azure, która zawiera 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 odsyłaczem Wybierz centrum IoT.

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

  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 z subskrypcji platformy Azure.
  4. Wprowadź Output na nazwę aliasu i naciśnij ENTER. Ta nazwa danych wyjściowych jest używana dla instrukcji INTO w zapytaniu.
  5. W edytorze JSON dlaOutput.jsonwybierz pozycję Wybierz z subskrypcji, a następnie wybierz subskrypcję platformy Azure z kontem usługi Azure Storage.
  6. Jeśli musisz zmienić automatycznie uzupełnione konto magazynu, wybierz opcję 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 Wybierz kontener i wybierz kontener obiektów blob, który utworzyłeś.

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 plik skryptu w oknie Eksploratora, wskaż polecenie ASA: Skompiluj skrypt, a następnie wybierz pozycję ASA: ARM Template V2 (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 opcję 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.

    Zrzut ekranu przedstawiający okno Uruchamianie zadania przesyłania strumieniowego.

  3. Jeśli zadanie zostanie pomyślnie uruchomione, stan zadania zmieni się na Uruchomiono. Zostanie wyświetlony 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 danych wyjściowych, otwórz magazyn obiektów blob w rozszerzeniu programu Visual Studio Code lub w witrynie Azure Portal.

    Zrzut ekranu pliku wyjściowego w kontenerze 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 zasoby nie są już potrzebne, usuń grupę zasobów, zadanie usługi Stream Analytics i wszystkie powiązane zasoby. Usunięcie zadania powoduje zatrzymanie rozliczeń dla jednostek przesyłania strumieniowego używanych przez zadanie. Jeśli planujesz używać zadania w przyszłości, możesz go zatrzymać i uruchomić ponownie później, gdy będzie to 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 o rozszerzeniu ASA Tools dla programu Visual Studio Code, zobacz następujące artykuły: