azure-iot-hub - 文档中的设备孪生属性命名约定与 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"}
哪一个是正确的?
解决方案
如果要更新设备孪生的所需属性,则需要使用注册表管理器。请参阅此示例。您当前正在尝试使用不影响设备孪生的数字孪生客户端。
设备双胞胎确实支持您的案例(刚刚自己测试过)。因此,您可以毫不费力地将密钥命名为“24”。
推荐阅读
- node.js - 从快递发送 SSE 的问题
- python - 给定两个文本的共同基础版本,如何合并两个文本?
- angular - 如何以角度向用户发送电子邮件
- database - 访问,一个表相关的两个字段
- go - go中没有方法的多态性
- java - 使用 Gradle Kotlin DSL 和 Intellij 的自定义测试源集
- scala - sbt 1.2.8 在非 sudo 模式下抛出错误(fedora)
- ruby-on-rails - 用于多个组织的 Rails 单点登录和 SAML
- c++ - 如何使用自己的函数将浮点数舍入到上下值c ++?
- javascript - 如何按按另一个数组的顺序找到的键对对象数组进行排序