我使用Azure Service Bus通过Node.js函数与IoT Hub进行通信。在功能方面,我需要访问邮件正文以及自定义属性。
通过在其他地方检索消息,我注意到我在Service Bus中的消息包含:
我在网上发现,在C#中可以使用BrokeredMessage对象访问这些自定义属性。但是,没有提到如何在Node.js中实现这一点。为了给出一些细节,我将在消息到达Function后立即打印,使用以下代码:
module.exports = function(context, message) {
context.log('Message', message, 'of type', (typeof message));
...
}
我在日志控制台中获得的是:
类型为对象的消息{test:true}
在哪里" {test:true}"是IoT Device设置的消息的内容。虽然没有任何属性......
是否有一些正式的方法或至少有一个技巧来接收和提取这些属性?
谢谢!
答案 0 :(得分:3)
浏览Ling Toh在评论中发布的链接中提到的资源我受到启发,可以查看上下文对象。
显然,context.bindingData.properties
对象中提供了所有Service Bus自定义属性。
就我而言:
properties:
{
type: 'sometype', // <- this is the property I have set manually in IoT Hub message
'iothub-connection-device-id': 'mydeviceid',
'iothub-connection-auth-method': '{"scope":"somescope","type":"sometype","issuer":"external","acceptingIpFilterRule":null}',
'iothub-connection-auth-generation-id': 'someid' // <- These are added by IoT Hub
}