Поделиться через


Краткое руководство. Создание задания Stream Analytics с использованием инструментов Azure Stream Analytics для Visual Studio Code

В этом кратком руководстве вы создадите, запустите и отправьте задание Azure Stream Analytics (ASA) с помощью расширения средств ASA для Visual Studio Code на локальном компьютере. Вы узнаете, как создать задание ASA, которое считывает данные потоковой передачи в режиме реального времени из Центр Интернета вещей и фильтрует события с температурой больше 27°. Выходные результаты отправляются в файл в хранилище BLOB-объектов. Входные данные, используемые в этом кратком руководстве, создаются онлайн-симулятором Raspberry Pi.

Примечание.

Средства Visual Studio Code не поддерживают рабочие места в регионах "Восточная Китай", "Северная Китай", "Центральная Германия" и "Северная Германия".

Необходимые компоненты

Установка расширения "Инструменты Azure Stream Analytics"

  1. Откройте Visual Studio Code (VS Code).

  2. В области "Расширения" на панели слева найдите stream analytics и выберите "Установить" в расширении средств Azure Stream Analytics.

    Снимок экрана: страница

  3. После установки выберите значок Azure на панели действий и войдите в Azure.

    Снимок экрана: как выполнить вход в Azure.

  4. После входа вы увидите подписки в учетной записи Azure.

Примечание.

Расширение ASA Tools автоматически войдет в систему при каждом открытии VS Code. Если для вашей учетной записи настроена двухфакторная проверка подлинности, мы рекомендуем выполнять ее с использованием телефона, а не PIN-кода. Чтобы выйти из учетной записи Azure, нажмите Ctrl + Shift + P и введите Azure: Sign Out.

Запуск IoT-симулятора

  1. Откройте онлайн-симулятор Raspberry Pi для Интернета вещей Azure.

  2. Замените значения заполнителя в 15 строке строкой подключения устройства Центра Интернета вещей, которую вы сохранили при работе с предыдущим разделом.

  3. Выберите Выполнить. В выходных данных должны присутствовать показания датчика и сообщения, отправляемые в Центр Интернета вещей.

    Снимок экрана: страница

    Внимание

    Нажмите кнопку "Сброс" через несколько минут, чтобы сбросить строка подключения.

Создание хранилища BLOB-объектов

  1. В верхнем левом углу окна портала Azure щелкните Создать ресурс>Хранилище>Учетная запись хранения.

    Снимок экрана: меню создания учетной записи хранения.

  2. В области создания учетной записи хранения введите имя для учетной записи хранения, расположение и группу ресурсов. Выберите такое же расположение и группу ресурсов, как и для созданного центра Интернета вещей. Затем нажмите кнопку "Рецензирование " и "Создать ", чтобы создать учетную запись хранения.

    Снимок экрана: страница создания учетной записи хранения.

  3. На странице Учетная запись хранения выберите Контейнеры в меню слева, а затем выберите + Контейнер на панели команд.

    Снимок экрана: страница контейнеров.

  4. На странице Создание контейнера укажите имя контейнера, оставьте для параметра Уровень общедоступного доступа значение Закрытый (отсутствие анонимного доступа) и нажмите ОК.

    Снимок экрана: страница создания контейнера BLOB-объектов.

Создание проекта Stream Analytics

  1. В Visual Studio Code нажмите клавиши CTRL+SHIFT+P и введите ASA: создать проект.

    Снимок экрана: выбор

  2. Введите имя проекта, например myASAproj, и выберите папку для этого проекта.

    Снимок экрана: ввод имени проекта ASA.

  3. Проект ASA добавляется в рабочую область. Она состоит из трех папок: входных данных, выходных данных и функций. Также он включает скрипт запроса (*.asaql), файл JobConfig.json и файл конфигурации asaproj.json.

    Снимок экрана: файлы проектов Stream Analytics в Visual Studio Code.

    Файл asaproj.json содержит входные данные, выходные данные и параметры конфигурации задания для отправки задания Stream Analytics в Azure.

    Примечание.

    При добавлении входных и выходных данных с помощью палитры команд все соответствующие пути автоматически добавляются в файл asaproj.json. Если вы добавляете входные или выходные данные непосредственно на диск или удаляете их оттуда, используйте для этого файл asaproj.json. Вы можете поместить все входные и выходные данные в одно расположение, а затем создать ссылки на них в разных заданиях, указав пути в каждом файле asaproj.json.

Определение запроса преобразования

  1. Откройте файл myASAproj.asaql и добавьте следующий запрос:

    SELECT *
    INTO Output
    FROM Input
    WHERE Temperature > 27
    

    Снимок экрана: запрос преобразования.

