Как я могу обрабатывать уведомления о загрузке файлов IoTHub в функции Azure

В настоящее время у нас есть устройства, которые отправляют файлы в Azure через Azure IoTHub с помощью функции загрузки файлов.

В идеале у нас должна быть функция Azure, которая запускается при загрузке нового файла. Нам известно о fileuploadnotifications rest API, но для этого нам нужно использовать функцию Azure с запуском по времени и опросить этот API.

Есть ли способ разрешить IoTHub запускать функцию Azure при загрузке нового файла?

ИЗМЕНИТЬ 1

Я просто попытался подключить функцию к концентратору событий, но вместо сообщений / событий имени концентратора событий я использовал messages / servicebound / fileuploadnotifications в соответствии с предложением Мэтта Мейсона - MSFT. В этой функции, которая была привязана к пути fileNotifications, я получал только сообщения, которые я отправил в IoTHub, и не получал никаких уведомлений о загрузке файлов. Смотрите скриншот ниже.

введите здесь описание изображения


person Wessel Kranenborg    schedule 13.04.2017    source источник
comment
Похоже, что на этом форуме также есть ответ: social.msdn.microsoft.com/Forums/en-US/   -  person Wessel Kranenborg    schedule 14.04.2017


Ответы (2)


Изменить. К сожалению, API FileUploadNotification не поддерживается для концентраторов событий. Однако вы можете обойти это, отправив сообщение устройства о загрузке файла в конечную точку, совместимую с концентратором событий, см. Здесь:

https://social.msdn.microsoft.com/Forums/en-US/e0cc88e6-9592-4f4f-ba25-8fa4afa2fcf1/consume-iot-hub-file-upload-notifications-as-triggered-events?forum=azureiothub


Глядя на API FileUploadNotifications, кажется, что это конечная точка, ориентированная на службы:

Как объяснено в разделе Конечные точки, Центр Интернета вещей доставляет уведомления о загрузке файлов через конечную точку, ориентированную на службу (/ messages / servicebound / fileuploadnotifications), в виде сообщений.

Я считаю, что вы сможете подписаться на эти инструкции, чтобы подключить функцию к концентратору событий, но вместо имени концентратора событий messages/events используйте messages/servicebound/fileuploadnotifications.

person Matt Mason    schedule 13.04.2017
comment
Спасибо за ответ, но этот не работает. Я протестировал это и обновил свой первоначальный вопрос своими результатами. - person Wessel Kranenborg; 14.04.2017

Простой способ - создать подписку EventGrid для функции Azure на событие Blob Created в контейнере, куда файлы будут загружены через центр Интернета вещей.

person Christian El Salloum    schedule 19.05.2021