处理来自 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 函数中解码负载。