簡體   English   中英

如何使用門戶中的 Azure 功能將消息發送到 Azure IOT 中心並將其顯示在客戶端應用程序上

[英]How to send message to Azure IOT hub and display it on Client application using Azure function in portal

正在研究 Azure 資源,例如 Azure 服務總線、Azure Functions、IOT Hub。 這里我嘗試使用 Azure 函數將隊列消息從 Azure 服務總線發送到 IOT 中心,然后在我的本地設備(雲到設備)中顯示該消息。 能夠使用服務總線隊列觸發器在 Azure 函數中讀取我的消息,並嘗試將它們作為函數輸出發送到 IOT Hub。 有一次,當我運行 Azure 功能“它可以將消息發送到 IOT Hub 作為輸出”時,但它無法將它們發送到客戶端設備。 你能建議我“如何解決這種情況”

據我所知,目前無法選擇雲到設備消息(C2D)作為 Azure 函數輸出。 您也不能使用事件中心輸出,因為它不支持此處所述的 C2D 消息。

我可以想到兩種方法來在 Azure 函數中完成 C2D 消息傳遞:

  1. 在描述使用Azure的物聯網SDK這個答案,並在顯示這個從2017年Channel9的視頻(可能是過時了)。
  2. 使用 Azure IoT 中心 REST API。 您可以在此處找到常規配置選項,要使用的 API 端點是senddevicecommand

不幸的是,Functions 目前沒有針對 IoT 中心的輸出綁定(不過,您可以編寫新的自定義綁定;))

若要從函數與設備通信,需要 IoT 中心的 Azure 設備服務 SDK。 然后您可以使用雲到設備消息(異步)或直接方法(同步)。 您可以在我的 GitHub 存儲庫中找到后者的示例: https : //github.com/sebader/iotedge-end2end/blob/master/CloudFunctions/DirectMethodCaller.cs

重要的部分是:

ServiceClient _iothubServiceClient = ServiceClient.CreateFromConnectionString(config["iothubowner_cs"]);
var methodRequest = new CloudToDeviceMethod("YourDirectMethodName", TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10));
var result = await _iothubServiceClient.InvokeDeviceMethodAsync(device, module, methodRequest).ConfigureAwait(false);

C2D 消息的實現看起來幾乎相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM