[英]Connect Azure Function to Iot Hub cloud to device feedback endpoint
是否可以通過某種方式將Azure功能連接到Iot Hub雲到設備反饋終結點? 看來此終結點與Azure事件中心不兼容。
寫自定義事件觸發器?
我使用C#Azure函數。
是的,您可以為IoT中心創建自定義功能。 每當IoT中心為事件中心兼容的端點傳遞新消息時,便會運行此功能。 您可以按照以下步驟操作:
創建一個名為project.json的json文件,其內容如下:
{ "frameworks": { "net46":{ "dependencies": { "Microsoft.Azure.Devices": "1.4.1" } } } }
上載project.json文件,該文件用於引用Microsoft.Azure.Devices的程序集。您可以查看此文檔以獲取更多信息。
將run.csx修改為以下代碼:
#r "Microsoft.ServiceBus" using System.Configuration; using System.Text; using System.Net; using Microsoft.Azure.Devices; using Microsoft.ServiceBus.Messaging; using Newtonsoft.Json; static Microsoft.Azure.Devices.ServiceClient client = ServiceClient.CreateFromConnectionString(ConfigurationManager.AppSettings["iothubConnectionstring"]); public static async void Run(EventData myIoTHubMessage, TraceWriter log) { log.Info($"{myIoTHubMessage.SystemProperties["iothub-connection-device-id"]}"); var deviceId = myIoTHubMessage.SystemProperties["iothub-connection-device-id"].ToString(); var msg = JsonConvert.SerializeObject(new { temp = 20.5 }); var c2dmsg = new Microsoft.Azure.Devices.Message(Encoding.ASCII.GetBytes(msg)); await client.SendAsync(deviceId, c2dmsg); }
保存並運行該功能之后,如果IoT中心發送新消息,則將觸發該功能,並且在該功能中它將發送雲到設備的消息。
當前,雲到設備反饋終結點不支持直接訂閱Azure功能。
通常的情況是,我們應在立即發送C2D消息后處理反饋。 這是由IoT中心服務SDK通過ServiceClient.GetFeedbackReceiver()實現的。 有關處理C2D消息反饋的更多詳細信息,請參閱接收傳遞反饋 。
並且,如果您還想處理來自Azure函數的這些反饋,則可以使用HTTP請求在其中發送C2D消息的方式從ServiceClient轉發它。 然后,您可以使用Http觸發器創建一個Azure函數來接收它。
如果您對Azure IoT中心有任何想法和反饋,可以從此處提交。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.