通配符主题名称和捕获所有主题的消息

时间:2019-11-08 15:07:18

标签: aws-lambda amazon-dynamodb aws-iot aws-iot-analytics

我们正在使用AWS IoT。

我们有预定义的主题(+ / device /),设备在其中发布消息。

但是设备有可能将消息发布到其他任何主题。

我想计算通过这些单独的设备发布到所有主题的消息的数量,并实现限制。

我尝试使用(+ / *或 / )之类的通配符主题名称创建IoT规则,但这些通配符主题似乎都不起作用。

是否有通配符主题名称,可用来捕获所有主题中的消息?

或者是否有任何方法可以将有关DynamoDB或S3中所有主题的所有消息转储,并计算特定时间段内来自各个设备的消息数?

1 个答案:

答案 0 :(得分:1)

  

我试图使用通配符主题名称(如+ / *或/)创建IoT规则,但这些通配符主题似乎都不起作用。

     

是否有通配符主题名称,可用来捕获所有主题中的消息?

+#是AWS IoT规则的相关通配符。参见https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-from.html

您可以使用以下语句配置规则,以捕获来自所有主题的消息。

SELECT * FROM '#'
  

或者是否有任何方法可以将有关DynamoDB或S3中所有主题的所有消息转储,并计算特定时间段内来自各个设备的消息数?

一种方法是根据上述规则创建一条规则,并在每条消息上传递客户端ID(使用clientid()函数)。该规则的操作可以将客户端ID写入DynamoDB或S3。然后可以使用这些信息进行计算。

另一种方法可能是将消息和clientid写入Kinesis Data Stream,然后使用Kinesis Data Analytics检测错误的设备。

相关问题