首页 文章

创建后从设备JSON生成Azure IoT中心的连接字符串

提问于
浏览
0

如何使用IoT Hub服务NodeJS API创建新设备后,从 deviceInfo 生成Azure IoT Hub连接字符串,这是设备信息的JSON对象 .

这是我下面的代码片段 . 在回调中,注释的位置,我正在尝试获取要解析的设备连接字符串,而不是所有设备信息 .

import iothub from 'azure-iothub';
const myIoTHub = iothub.Registry.fromConnectionString(...);

function createDevice(device) {
  return new Promise((resolve, reject) => {
    myIoTHub.create(device, function (err, deviceInfo, res) {
      if (err) reject(err);
      // deviceInfo ---> connectionString
      resolve(connectionString);
    });
  });
}

我查看了Microsoft网站上的文档,但是专门针对连接字符串的唯一文档是this . 这是device information对象定义 . 我知道我自己可以解析它,但我也不能使用主机名,设备ID和对称密钥 - 尽管我希望有一个天蓝色的函数来生成它以隔离自己的连接字符串生成的问题变化 .

azure-iothub from npm

任何援助将不胜感激 .

3 回答

  • 0

    据我所知,包中没有生成设备连接字符串的功能 . 但我可以找到一种方法来格式化 util 中的连接字符串 .

    import * as util from 'util';
       var connectionString = util.format('HostName=xxx-lab.azure-devices.net;DeviceId=%s;SharedAccessKey=%s', deviceId, deviceKey);
    
  • 0

    azure-iot-device npm(IoT Hub Device SDK for Node.js)中有一个函数用于生成设备连接字符串:

    import { ConnectionString as DeviceConnectionString } from "azure-iot-device";
    const deviceConnectionString = DeviceConnectionString.createWithSharedAccessKey(hostName, device.deviceId, device.authentication.SymmetricKey.primaryKey);
    

    您还可以参考完整代码here以查看Azure IoT Toolkit如何生成设备连接字符串 .

  • 1

    这是我提出的功能 . 但是,如果可能的话,我想使用Azure IoT Hub软件包中的一个函数 .

    function generateConnectionString(deviceInfo, hub){
      return `HostName=${hub}.azure-devices.net;DeviceId=${deviceInfo.deviceId};SharedAccessKey=${deviceInfo.authentication.symmetricKey.primaryKey}`;
    }
    

相关问题