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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- Program Visual Studio Code
Instalowanie rozszerzenia Narzędzi usługi Azure Stream Analytics
Otwórz Visual Studio Code (VS Code).
W okienku po lewej stronie wyszukaj pozycję Stream Analytics i wybierz pozycję Zainstaluj w rozszerzeniu Azure Stream Analytics Tools.
Po zainstalowaniu wybierz ikonę platformy Azure na pasku działań i zaloguj się do platformy Azure.
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:
Zaloguj się do Azure portal.
Wybierz pozycję Utwórz zasób > Internet rzeczy > IoT Hub.
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.
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.
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.
Po utworzeniu centrum IoT wybierz pozycję Przejdź do zasobu, aby przejść do strony IoT Hub. '
Na stronie IoT Hub wybierz pozycję Urządzenia w menu po lewej stronie, a następnie wybierz pozycję + Dodaj urządzenie.
Wprowadź identyfikator urządzenia i wybierz pozycję Zapisz.
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.
Wybierz urządzenie z listy. Skopiuj podstawowe parametry połączenia i zapisz je w Notatniku do późniejszego użycia.
Uruchamianie symulatora IoT
Otwórz symulator urządzenia Raspberry Pi Azure IoT Online Simulator na nowej karcie przeglądarki.
Zastąp symbol zastępczy w wierszu 15 zapisanymi wcześniej parametrami połączenia urządzenia centrum IoT Hub.
Wybierz pozycję Uruchom. Dane wyjściowe powinny zawierać dane czujnika i komunikaty wysyłane do centrum IoT.
Tworzenie magazynu obiektów blob
W lewym górnym rogu Azure Portal wybierz pozycję Utwórz konto>magazynu magazynu.>
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.
Na stronie Konto magazynu wybierz pozycję Kontenery w menu po lewej stronie, a następnie wybierz pozycję + Kontener na pasku poleceń.
Na stronie Nowy kontener podaj nazwę kontenera, pozostaw wartość Poziom dostępu publicznego jako Prywatny (bez dostępu anonimowego) i wybierz przycisk OK.
Tworzenie projektu usługi Stream Analytics
W Visual Studio Code naciśnij klawisze Ctrl+Shift+P i wprowadź ciąg ASA: Create New Project (Utwórz nowy projekt).
Wprowadź nazwę projektu, taką jak myASAproj, i wybierz folder dla projektu.
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 .
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
Otwórz plik myASAproj.asaql i dodaj następujące zapytanie:
SELECT * INTO Output FROM Input WHERE Temperature > 27
Konfigurowanie danych wejściowych zadania
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.
Możesz też nacisnąć klawisze Ctrl+Shift+P , aby otworzyć paletę poleceń i wprowadzić ciąg ASA: Dodaj dane wejściowe.
Wybierz IoT Hub dla typu wejściowego.
Wybierz skrypt ASA *.asaql i subskrypcje platformy Azure z menu rozwijanego, a następnie naciśnij klawisz ENTER.
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 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.
Konfigurowanie danych wyjściowych zadania
Naciśnij klawisze Ctrl+Shift+P , aby otworzyć paletę poleceń i wprowadzić ciąg ASA: Dodaj dane wyjściowe.
Wybierz pozycję Data Lake Storage Gen2/Blob Storage dla typu ujścia.
Wybierz skrypt zapytania przy użyciu tych danych wyjściowych.
Wprowadź wartość BlobStorage1 jako nazwę pliku wyjściowego.
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.
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.
Kliknij prawym przyciskiem myszy skrypt i wybierz pozycję ASA: Kompiluj skrypt.
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.
Wybierz pozycję Prześlij na platformę Azure w edytorze zapytań.
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.
Wybierz pozycję Publikuj na platformie Azure i zakończ. Poczekaj na otwarcie nowej karty Widok zadania w chmurze z informacją o stanie zadania.
Uruchamianie zadania usługi Stream Analytics i sprawdzanie danych wyjściowych
Na karcie Widok zadań w chmurze wybierz pozycję Uruchom , aby uruchomić zadanie w chmurze. Ukończenie tego procesu może potrwać kilka minut.
Jeśli zadanie zostanie pomyślnie uruchomione, stan zadania zostanie zmieniony na Uruchomiono. Na diagramie logicznym pokazano, jak działa zadanie usługi ASA.
Aby wyświetlić wyniki wyjściowe, możesz otworzyć magazyn obiektów blob w rozszerzeniu Visual Studio Code lub w Azure Portal.
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:
W menu po lewej stronie w Azure Portal wybierz pozycję Grupy zasobów, a następnie wybierz nazwę utworzonego zasobu.
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: