【问题标题】:AWS IoT - SQL Question - Create JSON from '*'AWS IoT - SQL 问题 - 从“*”创建 JSON
【发布时间】:2020-05-29 15:50:04
【问题描述】:

我正在尝试找出是否可以基于非 JSON 输入字符串和一些 IoT 函数的组合来创建 JSON(转发到 Kinesis 流)

更具体地说,像

SELECT topic() as topic, clientid() as device, * as msg FROM 'sometopic'

消息可以是任何东西(在我的例子中是 CSV 有效负载/字符串)

虽然这样的规则在输入和更新时不会触发任何错误,但它似乎不会将任何内容转发到 Kinesis 流。我在查看的任何 cloudwatch 日志中也找不到任何踪迹。

稍微调整的规则

SELECT topic() as topic, clientid() as device,* FROM 'sometopic'

当设备发送 JSON 字符串时工作正常(例如 {"msg":"message payload"})

理想情况下,如果客户端可以发布“消息负载”会更理想

(使用基本摄取)

热烈欢迎所有提示!

发送

彼得

【问题讨论】:

    标签: aws-iot


    【解决方案1】:

    某些规则操作不支持非 JSON 负载。要将二进制数据发送到仅支持 JSON 的规则操作,您可以在 base64 中对数据进行编码,然后在接收服务中对其进行解码。

    SELECT topic() as topic, clientid() as device, encode(*, 'base64') as msg FROM 'sometopic'
    

    Working with binary payloads

    【讨论】:

    • 谢谢芬恩!这并不理想,但它可能比试图强制发送 json 更好。
    猜你喜欢
    • 2018-03-27
    • 2019-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多