首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Azure物联网边缘模块Twin中删除过时的报告属性

从Azure物联网边缘模块Twin中删除过时的报告属性
EN

Stack Overflow用户
提问于 2022-04-22 10:34:20
回答 1查看 172关注 0票数 0

对于Microsoft Azure iotedge (和堆栈溢出--这是我的第一篇文章)和模块双胞胎是如何工作的,我仍然相当缺乏经验,并且对于从报告的模块孪生部分删除过时的属性有问题。

我已经将两个属性从一个设备迁移到模块双胞胎中的另一个设备上,但是无法从报告中删除这些属性,而且我理解将它们设置为null应该可以做到这一点(将它们设置为null,并在所需的删除中更新它们只从所需的孪生体中删除它们)。过时的属性也不存在于设备上的模块孪生体中。

我尝试过更新报告-使用使用C#包的Microsoft.Azure控制台应用程序将过时的属性设置为null -但这似乎也不起作用。

await registryManager.UpdateTwinAsync(deviceId, moduleId, removeProperties, eTag);

由于我的字符串removeProperties类似于以下内容(使用此路由进行所需的更新就像一种魅力一样)

代码语言:javascript
复制
{
  {
  "properties": {
    "reported": {
      "foo": {
        "bar": null
      }
    }
  }
}

有谁能建议删除这些属性的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-22 12:01:28

无法通过注册表管理器更新报告的属性。然而,它可以使用设备的标识来完成。以同样的方式编写控制台程序来用service更新双胞胎,您可以使用device (假设设备离线)进行更新。

例如,如果您有一个名为twin.json的文件

代码语言:javascript
复制
{
  "foo": {
     "bar": null
  }
}

您可以像这样更新报告的属性:

代码语言:javascript
复制
var text = await File.ReadAllTextAsync("./twin.json");
var deviceClient = DeviceClient.CreateFromConnectionString("very-secret-connection-string");
var twinCollection = new TwinCollection(text);
await deviceClient.UpdateReportedPropertiesAsync(twinCollection);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71967347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档