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


Краткое руководство: Создание задачи Stream Analytics с помощью Visual Studio Code

В этом кратком руководстве описано, как создать, запустить и отправить задание Azure Stream Analytics (ASA) с помощью расширения средств ASA для Visual Studio Code на локальном компьютере. Вы узнаете, как создать задачу ASA, которая считывает потоковые данные в реальном времени с IoT Hub и фильтрует события с температурой больше 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. Если у вашей учетной записи есть двухфакторная проверка подлинности, используйте проверку подлинности телефона, а не пин-код. Чтобы выйти из учетной записи Azure, нажмите Ctrl + Shift + P и введите Azure: Sign Out.

Подготовка входных данных

Перед определением задания Stream Analytics подготовьте входные данные. Решение отправляет данные датчика в режиме реального времени в Центр Интернета вещей, который позже настраивается в качестве входных данных задания. Чтобы подготовить входные данные, необходимые для задания, выполните следующие действия.

  1. Войдите на портал Azure.

  2. Выберите Создать ресурс. На странице Создание ресурса выберите Интернет вещей>Центр Интернета вещей.

    Снимок экрана: меню Центра Интернета вещей на странице

  3. На странице Центр Интернета вещей сделайте следующее:

    1. Для подписки выберите подписку Azure.
    2. В качестве группы ресурсов выберите существующую группу ресурсов или создайте новую.
    3. В качестве имени центра Интернета вещей введите имя своего центра Интернета вещей.
    4. В качестве региона выберите ближайший к вам регион.
    5. Для уровня выберите "Бесплатный", если он по-прежнему доступен в вашей подписке. Дополнительную информацию см. в разделе ценообразование для IoT Hub.
    6. Для ограничения ежедневного сообщения сохраните значение по умолчанию.
    7. В нижней части страницы нажмите кнопку Далее: сети.

    Снимок экрана, демонстрирующий страницу для создания центра IoT Hub.

  4. Выберите Review + create. Просмотрите сведения о Центре Интернета вещей и нажмите кнопку "Создать". Создание Центра Интернета вещей может занять несколько минут. Вы можете отслеживать прогресс на панели Уведомления.

  5. После создания ресурса (Центра Интернета вещей) выберите "Перейти к ресурсу ", чтобы перейти на страницу Центра Интернета вещей.

  6. На странице Центр Интернета вещей выберите Устройства в меню слева и нажмите кнопку + Добавить устройство.

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

  7. Введите идентификатор устройства и нажмите кнопку "Сохранить".

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

  8. После создания устройства вы увидите устройство в списке устройств Интернета вещей . Нажмите кнопку Обновить на странице, если оно не отображается.

    Снимок экрана: список устройств.

  9. Выберите устройство из списка.

  10. На странице устройства нажмите кнопку копирования рядом с Основной строкой подключения и сохраните в текстовом редакторе, чтобы использовать позже.

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

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

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

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

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

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

    Внимание

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

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

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

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

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

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

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

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

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

    Снимок экрана, показывающий создание страницы контейнера блобов.

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

  1. В Visual Studio Code выберите "Просмотреть>палитру команд" и введите ASA: Создать проект.

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

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

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

  3. Visual Studio Code добавляет в рабочую область проект 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. В папке "Входные данные" будет создан файл Input.json .

  6. В JSON-файле убедитесь, что Input указан как Name.

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

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

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

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

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

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

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

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

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

  1. Щелкните правой кнопкой мыши выходные данные в обозревателе и выберите ASA: Добавить выходные данные.
  2. Выберите Data Lake Storage Gen2/BLOB-хранилище для типа получателя в раскрывающемся списке.
  3. Выберите Выбор из подписок Azure.
  4. Введите Output для имени псевдонима и нажмите ВВОД. Это выходное имя используется для инструкции 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. В окне начала потокового задания нажмите OK. Этот процесс может занять несколько минут.

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

  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 см. в следующих статьях: