首页 > 解决方案 > 文档中的设备孪生属性命名约定与 Python SDK 相矛盾

问题描述

我想更改 Iot-Hub 中设备孪生的“所需”属性。

我希望属性的元素名称是一个整数值,例如:

"properties": {
  "desired": {
    "24": 21,
    ...
 ...
}

根据文档,这似乎没问题。此外,当在 Webportal 中将具有该密钥的属性添加到设备 Twin 时,这也有效。

但是,使用Python SDK这似乎是非法的:

    patch = [{"op": "add", "path": "/24", "value": 11.3}]
    digital_twin_client.update_digital_twin(device_id, patch)

结果是:

HttpOperationError error {"Message":"ErrorCode:ArgumentInvalid;Digital twin element name 24 is invalid. Name must be 64 characters or less and match ^[a-zA-Z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$ regular expression.","ExceptionMessage":"Tracking ID:d906ded47b084e75afc9992a06df7c77-G:33-TimeStamp:12/11/2020 12:20:07"}

哪一个是正确的?

标签: azure-iot-hubazure-iot-sdk

解决方案


如果要更新设备孪生的所需属性,则需要使用注册表管理器。请参阅此示例。您当前正在尝试使用不影响设备孪生的数字孪生客户端。

设备双胞胎确实支持您的案例(刚刚自己测试过)。因此,您可以毫不费力地将密钥命名为“24”。


推荐阅读