基于deviceTwinTrigger的Azure Java函数:检索DeviceId

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于deviceTwinTrigger的Azure Java函数:检索DeviceId相关的知识,希望对你有一定的参考价值。

遵循本指南:https://docs.microsoft.com/nl-nl/azure/azure-functions/functions-bindings-event-hubs#trigger---java-example

我正在开发一个必须在Azure中运行的Java Function。在我的IoT-hub中,我定义了一个路由,它会触发所有设备对事件中心的变化。从那里,我的函数被触发了很好,很简单,我可以记录确实已更改的内容。到目前为止这么好,但..

如何提取设备ID?现在,我只检索消息(设备中已更改内容的内容),但我不知道此内容更改属于哪个设备。

有人有什么想法?

答案

您遇到了known issue,当前Event Hub绑定数据的实现错过了一些属性,例如您寻求的设备ID。

在我们的绑定中,我们通过仅输出该类型的4个顶级属性来吸收此更改,而不是意识到它派生自Dictionary。所以我们填充绑定数据here的代码是一个错误。而不是我们自己的ToDictionary实现here这4个属性(过滤掉其他系统属性),我们应该只添加整个集合,这已经是一个字典。

这是thread跟踪解决问题的方法。

以上是关于基于deviceTwinTrigger的Azure Java函数:检索DeviceId的主要内容,如果未能解决你的问题,请参考以下文章

Azure 队列中基于租约和基于锁的独占访问之间的区别

基于身份的身份验证不适用于 Azure 存储文件共享

基于 Azure 的认知服务将文本合成语音

Azure基于ARM的RBAC

基于 Azure DW 或 Azure SQL 的仪表板报告的最佳实践?

基于队列长度的 Azure 自动缩放