You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dragino NB-IoT(NBSN95)向Azure Cosmos DB传输数据的方案咨询

Dragino NBSN95 NB-IoT节点上传数据至Azure Cosmos DB的方案探讨

设备支持的传输方式及AT配置命令

COAP

AT+SERVADDR=120.24.4.116,5683     // 设置CoAP服务器地址和端口
AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0"  // 设置COAP资源路径

UDP

AT+SERVADDR=120.24.4.116,5601      // 设置UDP服务器地址和端口

MQTT

AT+SERVADDR=120.24.4.116,1883         // 设置MQTT服务器地址和端口
AT+CLIENT=CLIENT                                  // 设置MQTT客户端标识
AT+UNAME=UNAME                               // 设置MQTT用户名
AT+PWD=PWD                                        // 设置MQTT密码
AT+PUBTOPIC=T1_PUB                           // 设置MQTT发布主题
AT+SUBTOPIC=T1_SUB                           // 设置MQTT订阅主题

TCP

AT+SERVADDR=120.24.4.116,5600     // 设置TCP服务器地址和端口

当前遇到的限制

最初计划通过Azure IoT Hub使用MQTT协议,但设备对用户名和密码长度有限制(uint8_t uname[41]; uint8_t pwd[41]),Azure生成的SAS密码长度超出设备限制。虽可通过缩短IoT Hub名称、设备ID并省略API版本来压缩用户名,但SAS密码无法进一步缩短,且设备不支持X.509证书认证。

曾考虑使用HiveMD作为桥接,但该功能暂未上线,且Azure中使用HiveMD需要许可证及额外费用;也了解过Azure上部署Mosquitto的方案,但尚未推进,希望找到更简便的实现路径。目前已有非NB-IoT设备通过Azure Webhook函数接收、处理JSON数据并上传至Cosmos DB,该方案流程简便,可复用相关经验。

可行方案建议

1. 基于Azure Functions + 自定义传输端点

  • 部署Azure Function,搭配轻量的UDP/TCP/CoAP端点(可在Azure VM上搭建开源服务如libcoap、socat,或借助IoT Edge模块),设备通过对应协议直接发送数据到该端点
  • 端点将数据转发至Azure Function,Function解析数据后调用Cosmos DB SDK完成数据写入
  • 适配设备所有支持的传输方式,配置仅需设置AT命令中的服务器IP和端口,无需复杂认证,和现有Webhook方案逻辑一致,可快速复用开发经验

2. 轻量MQTT中间桥接

  • 在Azure上部署Mosquitto等轻量MQTT broker,设置符合设备长度限制的短用户名和密码
  • 配置broker将收到的设备消息转发到Azure Function(通过MQTT触发器或HTTP回调),由Function写入Cosmos DB;也可直接配置broker转发到Azure IoT Hub(需处理认证转换)
  • 沿用设备熟悉的MQTT协议,无需修改设备端逻辑,中间broker仅做认证适配和消息转发,部署成本低

3. 自定义IoT网关适配认证

  • 搭建一个自定义网关服务(可部署在Azure VM或容器中),设备使用短认证信息连接网关
  • 网关完成认证校验后,使用完整的SAS凭证连接Azure IoT Hub,转发设备消息
  • 利用IoT Hub的路由功能将消息转发至Azure Function,最终写入Cosmos DB
  • 保留IoT Hub的设备管理、监控能力,网关仅作为认证适配层,兼顾功能完整性和设备兼容性

内容的提问来源于stack exchange,提问作者plam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 16:47:36