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


Руководство. Написание определяемой пользователем функции C# для задания Azure Stream Analytics (предварительная версия)

Это важно

Определяемые пользователем функции .Net Standard для Azure Stream Analytics будут прекращены 30 сентября 2024 года. По истечении этой даты невозможно использовать эту функцию. Перейдите к определяемым пользователем функциям JavaScript для Azure Stream Analytics.

Определяемые пользователем функции C#, созданные в Visual Studio, позволяют расширить язык запросов Azure Stream Analytics с помощью собственных функций. Можно повторно использовать существующий код (включая библиотеки DLL) и использовать математические или сложные логики с C#. Существует три способа реализации определяемых пользователем функций:

  • Файлы CodeBehind в проекте Stream Analytics
  • Пользовательские функции из локального проекта на C#
  • ФПП из имеющегося пакета из учетной записи для хранения.

В этом руководстве используется метод CodeBehind для реализации базовой функции C#. Функция UDF для заданий Stream Analytics в настоящее время находится в предварительной версии и не должна использоваться в рабочих нагрузках.

В этом руководстве вы узнаете, как:

  • Создайте определяемую пользователем функцию C# с помощью CodeBehind.
  • Протестируйте ваше задание Stream Analytics локально.
  • Опубликуйте задание в Azure.

Предпосылки

Прежде чем начать, убедитесь, что выполнены следующие предварительные требования:

Создание контейнера в учетной записи хранения Azure

Создаваемый контейнер используется для хранения скомпилированного пакета C#. При создании задания Edge эта учетная запись хранения также используется для развертывания пакета на устройстве IoT Edge. Используйте выделенный контейнер для каждого задания Stream Analytics. Повторное использование одного контейнера для нескольких заданий Stream Analytics Edge не поддерживается. Если у вас уже есть учетная запись хранения с существующими контейнерами, их можно использовать. В противном случае необходимо создать новый контейнер.

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

  1. Запустите Visual Studio.

  2. Выберите Файл > Новый > проект.

  3. В списке шаблонов слева выберите Stream Analytics и выберите приложение Azure Stream Analytics Edge или приложение Azure Stream Analytics.

  4. Введите имя проекта, расположение и имя решения и нажмите кнопку "ОК".

    Создание проекта Azure Stream Analytics Edge в Visual Studio

Настройка пути пакета сборки

  1. Откройте Visual Studio и перейдите в обозреватель решений.

  2. Дважды кликните файл конфигурации задания, JobConfig.json.

  3. Разверните раздел конфигурации пользовательского кода и заполните его следующими значениями.

    Настройки Предлагаемое значение
    Глобальный ресурс параметров хранилища Выбор источника данных из текущей учетной записи
    Подписка на глобальные настройки хранилища < подписка >
    Глобальные параметры хранения учетной записи хранения < учетная запись хранения >
    Ресурс параметров хранилища пользовательского кода Выбор источника данных из текущей учетной записи
    Учетная запись хранения пользовательских параметров хранилища кода < учетная запись хранения >
    Контейнер параметров хранилища пользовательского кода < ваш контейнер для хранения >

Создание UDF C# с помощью CodeBehind

Файл CodeBehind — это файл C#, связанный с одним скриптом запросов ASA. Средства Visual Studio автоматически запаковывают файл CodeBehind и отправляют его в учетную запись хранения Azure при отправке. Все классы должны быть определены как общедоступные , а все объекты должны быть определены как статические общедоступные.

  1. В обозревателе решений разверните Script.asql , чтобы найти файл Script.asaql.cs CodeBehind.

  2. Замените код следующим примером:

        using System; 
        using System.Collections.Generic; 
        using System.IO; 
        using System.Linq; 
        using System.Text; 
    
        namespace ASAEdgeUDFDemo 
        { 
            public class Class1 
            { 
                // Public static function 
                public static Int64 SquareFunction(Int64 a) 
                { 
                    return a * a; 
                } 
            } 
        } 
    

Реализуйте UDF

  1. В обозревателе решений откройте файл Script.asaql .

  2. Замените существующий запрос следующим запросом:

        SELECT machine.temperature, udf.ASAEdgeUDFDemo_Class1_SquareFunction(try_cast(machine.temperature as bigint))
        INTO Output
        FROM Input 
    

Локальное тестирование

  1. Скачайте пример файла данных симулятора температуры.

  2. В Обозревателе решений разверните Входные данные, щелкните правой кнопкой мыши Input.json и выберите Добавить локальные входные данные.

    Добавление локальных входных данных в задание Stream Analytics в Visual Studio

  3. Укажите путь локального входного файла для скачанных и сохраненных данных.

    Локальная конфигурация входных данных для задания Stream Analytics в Visual Studio

  4. Нажмите кнопку "Выполнить локально " в редакторе скриптов. После успешного сохранения выходных результатов локального запуска нажмите любой ключ, чтобы просмотреть результаты в формате таблицы.

    Локальное выполнение задания Azure Stream Analytics с помощью Visual Studio

  5. Вы также можете выбрать "Открыть папку результатов ", чтобы просмотреть необработанные файлы в формате JSON и CSV.

    Просмотр результатов локального задания Azure Stream Analytics с помощью Visual Studio

Отладка UDF

Вы можете отлаживать UDF C# локально точно так же, как и стандартный код C#.

  1. Добавьте точки останова в функцию C#.

    Добавление точек останова в определяемую пользователем функцию Stream Analytics в Visual Studio

  2. Нажмите клавишу F5 , чтобы начать отладку. Программа, как и ожидалось, останавливается в точках останова.

    Просмотр результатов отладки определяемой пользователем функции Stream Analytics

Публикация задания в Azure

После локального тестирования запроса выберите "Отправить в Azure " в редакторе скриптов, чтобы опубликовать задание в Azure.

Отправка задания Stream Analytics Edge в Azure из Visual Studio

Развертывание на устройствах IoT Edge

Если вы решили создать задание Stream Analytics Edge, его теперь можно развернуть как модуль IoT Edge. Следуйте краткому руководству по IoT Edge , чтобы создать Центр Интернета вещей, зарегистрировать устройство IoT Edge и установить и запустить среду выполнения IoT Edge на устройстве. Затем следуйте инструкциям по развертыванию задания , чтобы развернуть задание Stream Analytics в качестве модуля IoT Edge.

Дальнейшие шаги

В этом руководстве вы создали простую определяемую пользователем функцию C# с помощью CodeBehind, опубликовали задание в Azure и развернули задание на устройстве Azure или IoT Edge.

Дополнительные сведения о различных способах использования пользовательских функций C# для заданий Stream Analytics см. в следующей статье: