设备接入 IOTDA-设备Topic策略使用前必读:策略变量
策略变量
在策略中定义resource时,如果不知道对设备资源或条件键的精确值,可以使用策略变量作为占位符,进行发布/订阅主题筛选。策略变量在校验MQTT的主题时,会把变量变为接入设备对应的ID值,再进行匹配。
变量使用前缀“$”标记,后面跟一对大括号“{ }”,其中包含请求中值的变量名称。如下表,假设MQTT设备是在客户端ID为test_clientId,产品ID为test_productId,设备ID为test_deviceId。
策略变量 |
描述 |
MQTT中主题示例 |
适用于MQTT主题示例的策略示例 |
---|---|---|---|
${devices.deviceId} |
设备ID |
test/test_deviceId/topic |
test/${devices.deviceId}/topic |
${devices.clientId} |
客户端ID |
test/test_clientId/topic |
test/${devices.clientId}/topic |
${devices.productId} |
产品ID |
test/test_productId/topic |
test/${devices.productId}/topic |
场景 |
策略Topic定义示例 |
描述 |
---|---|---|
想通过topic区分不同设备的自定义上报时。 |
“test/${devices.deviceId}/topic” |
允许Topic为“test/${本设备ID}/topic”的主题订阅或发布。有利于设备间数据隔离。 |
想通过topic区分不同设备的自定义上报、区分同一设备不同时间段上报的数据时。 |
“test/${devices.clientId}/topic” |
允许Topic为“test/${本设备的clientId}/topic”的主题订阅或发布。与deviceId不同的是,clientId携带时间戳。可用主题来区分时间段。 |