在 AWS IOT 中发布二进制数据时未调用 AWS Lambda?

AWS Lambda not getting invoked when binary data posted in AWS IOT?

我已经为 IOT 规则配置了一个 lambda。 MQTT 主题将获取二进制数据,并且在数据到达时规则应调用 lambda。

当我 post 正常 JSON 数据时,lambda 被调用,但如果我 post 任何二进制数据,lambda 不会被调用。

但与此同时,我能够通过我的独立消费者使用 posted 到 MQTT 的二进制数据,并能够成功反序列化它。

那么我在这里缺少什么?

当消息负载应作为原始二进制数据(而不是 JSON 对象)处理时,您可以使用 * 运算符在 SELECT 子句中引用它。

按照您的规则执行此操作:

SELECT encode(*, 'base64') AS 数据, timestamp() AS ts FROM 'a/b'

这样它就会被调用。

https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-select.html