本文介绍了如何借助北向通道将边缘节点采集的设备属性数据上报到第三方 HTTP 服务器。
准备一个边缘节点,并完成模拟数据源。
注意
边缘智能软件版本必须在 v2.7.0 及以上。
准备一个与边缘节点网络连通的 HTTP 服务器。
您可以使用以下 Python 示例脚本在终端中启动一个 HTTP 服务器。该服务器监听本地 8000 端口,并提供简单的 HTTP 服务。
参照创建北向通道,创建一个北向通道。
按以下方式配置数据源(source)和数据目的地(sink):
类型 | 配置项 | 说明 |
---|---|---|
数据源配置 | 节点 | 选择您的边缘节点。 |
设备模板 | 选择 全部。 | |
驱动模板 | 选择 全部。 | |
设备实例 | 选择您在模拟数据源操作中,接入到边缘节点的虚拟设备。 | |
sink 节点配置 | sink 类型 | 选择 rest。 |
参数配置 | 将
|
完成以上配置后,单击 连通性测试。确保连通性测试成功,然后单击 保存。
准备工作完成后,北向通道将被部署到边缘节点。当北向通道正常运行时,虚拟设备的随机属性数据将被上报到 HTTP 服务器。您可以按以下方式进行验证:
server.py
)。终端上会自动打印数据上报请求的日志。默认情况下,数据上报请求使用 GET 方法。
您也可以在边缘智能控制台查看北向通道的 sink 节点详情。sink 节点详情中展示了以下数据:
要修改 HTTP 方法,按以下方式配置:
method
设置为 POST
。北向通道保存后会自动重新部署。当修改后的北向通道正常运行时,您可以到终端验证结果。在最新接收到的数据中,如果请求体(request body)也被打印出来,表示 HTTP 方法已修改成 POST。
要添加自定义 headers,按以下方式配置:
method
:设置为 POST
。headers
:设置为 {"new-header" = "vei","Show-Headers" = "true"}
。说明
在 headers
中,所有的 key 和 value 都必须为 string 类型。
北向通道保存后会自动重新部署。当修改后的北向通道正常运行时,您可以到终端验证结果。在最新接收到的数据中,如果自定义的 headers 被打印出来,表示数据上报请求中包含您自定义的 headers。
默认情况下,边缘节点采集到的设备属性数据会以原始格式转发到目标 HTTP 服务器。如果目标服务器需要特定的数据格式,您可以相应地修改数据转发格式。
要修改数据转发格式,按以下方式配置:
dataTemplate
参数,并定义该参数的值为数据格式转换逻辑。说明
如需编写数据格式转换逻辑,可以参考设备数据采集 - 原始数据格式以及使用 Golang template。您也可以提交工单联系我们,以获取帮助。
修改数据转发格式后,您可前往终端进行验证。在最新接收到的数据中,如果数据格式符合预期,表示数据转发格式已经修改成功。
下表介绍了 rest sink 支持的参数。
参数 | 数据类型 | 是否必选 | 说明 | 示例值 |
---|---|---|---|---|
url | String | 是 | HTTP 服务器的地址。 |
|
method | String | 否 | HTTP 请求方法。该参数有以下取值: |
|
bodyType | String | 否 | 数据体的类型。bodyType 的默认值与 method 有关:
|
|
timeout | Integer | 否 | HTTP 请求超时时间。单位为毫秒。默认值为 5000。 |
|
headers | Object | 否 | 为 HTTP 请求添加自定义标头。 |
|
insecureSkipVerify | Boolean | 否 | 是否跳过证书验证。默认值为 |
|
enableCache | Boolean | 否 | 是否启用本地缓存。默认值为 |
|
cleanCacheAtStop | Boolean | 否 | 北向通道停止处理时是否清除缓存。默认值为 |
|
memoryCacheThreshold | Integer | 否 | 本地内存中允许缓存的最大消息数量。默认值为 |
|
maxDiskCache | Integer | 否 | 本地磁盘中允许缓存的最大消息数量。默认值为 |
|
bufferPageSize | Integer | 否 | 缓冲区每页中包含的消息数量,防止频繁 IO。默认值为 |
|
ResendInterval | Integer | 否 | 重新发送缓存消息的时间间隔(毫秒)。默认值为 |
|