Настройка входных данных для задания

  1. Щелкните правой кнопкой мыши папку Inputs в проекте Stream Analytics. Затем выберите ASA: Добавить входные данные из контекстного меню.

    Снимок экрана: меню

    Или нажмите клавиши CTRL+SHIFT+P , чтобы открыть палитру команд и ввести ASA: добавить входные данные.

  2. Выберите в качестве типа входных данных Центр Интернета вещей.

    Снимок экрана: выбор центра Интернета вещей в палитре команд Visual Studio Code.

  3. Выберите из раскрывающегося меню подписки Azure и нажмите клавишу ВВОД.

  4. Введите входные данные для имени и нажмите клавишу ВВОД.

  5. В папке "Входные данные" будет создан файл IoTHub1.json .

  6. В JSON-файле убедитесь, что входные данные указаны в имени.

  7. В редакторе JSON для Input.json выберите пункт "Выбрать из подписок", а затем выберите подписку Azure с центром Интернета вещей.

    Снимок экрана: редактор JSON с ссылкой

  8. В редакторе JSON выберите Центр Интернета вещей и выберите созданный центр Интернета вещей.

    Снимок экрана: редактор JSON с ссылкой

  9. По умолчанию SharedAccessPolicyName должно быть задано значение iothubowner. В противном случае выберите ссылку "Имя политики общего доступа" и выберите iothubowner из раскрывающегося списка.

  10. Значение SharedAccessPolicyKey должно быть задано автоматически.

  11. Выберите предварительный просмотр данных , чтобы узнать, успешно ли настроены входные данные для задания. Он получит пример Центр Интернета вещей и отобразится в окне предварительного просмотра.

    Снимок экрана: предварительный просмотр входных данных в центре Интернета вещей.

Настройка выходных данных для задания

  1. Щелкните правой кнопкой мыши выходные данные в обозревателе и выберите ASA: Добавить выходные данные.
  2. Выберите Data Lake Storage 2-го поколения/хранилище BLOB-объектов для типа приемника в раскрывающемся списке.
  3. Выбор из подписок Azure
  4. Введите выходные данные для имени псевдонима и нажмите клавишу ВВОД. Это выходное имя используется для инструкции INTO в запросе.
  5. В редакторе JSON для Output.json выберите "Выбрать из подписок" и выберите подписку Azure с учетной записью служба хранилища Azure
  6. Если необходимо изменить учетную запись хранения, которая автоматически заполнена, выберите учетную запись хранения и выберите учетную запись служба хранилища Azure. Имена учетных записей обнаруживаются автоматически, если они создаются в той же подписке.
  7. Если необходимо изменить имя контейнера, выберите контейнер и выберите созданный контейнер BLOB-объектов.

Снимок экрана: конфигурация выходных данных для задания Stream Analytics.

Компиляция скрипта и отправка в Azure

При компиляции скрипта проверяется синтаксис и создаются шаблоны Azure Resource Manager для автоматического развертывания.

  1. Щелкните правой кнопкой мыши файл скрипта в окне обозревателя, наведите указатель на ASA: Компиляция скрипта, а затем выберите ASA: Шаблон ARM версии 2 (рекомендуется).

    Снимок экрана: сборник вариантов скриптов из обозревателя Stream Analytics в VS Code.

  2. После компиляции вы увидите папку Deploy в проекте с двумя шаблонами Azure Resource Manager. Эти два файла используются для автоматического развертывания.

    Снимок экрана: созданные шаблоны развертывания в папке проекта.

  3. Выберите "Отправить в Azure " в редакторе запросов.

    Снимок экрана: кнопка

  4. В окне отправки выполните следующие действия:

    1. Выберите свою подписку Azure.

    2. Выберите группу ресурсов Azure.

    3. Выберите регион, в котором нужно создать задание Stream Analytics.

    4. Затем выберите Отправить.

      Снимок экрана: параметры отправки.

  5. Выберите "Опубликовать в Azure " и завершите работу. Дождитесь открытия новой вкладки Cloud Job View с состоянием задания.

    Снимок экрана: кнопка публикации в Azure в VS Code.

Запуск задания Stream Analytics и просмотр выходных данных

  1. На вкладке "Представление заданий облака" выберите "Пуск ", чтобы запустить задание в облаке.

    Снимок экрана: кнопка запуска задания на странице

  2. В окне задания начальной потоковой передачи нажмите кнопку "ОК". Этот процесс может занять несколько минут.

  3. Если задание запущено успешно, состояние задания изменяется на "Выполнение". Вы увидите логическую схему, показывающую, как выполняется задание ASA.

    Снимок экрана: состояние выполнения задания в VS Code.

  4. Чтобы просмотреть выходные результаты, можно открыть хранилище BLOB-объектов в расширении Visual Studio Code или в портал Azure.

    Снимок экрана: выходной файл в контейнере BLOB-объектов.

    Скачайте и откройте файл, чтобы просмотреть выходные данные.

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

Очистка ресурсов

Ставшие ненужными группу ресурсов, задание Stream Analytics и все связанные ресурсы можно удалить. При удалении задания будет прекращена тарификация за единицы потоковой передачи, потребляемые заданием. Если вы планируете использовать это задание в будущем, вы можете остановить и перезапустить его позже. Если вы не собираетесь использовать это задание дальше, удалите все ресурсы, созданные в ходе работы с этим руководством, сделав следующее:

  1. В меню слева на портале Azure выберите Группы ресурсов, а затем щелкните имя созданного ресурса.

  2. На странице группы ресурсов щелкните Удалить. В следующем окне введите имя удаляемого ресурса и щелкните Удалить.

Следующие шаги

Дополнительные сведения о расширении средств ASA для Visual Studio Code см. в следующих статьях: