扩展节点用于和外部系统的联动。

AWS SNS 节点

Since TB Version 2.0

External(扩展节点) - 图1
节点发布消息到 AWS SNS (Amazon Simple Notification Service).
配置选项:
External(扩展节点) - 图2

  • Topic ARN pattern - 可以为消息发布直接设置主题名称或可用的模式,将会把消息元数据解析为真正的 ARN 主题名称。
  • AWS Access Key IDAWS Secret Access Key 是具有编程访问权限的 AWS IAM 用户的凭据。更多关于 AWS 访问密钥的信息可以在这里找到。
  • AWS Region 必须对应于创建 SNS 主题的主题。AWS 区域的当前列表可以在这里找到。

在下面的示例中,主题名称取决于设备类型,并且元数据中包含 deviceType 字段的消息:

  1. {
  2. deviceType: controller
  3. }

为在 controller 的主题中发布消息,我们将在 Topic ARN pattern 中设置此模式:

  1. arn:aws:sns:us-east-1:123456789012:${deviceType}

在运行时,模式将解析为 arn:aws:sns:us-east-1:123456789012:controller
Published payload - 节点将向 SNS 发布完整的消息有效载荷。如果需要,可以将规则链配置成使用转换节点链向 SNS 发送需要的有效载荷。
来自该节点的出站消息将在消息元数据中包含响应 messageIdrequestId 。原始消息有效负载、类型和发起者不会更改。

AWS SQS 节点

Since TB Version 2.0

External(扩展节点) - 图3
节点发布消息到 AWS SQS (Amazon Simple Queue Service).
配置选项:
External(扩展节点) - 图4

  • Queue Type - SQS 序列类型. 可以是 StandardFIFO.
  • Queue URL Pattern - 用于构建队列URL的模式。举个例子 ${deviceType}. 可以直接设置用于消息发布的队列 URL或从消息元数据解析出真正的队列 URL的可用模式。
  • Delay - 以秒为单位的延迟,用于挂起特定消息。
  • Message attributes - 要发布的消息属性的可选列表。
  • AWS Access Key IDAWS Secret Access Key 是具有编程访问权限的 AWS IAM 用户的凭据。更多关于 AWS 访问密钥的信息可以在这里找到。
  • AWS Region 必须对应于创建 SQS 队列的区域。AWS 区域的当前列表可以在这里找到。

在下面的示例中,队列 URL 取决于设备类型,并且元数据中包含 deviceType 字段的消息:

  1. {
  2. deviceType: controller
  3. }

对于在 controller 的队列中发布消息,我们将在队列 URL 模式中设置此模式:

  1. https://sqs.us-east-1.amazonaws.com/123456789012/${deviceType}

在运行时,模式将解析为 [https://sqs.us-east-1.amazonaws.com/123456789012/controller](https://sqs.us-east-1.amazonaws.com/123456789012/controller)
Published body - 节点将向 SQS 发布完整的消息有效载荷。如果需要,可以在规则链中配置使用转换节点用于向 SQS 发送正确的有效载荷。
Published attributes - 可以添加可选的属性列表,以便在 SQS 中发布消息。这是一对的集合。NAME 和 VALUE 都可以是静态值或模式,将使用消息元数据解析。
如果 FIFO 队列被勾选,然后消息 ID 将用作 deduplication ID,消息发起者将用作 group ID
这个节点的出站消息包含消息元数据中的response messageId, requestId, messageBodyMd5, messageAttributesMd5sequenceNumber。 原始消息中的有效载荷, 类型和发起者都不会改变.

Kafka Node

Since TB Version 2.0

External(扩展节点) - 图5
Kafka 节点向 Kafka 代理发送消息。可以是任何消息类型的消息。将通过 Kafka producer 向 Kafka 服务器发送记录。
配置选项:
External(扩展节点) - 图6

  • Topic pattern - 可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如 ${deviceType}
  • bootstrap servers - 用逗号分隔的kafka代理列表。
  • Automatically retry times - 如果连接失败,尝试重新发送消息的次数。
  • Produces batch size - 用于用相同分区分组消息的批处理大小 (以字节为单位)。
  • Time to buffer locally - 最大本地缓冲窗口持续时间 (毫秒)
  • Client buffer max size - 发送消息的最大缓冲区大小 (以字节为单位)。
  • Number of acknowledgments - 在考虑请求完成之前,节点需要接收的确认数量。
  • Key serializer - 默认为 org.apache.kafka.common.serialization.StringSerializer
  • Value serializer - 默认为 org.apache.kafka.common.serialization.StringSerializer
  • Other properties - 可以为 kafka 代理连接提供任何其他附加属性。

Published body - 节点将向 Kafka 主题发送完整的消息有效载荷。如果需要,可以在规则链配置使用转换节点向 Kafka 发送正确的有效载荷。
这个节点的出站消息包含元数据中的 response offset, partitiontopic 属性。 原始消息中的有效载荷, 类型和发起者都不会改变.

MQTT 节点

Since TB Version 2.0

External(扩展节点) - 图7
将传入消息有效负载发布到配置的 MQTT 代理的主题,该主题具有 QoS AT_LEAST_ONCE
配置选项:
External(扩展节点) - 图8

  • Topic pattern - 可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如 ${deviceType}.
  • Host - MQTT 代理主机地址。
  • Port - MQTT 代理主机端口。
  • Connection timeout - 连接到 MQTT 代理的超时时间 (秒).
  • Client ID -用于连接到 MQTT 代理的可选客户端标识符。如果未指定,将使用默认生成的 clientId。
  • SSL Enable/Disable - 启用/禁用安全通信。
  • Credentials - MQTT 连接凭证。可以是匿名的,基本的或者 PEM 的。

外部 MQTT 代理支持不同的身份验证凭据:

  • Anonymous - 没有认证
  • Basic - 用于身份验证的 username\password 对
  • PEM - 用于认证的 PEM 证书

如果选择了 PEM 凭据类型,应提供以下配置:

  • CA 证书文件
  • 证书文件
  • 私钥文件
  • 私钥密码

Published body - Node 将向 MQTT 主题发送完整的消息有效负载。如果需要,可以在规则链配置使用转换节点向 MQTT 代理发送正确的有效载荷。
如果消息发布成功,原始消息将通过 Success 链传递给下一个节点,否则使用 Failure 链。

RabbitMQ 节点

Since TB Version 2.0

External(扩展节点) - 图9
将传入消息有效负载发布到 RabbitMQ。
配置选项:
External(扩展节点) - 图10

  • Exchange name pattern - 要将消息发布到的交换器。可以是使用消息元数据属性解析的静态字符串或模式。例如 ${deviceType} .
  • Routing key pattern - 路由密钥。可以是静态字符串,也可以是使用消息元数据属性解析的模式。例如 ${deviceType} .
  • Message properties - 可选路由报头。支持报头 BASIC, TEXT_PLAIN, MINIMAL_BASIC, MINIMAL_PERSISTENT_BASIC, PERSISTENT_BASIC, PERSISTENT_TEXT_PLAIN
  • Host - 用于连接的默认主机
  • Port - 用于连接的默认端口
  • Virtual host - 连接到代理时要使用的虚拟主机
  • Username - 连接到代理时要使用的 AMQP 用户名
  • Password - 连接到代理时使用的 AMQP 密码
  • Automatic recovery - 启用或禁用自动连接恢复
  • Connection timeout - 连接 TCP 建立超时 (毫秒); 0 为无限
  • Handshake timeout - AMQP0-9-1 协议握手超时,以毫秒为单位
  • Client properties - 连接启动期间发送到服务器的其他属性

Published body - 节点将向 RabbitMQ 发送完整的消息有效负载。如果需要,可以在规则链配置使用转换节点发送正确的有效载荷。
如果消息发布成功,原始消息将通过 Success 链传递给下一个节点,否则使用 Failure 链。

REST API Call 节点

Since TB Version 2.0

External(扩展节点) - 图11
调用 REST API 调用到外部 REST 服务器。
配置选项:
External(扩展节点) - 图12

  • Endpoint URL pattern - 可以是静态字符串,也可以是使用消息元数据属性解析的表达式。例如 ${deviceType}
  • Request method - GET, POST, PUT, DELETE
  • Headers - 请求头、头或值可以是静态字符串,也可以是使用消息元数据属性解析的表达式。

终端 URL
URL 可以是静态字符串或表达式。只有消息元数据用于解析的表达式。因此,模式中使用的属性名称必须在消息元数据中,否则原始的表达式会被添加到 URL 中。
For example, if Message payload contains property deviceType with value container, then this pattern:例如,如果消息有效负载包含带有值为 container 的属性 deviceType ,则此表达式:
http://localhost/api/${deviceType}/update
会被解析为
http://localhost/api/container/update
报头
可以配置报头的 name/value 集合。这些报头将被添加到 Rest 请求中。表达式用在配置报头的 name 和报头的的 value。例如 ${deviceType}。消息元数据用于解析表达式。因此,表达式中使用的属性名称必须存在于消息元数据中,否则原始表达式将被添加到报头中。
Request body - 节点将向配置的 REST 终端发送完整的消息有效负载。如果需要,可以在规则链配置使用转换节点来发送正确的有效载荷。
来自该节点的出站消息将在消息元数据中包含response status, statusCode, statusReason 和 responce headers。出站消息有效负载将与响应主体相同。原始消息类型和发起人不会更改。
如果请求成功,出站消息将通过 Success 链传递给下一个节点.否则使用 Failure 链。

Send Email 节点

Since TB Version 2.0

External(扩展节点) - 图13
节点使用配置的邮件服务器发送传入消息。此节点仅适用于使用电子邮件转换节点创建的邮件,请使用 Success 链将此节点连接到电子邮件节点。
配置选项:
External(扩展节点) - 图14

  • Use system SMTP settings - 如果启用了系统级别配置的默认邮件服务器将被使用
  • Protocol - 邮件服务器传输协议: SMTP 或 SMTPS
  • SMTP host - 邮件服务器主机
  • SMTP port - 邮件服务器端口
  • Timeout ms - 读取超时 (毫秒)
  • Enable TLS - 如果为 true,则启用 STARTTLS 命令的使用 (如果服务器支持)
  • Username - 邮件主机上帐户的用户名 (如果有)
  • Password - 邮件主机上帐户的用户名 (如果有)

此节点可以使用系统级配置的默认邮件服务器。请找到有关如何配置默认系统 SMTP 设置的更多详细信息。
如果这个节点需要特定邮件服务器 - 请勾选 Use system SMTP settings 复选框来禁用系统SMTP设置并手动配置邮件服务器。
此外,如果传入邮件已经准备了引用数据库中存储的文件的附件字段,则该节点可以创建电子邮件附件。
注意: 这是 ThingsBoard 专业版支持的文件存储功能的一部分。

如果邮件发送成功,原始消息将通过 Success 链传递给下一个节点,否则使用 Failure 链。
您可以在下一个教程中看到使用此节点的实际示例:

Twilio SMS 节点

Since TB Version 2.0.2

专业规则节点

只有 ThingsBoard 专业版支持 Twilio SMS 规则节点。 请参见 ThingsBoard PE 安装选项来安装 ThingsBoard PE。

**
External(扩展节点) - 图15
通过 Twilio 服务将传入消息有效负载作为 SMS 消息发送。
配置选项:
External(扩展节点) - 图16

  • Phone Number From - 可以将直接电话号码设置为 SMS 中的号码,也可以使用模式,这将通过使用消息元数据解析为真实号码。
  • Phone Numbers To - 逗号分隔收件人电话号码列表。可以设置直接电话号码,也可以使用模式,这将使用消息元数据解析为真实电话号码。
  • Twilio Account SID - 您在 twilio.com/console 的帐户 Sid
  • Twilio Account Token - 您在 twilio.com/console 的帐户令牌

短信将发送给所有从电话号码中获取的收件人。
如果 SMS 消息成功发送给所有收件人,原始消息将通过 Success 链传递给下一个节点,否则使用 Failure 链。