文档中的设备孪生属性命名约定与 Python SDK 相矛盾

Device Twin Properties naming convention in documentation contradics with Python SDK

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

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

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

根据 Documentation 这似乎没问题。此外,在 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"}

哪一个是正确的?

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

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