有没有办法从azure功能应用程序更新设备初始双胞胎?

问题描述

我正在使用自定义分配策略通过DPS注册设备。可以在here中找到C#的参考代码。

我已将Azure函数的大部分代码从C#移植到NodeJS,如下所示:-

module.exports = async function (context,req) {
    const regId = req.body.deviceRuntimeContext.registrationId;
    const response = {
        status: 200,message: 'Device registered successfully'
    };
    if (!regId)
    {
        response.status = 500
    }
    const requestCustomPayload = req.body.deviceRuntimeContext.payload;
    context.res = {
        iotHubHostName: req.body.deviceRuntimeContext.payload.hubName
    };
}

现在,我面临的问题是更新上述代码中设备的初始孪生兄弟。如果您在上面的链接中查找c#代码,则它具有一个名为TwinState和TwinCollection的类,它们用于更新设备的初始孪生子,但是在NodeJS中找不到相同的类或类似的api。

nodejs Azure IoT SDK是否提供更新初始孪生兄弟的方法?

解决方法

我能够在node.js Azure函数中实现自定义分配。下面是代码:-

module.exports = async function (context,req) {
    const regId = req.body.deviceRuntimeContext.registrationId;
    if(req && req.body && req.body.deviceRuntimeContext && req.body.deviceRuntimeContext.payload && req.body.deviceRuntimeContext.registrationId) {
        const requestCustomPayload = req.body.deviceRuntimeContext.payload;
        context.res = {
            body: {
                iotHubHostName: req.body.deviceRuntimeContext.payload.hubName,initialTwin: {
                    tags: {
                            deviceName: "test"
                          }
                    },properties: {
                        Desired: {}
                    }
                }
            }
        };
    } else {
        context.res = {
            status: 500,message: `Somethig went wrong. Req object is ${JSON.stringify(req)}`
        }
    }
}

以上代码中的一些观察结果

  1. 该函数返回的对象有一个body字段,在其中设置了hubName和Initial twin属性。
  2. D是初始双胞胎属性字段下Desired字段中的大写字母
  3. 从函数返回的对象已分配给context.res

Here是Azure人员提供的官方视频。

,

在 DPS 首次预配设备时初始化 IoT 中心设备孪生的一种非常简单的方法是使用 DPS 注册组的“初始设备孪生”状态功能。

您定义初始孪生状态,当注册组配置设备时,设备孪生将自动为新设备填充。

{
  "tags": {
    "AnyKey": "AnyValue"
  },"properties": {
    "desired": {
        "newKey": 200,"newKey2": "this is a test",}
  }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...