当前位置: 首页 > 知识库问答 >
问题:

如何在IOThub消息触发的Azure函数中获取消息的deviceid

井唯
2023-03-14

我有一个由IOThub触发的Azure函数。所以在Azure函数中,我有

public static async Task Run(EventData myIoTHubMessage1, TraceWriter log)

如何从事件数据中获取设备id。

我试过了

log.Info("devid="+myIoTHubMessage1.SystemProperties["ConnectionDeviceId"]);

它给出了一个错误的说法

The given key was not present in the dictionary.

以下文件说:https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-construct

ConnectionDeviceId包含设备ID。是否有人知道如何从EventData检索deviceid,或者我是否应该使用其他类。

共有2个答案

亢胤运
2023-03-14
for (EventData receivedEvent : receivedEvents) {
       String deviceId = (String) receivedEvent.getProperties().get("deviceId");
       log.info("From:" + deviceId);
    }
何飞翰
2023-03-14

您可以从SystemProperties获取设备ID:

public static async Task Run(EventData myIoTHubMessage1, TraceWriter log)
{
    var deviceId = myIoTHubMessage1.SystemProperties["iothub-connection-device-id"];
    // ....
}
 类似资料:
  • 我不知道如何获取消息的消息链接,discordjs文档似乎没有任何关于消息链接的内容。我试过这个: 但其结果是“行会没有定义”。我这样做对吗?

  • 是否可以将Azure服务总线添加到云到设备消息队列中?当我收到消息时,我必须确保所有消息都以相同的顺序到达IoTHub。我找不到IoTHub中的标准队列是否提供它。我想使用ServiceBus的第二个原因是过期时间也更长,IoTHub只提供48小时的消息。我知道通过在IoTHub配置中添加endpoint和路由,我可以很容易地在设备消息中使用ServiceBus,但是C2D消息呢?

  • 我正在使用Azure Logic应用程序按照中所述的说明创建物联网远程监控和通知https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-monitoring-notifications-with-azure-logic-apps. 遥测模拟器(Java使用com.microsoft.azure.sdk.iot- 对于查询字符串-temperat

  • 我对discord.js比较陌生,我已经开始构建一个bot项目,它允许用户通过命令创建一个消息,将该消息存储在我的专用服务器上的一个隐藏通道中,然后可以通过消息ID提取所述消息。 我使用了write,它返回在隐藏通道中发送的消息的消息ID,但我完全被get命令难住了。我试过在网上搜索,但我尝试的每个方法都会返回错误,如“无法读取未定义的属性'fetch'”或“'channel'未定义”。这里是我尝