节点影子
所有文档

          智能边缘 BIE

          节点影子

          节点影子可以看做边缘设备数据在云端的映射。通过节点影子,可以利用端云同步通道,将云端节点数据或属性同步至边缘设设备。边缘设备上的应用可以通过相关接口获取来自云端的数据,同时也可以利用接口对数据进行更新,而后同步至云端。简而言之,节点影子可以作为一种在端云同步用户自定义数据的方式。

          同步的数据格式为键值对,且数据类型均为字符串。数据内容不限,例如当需要同步配置文件,可以指定属性名称为配置文件名,期望值为文件内容。设备端即可以接收来自云端同步的配置文件,使用配置文件对应用进行热更新。

          具体使用方式如下,在云端节点页面点击节点影子标签,显示该节点现有属性为空,在边缘设备对节点影子对应3种操作。首先是边缘应用订阅系统 MQTT broker 相关主题,接收来自云端的属性更新消息。第二种是通过OpenAPI获取云端该节点的所有属性。第三种是通过OpenAPI更新属性,修改的属性会作为上报值发送至云端展示。

          1.接收节点影子数据增量更新消息

          为模拟应用订阅系统 MQTT broker,先将系统broker配置进行调整。注意,这里仅仅是为了便于操作,实际应用订阅主题推荐使用TLS连接系统 MQTT broker,下文会有介绍。 image.png

          点击编辑,添加属性

          image.png

          确定后,即可在属性列表查看相关属性

          image.png

          而后会通过端云协同将所有属性同步至边缘设备,且以增量更新的方式通知。具体为通过MQTT订阅相关主题,接收事件消息,消息内容即为需要更新的属性键值对。

          通常是边缘运行应用订阅系统MQTT broker,在这里对节点系统broker应用配置进行修改,便于订阅主题。

          点击节点应用部署,并进入系统broker应用(名称中有broker)进行配置修改

          image.png

          点击应用配置

          image.png

          添加端口配置,配置1883->1883端口映射,并点击确定

          image.png

          然后,切换到数据卷标签,并进入conf配置卷(名称中有conf)进行配置修改

          image.png

          点击编辑

          image.png

          添加listeners

          image.png

          内容为

          listeners:
            - address: 'tcp://0.0.0.0:1883'
          session:
            sysTopics:
              - $link
              - $baetyl
          logger:
            level: debug
            encoding: console

          改好后点击保存,并确定

          image.png

          打开MQTT.Box,配置设备host

          image.png

          确认已连接至设备MQTT broker,并订阅 $baetyl/node/props 主题

          image.png

          之后会接收到来自该主题的消息,内容为云端节点属性

          image.png

          实际场景

          边缘应用订阅系统MQTT broker时通常是使用双向TLS方式,确保数据安全传输。通过baetyl官方sdk提供接口可以直接以安全方式连接。另外也可以指定连接地址为ssl://baetyl-broker.baetyl-edge-system:50010,并配置连接证书。通过BIE部署的应用在/var/lib/baetyl/system/certs下有连接所需要的证书。

          2.通过OpenAPI获取节点影子属性

          通过OpenAPI需要通过证书以HTTPS方式连击至server。通过BIE部署的应用在/var/lib/baetyl/system/certs路径下有所需的ca.pem证书,使用HTTPS协议连接地址为https://baetyl-core.baetyl-edge-system。获取节点影子属性的接口为 https://baetyl-core.baetyl-edge-system/node/properties

          这里以模拟方式,跳过对服务端证书校验,且由于baetyl-core应用配置了端口映射30050->80

          image.png

          在desire有云端期望数据。

          3.通过OpenAPI更新节点影子属性

          类似于获取节点影子属性,使用证书以HTTPS协议可以对节点影子数据进行更新,接口同样为 https://baetyl-core.baetyl-edge-system/node/properties

          同样以以模拟方式,跳过对服务端证书校验

          image.png

          指定需要更新的属性,接口会返回当前节点影子所有属性。同时,在云端的节点影子可以看到边缘设备对属性的更新。

          image.png

          注意事项 节点影子功能依赖于系统应用baetyl-broker,如对系统应用baetyl-broker的配置更改影响了baetyl-broker服务的正常运行,将可能导致节点影子功能不可用。

          上一篇
          集群节点管理
          下一篇
          设备管理