AWS SNS 节点
Since TB Version 2.0
节点发布消息到 AWS SNS (Amazon Simple Notification Service).
配置选项:
- Topic ARN pattern - 可以为消息发布直接设置主题名称或可用的模式,将会把消息元数据解析为真正的 ARN 主题名称。
- AWS Access Key ID 和 AWS Secret Access Key 是具有编程访问权限的 AWS IAM 用户的凭据。更多关于 AWS 访问密钥的信息可以在这里找到。
- AWS Region 必须对应于创建 SNS 主题的主题。AWS 区域的当前列表可以在这里找到。
在下面的示例中,主题名称取决于设备类型,并且元数据中包含 deviceType 字段的消息:
{
deviceType: controller
}
为在 controller 的主题中发布消息,我们将在 Topic ARN pattern 中设置此模式:
arn:aws:sns:us-east-1:123456789012:${deviceType}
在运行时,模式将解析为 arn:aws:sns:us-east-1:123456789012:controller
Published payload - 节点将向 SNS 发布完整的消息有效载荷。如果需要,可以将规则链配置成使用转换节点链向 SNS 发送需要的有效载荷。
来自该节点的出站消息将在消息元数据中包含响应 messageId 和 requestId 。原始消息有效负载、类型和发起者不会更改。
AWS SQS 节点
Since TB Version 2.0
节点发布消息到 AWS SQS (Amazon Simple Queue Service).
配置选项:
- Queue Type - SQS 序列类型. 可以是 Standard 或 FIFO.
- Queue URL Pattern - 用于构建队列URL的模式。举个例子
${deviceType}
. 可以直接设置用于消息发布的队列 URL或从消息元数据解析出真正的队列 URL的可用模式。 - Delay - 以秒为单位的延迟,用于挂起特定消息。
- Message attributes - 要发布的消息属性的可选列表。
- AWS Access Key ID 和 AWS Secret Access Key 是具有编程访问权限的 AWS IAM 用户的凭据。更多关于 AWS 访问密钥的信息可以在这里找到。
- AWS Region 必须对应于创建 SQS 队列的区域。AWS 区域的当前列表可以在这里找到。
在下面的示例中,队列 URL 取决于设备类型,并且元数据中包含 deviceType 字段的消息:
{
deviceType: controller
}
对于在 controller 的队列中发布消息,我们将在队列 URL 模式中设置此模式:
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, messageAttributesMd5 和 sequenceNumber。 原始消息中的有效载荷, 类型和发起者都不会改变.
Kafka Node
Since TB Version 2.0
Kafka 节点向 Kafka 代理发送消息。可以是任何消息类型的消息。将通过 Kafka producer 向 Kafka 服务器发送记录。
配置选项:
- 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, partition 和 topic 属性。 原始消息中的有效载荷, 类型和发起者都不会改变.
MQTT 节点
Since TB Version 2.0
将传入消息有效负载发布到配置的 MQTT 代理的主题,该主题具有 QoS AT_LEAST_ONCE。
配置选项:
- 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 |
---|
将传入消息有效负载发布到 RabbitMQ。
配置选项:
- 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
调用 REST API 调用到外部 REST 服务器。
配置选项:
- 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
节点使用配置的邮件服务器发送传入消息。此节点仅适用于使用电子邮件转换节点创建的邮件,请使用 Success 链将此节点连接到电子邮件节点。
配置选项:
- 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。
**
通过 Twilio 服务将传入消息有效负载作为 SMS 消息发送。
配置选项:
- Phone Number From - 可以将直接电话号码设置为 SMS 中的号码,也可以使用模式,这将通过使用消息元数据解析为真实号码。
- Phone Numbers To - 逗号分隔收件人电话号码列表。可以设置直接电话号码,也可以使用模式,这将使用消息元数据解析为真实电话号码。
- Twilio Account SID - 您在 twilio.com/console 的帐户 Sid
- Twilio Account Token - 您在 twilio.com/console 的帐户令牌
短信将发送给所有从电话号码中获取的收件人。
如果 SMS 消息成功发送给所有收件人,原始消息将通过 Success 链传递给下一个节点,否则使用 Failure 链。