Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- Visual Studio Code
Instalowanie rozszerzenia narzędzi usługi Azure Stream Analytics
Otwórz program Visual Studio Code (VS Code).
W rozszerzeniach po lewej stronie, wyszukaj stream analytics i wybierz Zainstaluj w rozszerzeniu Azure Stream Analytics Tools.
Po zainstalowaniu wybierz ikonę platformy Azure na pasku działań i zaloguj się na platformie Azure.
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:
Zaloguj się do witryny Azure Portal.
Wybierz pozycję Utwórz zasób. Na stronie Tworzenie zasobu wybierz pozycję Internet rzeczy>IoT Hub.
Na stronie usługi IoT Hub wykonaj następujące kroki:
- W polu Subskrypcja wybierz subskrypcję platformy Azure.
- W obszarze Grupa zasobów wybierz istniejącą grupę zasobów lub utwórz nową grupę zasobów.
- W polu Nazwa centrum IoT wprowadź nazwę centrum IoT Hub.
- W obszarze Region wybierz region, który znajduje się najbliżej Ciebie.
- 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.
- W przypadku dziennego limitu komunikatów zachowaj wartość domyślną.
- Wybierz pozycję Dalej: Sieć w dolnej części strony.
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 .
Po utworzeniu zasobu (centrum IoT) wybierz pozycję Przejdź do zasobu , aby przejść do strony usługi IoT Hub.
Na stronie usługi 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 na liście urządzeń IoT zostanie wyświetlone urządzenie. Wybierz przycisk Odśwież na stronie, jeśli go nie widzisz.
Wybierz urządzenie z listy.
Na stronie urządzenia wybierz przycisk kopiowania obok pozycji Podstawowe parametry połączenia i zapisz go w Notatniku do późniejszego użycia.
Uruchamianie symulatora IoT
Otwórz symulator Raspberry Pi Azure IoT Online Simulator.
Zastąp symbol zastępczy w wierszu 15 parametrami połączenia urządzenia usługi Azure IoT Hub zapisanymi w poprzedniej sekcji.
Wybierz Uruchom. Dane wyjściowe zawierają dane czujnika i komunikaty wysyłane do usługi IoT Hub.
Ważne
Wybierz pozycję Resetuj po kilku minutach, aby zresetować parametry połączenia.
Tworzenie magazynu blobów
W lewym górnym rogu portalu Azure wybierz Utwórz zasób>magazyn>konto 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 usługi magazynowej.
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 poziom dostępu publicznego jako Prywatny (bez dostępu anonimowego) i wybierz przycisk OK.
Tworzenie projektu usługi Stream Analytics
W programie Visual Studio Code wybierz pozycję Wyświetl>paletę poleceń i wprowadź asa: Utwórz nowy projekt.
Wprowadź nazwę projektu, taką jak myASAproj, i wybierz folder dla projektu.
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.
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
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 w projekcie usługi Stream Analytics. Następnie wybierz pozycję ASA: Dodaj dane wejściowe z menu kontekstowego.
Możesz też nacisnąć Ctrl+Shift+P , aby otworzyć paletę poleceń i wprowadzić ciąg ASA: Dodaj dane wejściowe.
Wybierz usługę IoT Hub dla typu danych wejściowych.
Wybierz pozycję Wybierz z subskrypcji platformy Azure z menu rozwijanego, a następnie naciśnij ENTER.
Wprowadź dane wejściowe dla nazwy, a następnie naciśnij ENTER.
W folderze Inputs widzisz, że utworzony został plik Input.json.
W pliku JSON upewnij się, że w polu Input (Dane wejściowe ) określono wartość Name (Nazwa).
W edytorze JSON dla Input.json wybierz Wybierz z subskrypcji, a następnie wybierz swoją subskrypcję platformy Azure, która zawiera centrum IoT.
W edytorze JSON wybierz pozycję Wybierz centrum IoT Hub, a następnie wybierz utworzone centrum IoT.
Domyślnie parametr
SharedAccessPolicyNamepowinien 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.Wartość
SharedAccessPolicyKeypowinna być ustawiana automatycznie.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.
Konfigurowanie danych wyjściowych zadania
- Kliknij prawym przyciskiem myszy pozycję Dane wyjściowe w eksploratorze i wybierz pozycję ASA: Dodaj dane wyjściowe.
- Wybierz pozycję Data Lake Storage Gen2/Blob Storage dla typu ujścia z listy rozwijanej.
- Wybierz z subskrypcji platformy Azure.
- Wprowadź Output na nazwę aliasu i naciśnij ENTER. Ta nazwa danych wyjściowych jest używana dla instrukcji INTO w zapytaniu.
- W edytorze JSON dlaOutput.jsonwybierz pozycję Wybierz z subskrypcji, a następnie wybierz subskrypcję platformy Azure z kontem usługi Azure Storage.
- 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.
- Jeśli musisz zmienić nazwę kontenera, wybierz Wybierz kontener i wybierz kontener obiektów blob, który utworzyłeś.
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 plik skryptu w oknie Eksploratora, wskaż polecenie ASA: Skompiluj skrypt, a następnie wybierz pozycję ASA: ARM Template V2 (zalecane).
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ń.
W oknie Prześlij wykonaj następujące kroki:
Wybierz swoją subskrypcję platformy Azure.
Wybierz grupę zasobów platformy Azure.
Wybierz region, w którym chcesz utworzyć zadanie usługi Stream Analytics.
Następnie wybierz pozycję Prześlij.
Wybierz pozycję Publikuj na platformie Azure i ukończ. Poczekaj na otwarcie nowej karty Widok zadania w chmurze z wyświetlonym stanem zadania.
Uruchamianie zadania usługi Stream Analytics i sprawdzanie danych wyjściowych
Na karcie Widok zadania w chmurze wybierz opcję Uruchom, aby uruchomić zadanie w chmurze.
W oknie Uruchamianie zadania przesyłania strumieniowego wybierz przycisk OK. Ukończenie tego procesu może potrwać kilka minut.
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.
Aby wyświetlić wyniki danych wyjściowych, otwórz magazyn obiektów blob w rozszerzeniu programu Visual Studio Code lub w witrynie 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 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:
W menu po lewej stronie w witrynie 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 o rozszerzeniu ASA Tools dla programu Visual Studio Code, zobacz następujące artykuły: