Вывод данных из Azure Stream Analytics в Функции Azure

Функции Azure — это бессерверная служба вычислений, которая позволяет выполнять код по требованию без необходимости явно подготавливать или администрировать инфраструктуру. Они позволяют реализовать код, который запускается событиями, возникающими в Azure или партнерских службах. Эта возможность Функций Azure реагировать на триггеры упрощает вывод данных Azure Stream Analytics. Этот выходной адаптер позволяет пользователям подключать Stream Analytics к Функциям Azure и запускать сценарий или часть кода в ответ на ряд событий.

Функции Azure выходные данные из Stream Analytics недоступны в Microsoft Azure под управлением 21Vianet и Azure для Германии (T-Systems International). Подключение к Функции Azure в виртуальной сети из задания Stream Analytics, выполняемого в кластере с несколькими клиентами, также не поддерживается.

Azure Stream Analytics вызывает Функции Azure через триггеры HTTP. Адаптер выходных данных функции Azure доступен со следующими настраиваемыми свойствами:

Имя свойства Описание
Приложение-функция Имя приложения-функции Azure.
Компонент Имя функции в приложении-функции Azure.
Клавиши Если нужно использовать службу "Функции Azure" из другой подписки это можно сделать, предоставив ключ для доступа к функции.
Максимальный размер пакета Свойство, которое позволяет задать максимальный размер для каждого выходного пакета, отправляемого в функцию Azure. Объем входных данных задается в байтах. По умолчанию это значение равно 262 144 байт (256 КБ).
Максимальное количество пакетов Свойство, которое позволяет указать максимальное число событий в каждом пакете, отправляемых в функции Azure. По умолчанию используется значение 100.

Azure Stream Analytics ожидает HTTP-состояние 200 из приложения-функции для пакетов, которые были успешно обработаны.

Когда служба Azure Stream Analytics получает исключение 413 (сущность запроса HTTP слишком большая) из службы "Функции Azure", размер пакетов, отправляемых в службу "Функции Azure", уменьшается. В коде функции Azure это исключение позволяет убедится, что Azure Stream Analytics не отправляет пакеты слишком большого размера. Кроме того, убедитесь, что максимальное количество пакетов и размеры значений, используемые в функции, соответствуют значениям, введенным на портале Stream Analytics.

Примечание

Во время тестового подключения Stream Analytics отправляет (POST) пустой пакет в Функции Azure для проверки, если соединение между ними работает. Убедитесь, что приложение-функция обрабатывает пустые пакетные запросы, чтобы убедиться, что проверка пройдена.

Кроме того, в ситуации, когда во временном окне не происходит целевое событие, никакие выходные данные не генерируются. В результате функция computeResult не вызывается. Такое поведение согласуется со встроенными оконными агрегатными функциями.

Секционирование

Значение ключа секции основано на предложении PARTITION BY в запросе. Количество модулей записи выходных данных соответствует секционированию входных данных для полностью распараллеливаемых запросов.

Размер выходного пакета

Размер пакета по умолчанию составляет 262 144 байт (256 КБ). Число событий в пакете по умолчанию равно 100. Размер пакета можно настроить, его можно увеличить или уменьшить в параметрах вывода Stream Analytics.

Ограничение

Служба "Функции Azure" должна выполнить свой запрос в течение 100 секунд, так как время ожидания HTTP-клиента истекает через 100 секунд. Если для обработки пакета данных службе "Функции Azure" требуется более 100 секунд, время ожидания активирует повторную попытку. Эта повторная попытка может привести к дублированию данных, так как служба "Функции Azure" будет заново обрабатывать данные и теоретически может создать те же выходные данные, поскольку в предыдущем запросе они могли быть выведены частично.

Примеры кода

Выходные данные Функций Azure можно использовать для ретрансляции сообщений в неподдерживаемые базы данных, например Redis, или для обновления таблиц в Azure SQL.

Дальнейшие действия