如何在门户中使用Azure功能将消息发送到Azure IOT hub并在客户端应用程序上显示

如何在门户中使用Azure功能将消息发送到Azure IOT hub并在客户端应用程序上显示,azure,azure-functions,azureservicebus,azure-iot-hub,Azure,Azure Functions,Azureservicebus,Azure Iot Hub,我在Azure资源上工作,如Azure服务总线、Azure功能、物联网中心。这里我尝试使用Azure功能将队列消息从Azure服务总线发送到IOT Hub,然后在我的本地设备(云到设备)中显示这些消息。我能够使用服务总线队列触发器在Azure函数中读取我的消息,并尝试将它们作为函数的输出发送到IOT Hub。有一次,当我运行Azure功能“它可以将消息作为输出发送到IOT Hub”,但它无法将它们发送到客户端设备。您能否建议我“如何解决此情况”据我所知,目前无法选择云到设备消息(C2D)作为Az

我在Azure资源上工作,如Azure服务总线、Azure功能、物联网中心。这里我尝试使用Azure功能将队列消息从Azure服务总线发送到IOT Hub,然后在我的本地设备(云到设备)中显示这些消息。我能够使用服务总线队列触发器在Azure函数中读取我的消息,并尝试将它们作为函数的输出发送到IOT Hub。有一次,当我运行Azure功能“它可以将消息作为输出发送到IOT Hub”,但它无法将它们发送到客户端设备。您能否建议我“如何解决此情况”

据我所知,目前无法选择云到设备消息(C2D)作为Azure函数输出。 您也不能使用事件中心输出,因为它不支持如上所述的C2D消息

我可以想出两种方法来实现Azure功能中的C2D消息传递:

  • 使用2017年channel9视频中描述和显示的Azure IoT SDK(可能已过时)
  • 使用Azure IoT Hub REST API。您可以找到常规配置选项,要使用的API端点将是

  • 不幸的是,目前没有来自函数的IoT Hub的输出绑定(不过,您可以编写一个新的自定义绑定;)

    要从功能到设备进行对话,您需要物联网中心的Azure设备服务SDK。然后,您可以使用云到设备消息(异步)或直接方法(同步)。您可以在我的GitHub repo中找到后者的示例:

    重要的是:

    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消息的实现看起来几乎相同