如何在Azure功能中处理IoTHub文件上载通知

时间:2017-04-13 14:22:50

标签: azure azure-functions azure-iot-hub

我们目前有使用文件上传功能通过Azure IoTHub向Azure发送文件的设备。

理想情况下,我们会在上传新文件时触发Azure功能。我们知道fileuploadnotifications rest API但是我们需要使用timertriggered Azure Function并且需要轮询这个API。

当有新的文件上传时,有没有办法让IoTHub触发azure功能?

编辑1

我只是尝试将该功能连接到事件中心,但是根据Matt Mason - MSFT的建议,我使用了消息/ servicebound / fileuploadnotifications而不是事件中心名称消息/事件。在这个绑定到fileNotifications路径的函数中,我只收到了发送给IoTHub的消息,并且没有收到文件上传通知。请参见下面的屏幕截图。

enter image description here

2 个答案:

答案 0 :(得分:0)

编辑 - 遗憾的是,事件中心不支持FileUploadNotification api。但是,您可以通过将文件上载时的设备消息发送到与事件集线器兼容的端点来解决此问题,请参阅此处:

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

查看FileUploadNotifications api,看来它是一个面向服务的端点:

  

如端点中所述,IoT Hub提供文件上传通知   通过面向服务的端点   (/ messages / servicebound / fileuploadnotifications)作为消息。

我相信您可以关注these instructions将功能连接到事件中心,但不使用事件中心名称messages/events,而是使用messages/servicebound/fileuploadnotifications

答案 1 :(得分:0)

一种直接的方法是为 Azure 函数创建 EventGrid 订阅到容器上的“Blob Created”事件,文件将通过 IoT 中心上传。