处理来自 AWS IOT 规则的字符串负载
Handling string payloads from AWS IOT Rule
我的东西会发布类似 "[v1:ThingName]"
的字符串负载到主题 (someTopic/topic1)。我在规则引擎中应用了一个规则来捕获这个主题并发送到 Lambda 函数。
SELECT * FROM 'someTopic/+'
我想发送 topic1 部分,它将与负载一起从规则引擎中捕获。所以它可以从主题(2)中捕获。
如何在 select 语句中将 topic(2) 与 * 连接起来?
经过多次试验和错误后,发现您不能那样做,因为有效载荷是字符串。
但我是如何解决这个问题的是使用编码功能。本质上,我将整个有效负载编码为 base64 作为 json 对象,然后还有 topic(2) 值。
所以我的规则 SQL 查询会像这样。
SELECT encode(*, 'base64') as encode, topic(2) as topic FROM 'someTopic/+'
随后您在 Lambda 函数中解码负载。
我的东西会发布类似 "[v1:ThingName]"
的字符串负载到主题 (someTopic/topic1)。我在规则引擎中应用了一个规则来捕获这个主题并发送到 Lambda 函数。
SELECT * FROM 'someTopic/+'
我想发送 topic1 部分,它将与负载一起从规则引擎中捕获。所以它可以从主题(2)中捕获。 如何在 select 语句中将 topic(2) 与 * 连接起来?
经过多次试验和错误后,发现您不能那样做,因为有效载荷是字符串。
但我是如何解决这个问题的是使用编码功能。本质上,我将整个有效负载编码为 base64 作为 json 对象,然后还有 topic(2) 值。
所以我的规则 SQL 查询会像这样。
SELECT encode(*, 'base64') as encode, topic(2) as topic FROM 'someTopic/+'
随后您在 Lambda 函数中解码负载。