You need to enable JavaScript to run this app.
导航
rest sink 配置实践
最近更新时间:2024.11.08 14:46:58首次发布时间:2024.11.08 14:46:58

本文介绍了如何借助北向通道将边缘节点采集的设备属性数据上报到第三方 HTTP 服务器。

准备工作

  1. 准备一个边缘节点,并完成模拟数据源

    注意

    边缘智能软件版本必须在 v2.7.0 及以上。

  2. 准备一个与边缘节点网络连通的 HTTP 服务器。
    您可以使用以下 Python 示例脚本在终端中启动一个 HTTP 服务器。该服务器监听本地 8000 端口,并提供简单的 HTTP 服务。

    server.py
    未知大小

  3. 参照创建北向通道,创建一个北向通道。
    按以下方式配置数据源(source)和数据目的地(sink):

    类型

    配置项

    说明

    数据源配置

    节点

    选择您的边缘节点。

    设备模板

    选择 全部

    驱动模板

    选择 全部

    设备实例

    选择您在模拟数据源操作中,接入到边缘节点的虚拟设备。

    sink 节点配置

    sink 类型

    选择 rest

    参数配置

    url 设置为 http://<server_ip>:8000

    • <server_ip> 表示 HTTP 服务所在宿主机的 IP 地址。

    Image

完成以上配置后,单击 连通性测试。确保连通性测试成功,然后单击 保存

验证数据上报结果

准备工作完成后,北向通道将被部署到边缘节点。当北向通道正常运行时,虚拟设备的随机属性数据将被上报到 HTTP 服务器。您可以按以下方式进行验证:

  1. 打开服务器所在宿主机上的终端工具。
  2. 启动示例脚本(server.py)。

终端上会自动打印数据上报请求的日志。默认情况下,数据上报请求使用 GET 方法。
Image
您也可以在边缘智能控制台查看北向通道的 sink 节点详情。sink 节点详情中展示了以下数据:

  • 数据流入:采集的设备属性数据总量。
  • 数据流出:转发到 HTTP 服务器的数据量。
  • 处理延迟(微秒):数据转发的平均耗时。
  • 异常数量:未成功转发的数据量。

Image

配置示例

示例1:修改 HTTP Method

要修改 HTTP 方法,按以下方式配置:

  1. 编辑北向通道。
  2. 参数配置 中,将 method 设置为 POST
    Image
  3. 完成 连通性测试,然后单击 保存

北向通道保存后会自动重新部署。当修改后的北向通道正常运行时,您可以到终端验证结果。在最新接收到的数据中,如果请求体(request body)也被打印出来,表示 HTTP 方法已修改成 POST。
Image

示例2:添加自定义 headers

要添加自定义 headers,按以下方式配置:

  1. 编辑北向通道。
  2. 参数配置 中,做以下修改:
    • method:设置为 POST
    • headers:设置为 {"new-header" = "vei","Show-Headers" = "true"}

      说明

      headers 中,所有的 key 和 value 都必须为 string 类型。

    Image
  3. 完成 连通性测试,然后单击 保存

北向通道保存后会自动重新部署。当修改后的北向通道正常运行时,您可以到终端验证结果。在最新接收到的数据中,如果自定义的 headers 被打印出来,表示数据上报请求中包含您自定义的 headers。
Image

示例3:修改数据转发格式

默认情况下,边缘节点采集到的设备属性数据会以原始格式转发到目标 HTTP 服务器。如果目标服务器需要特定的数据格式,您可以相应地修改数据转发格式。

  • 边缘智能提供了 4 种预置的数据格式模板,包括 json-simplest、json-influx、csv、yaml。通过为 rest sink 配置相应的数据格式模板,采集到的原始数据会被转换成指定格式,然后转发至 HTTP 服务器。
  • 如果预置的数据格式模板无法满足需求,您还可以自定义数据格式模板。

要修改数据转发格式,按以下方式配置:

  • 方式1:使用预置数据格式模板
    1. 编辑北向通道。
    2. 设置 数据格式:选择一种预置的数据格式模板。
      要查看数据预览效果,您可以选择一个设备模板。对应数据格式在所选设备模板上的预览将被展示。
    3. 完成 连通性测试,然后单击 保存
  • 方式2:自定义数据格式模板
    1. 编辑北向通道。
    2. 参数配置 中增加 dataTemplate 参数,并定义该参数的值为数据格式转换逻辑。

      说明

      如需编写数据格式转换逻辑,可以参考设备数据采集 - 原始数据格式以及使用 Golang template。您也可以提交工单联系我们,以获取帮助。

      Image
    3. 完成 连通性测试,然后单击 保存

修改数据转发格式后,您可前往终端进行验证。在最新接收到的数据中,如果数据格式符合预期,表示数据转发格式已经修改成功。

rest sink 参数说明

下表介绍了 rest sink 支持的参数。

参数

数据类型

是否必选

说明

示例值

url

String

HTTP 服务器的地址。

https://www.example.com/api/dummy

method

String

HTTP 请求方法。该参数有以下取值:
GET(默认)、POSTPUTDELETEHEAD

GET

bodyType

String

数据体的类型。bodyType 的默认值与 method 有关:

  • 如果 methodGETHEADbodyType 默认值为 none
  • 如果 method 为其他值,bodyType 默认值为 json

none

timeout

Integer

HTTP 请求超时时间。单位为毫秒。默认值为 5000。

5000

headers

Object

为 HTTP 请求添加自定义标头。

{"new-header" = "vei","Show-Headers" = "true"}

insecureSkipVerify

Boolean

是否跳过证书验证。默认值为 false

false

enableCache

Boolean

是否启用本地缓存。默认值为 fasle
启用本地缓存后,不能及时发送的数据将缓存到本地,稍后继续发送;关闭本地缓存后,不能及时发送的数据将被丢弃。

false

cleanCacheAtStop

Boolean

北向通道停止处理时是否清除缓存。默认值为 true

true

memoryCacheThreshold

Integer

本地内存中允许缓存的最大消息数量。默认值为 1024

1024

maxDiskCache

Integer

本地磁盘中允许缓存的最大消息数量。默认值为 1024000

1024000

bufferPageSize

Integer

缓冲区每页中包含的消息数量,防止频繁 IO。默认值为 256

256

ResendInterval

Integer

重新发送缓存消息的时间间隔(毫秒)。默认值为 1000

1000