创建后从设备 JSON 为 Azure IoT 中心生成连接字符串
Generate Connection String For Azure IoT Hub From Device JSON After Creation
如何从 deviceInfo
生成 Azure IoT 中心连接字符串,这是一个 JSON 使用 IoT 中心服务 NodeJS API 创建新设备后的设备信息对象].
下面是我的代码片段。在回调中,评论所在的位置,我正在尝试获取要解析的设备连接字符串,而不是所有设备信息。
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. Here is the device information 对象定义。我知道我可以自己解析它,但我也无法在文档中找到关于连接字符串由什么组成的具体定义。根据我的经验,我知道它是一个主机名、一个设备 ID 和一个对称密钥 - 尽管我希望有一个 azure 函数来生成它,以便在连接字符串生成发生变化时将自己与问题隔离开来。
如有任何帮助,我们将不胜感激。
这是我想出的功能。但是,如果可能的话,我想使用 Azure IoT Hub 包中的功能。
function generateConnectionString(deviceInfo, hub){
return `HostName=${hub}.azure-devices.net;DeviceId=${deviceInfo.deviceId};SharedAccessKey=${deviceInfo.authentication.symmetricKey.primaryKey}`;
}
据我所知,包中没有为设备生成连接字符串的函数。但是我可以在 util.
中找到一种格式化连接字符串的方法
import * as util from 'util';
var connectionString = util.format('HostName=xxx-lab.azure-devices.net;DeviceId=%s;SharedAccessKey=%s', deviceId, deviceKey);
azure-iot-device
npm(Node.js 的 IoT 集线器设备 SDK)中有一个函数可以生成设备连接字符串:
import { ConnectionString as DeviceConnectionString } from "azure-iot-device";
const deviceConnectionString = DeviceConnectionString.createWithSharedAccessKey(hostName, device.deviceId, device.authentication.SymmetricKey.primaryKey);
您也可以参考完整代码 here to see how Azure IoT Toolkit 生成设备连接字符串。
如何从 deviceInfo
生成 Azure IoT 中心连接字符串,这是一个 JSON 使用 IoT 中心服务 NodeJS API 创建新设备后的设备信息对象].
下面是我的代码片段。在回调中,评论所在的位置,我正在尝试获取要解析的设备连接字符串,而不是所有设备信息。
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. Here is the device information 对象定义。我知道我可以自己解析它,但我也无法在文档中找到关于连接字符串由什么组成的具体定义。根据我的经验,我知道它是一个主机名、一个设备 ID 和一个对称密钥 - 尽管我希望有一个 azure 函数来生成它,以便在连接字符串生成发生变化时将自己与问题隔离开来。
如有任何帮助,我们将不胜感激。
这是我想出的功能。但是,如果可能的话,我想使用 Azure IoT Hub 包中的功能。
function generateConnectionString(deviceInfo, hub){
return `HostName=${hub}.azure-devices.net;DeviceId=${deviceInfo.deviceId};SharedAccessKey=${deviceInfo.authentication.symmetricKey.primaryKey}`;
}
据我所知,包中没有为设备生成连接字符串的函数。但是我可以在 util.
中找到一种格式化连接字符串的方法 import * as util from 'util';
var connectionString = util.format('HostName=xxx-lab.azure-devices.net;DeviceId=%s;SharedAccessKey=%s', deviceId, deviceKey);
azure-iot-device
npm(Node.js 的 IoT 集线器设备 SDK)中有一个函数可以生成设备连接字符串:
import { ConnectionString as DeviceConnectionString } from "azure-iot-device";
const deviceConnectionString = DeviceConnectionString.createWithSharedAccessKey(hostName, device.deviceId, device.authentication.SymmetricKey.primaryKey);
您也可以参考完整代码 here to see how Azure IoT Toolkit 生成设备连接字符串。