Aws lambda 当设备阴影更新时触发Lambda

Aws lambda 当设备阴影更新时触发Lambda,aws-lambda,aws-iot,Aws Lambda,Aws Iot,我制定了一个规则 SELECT * FROM '$aws/things/+/shadow/update/accepted' 当AWS物联网中任何事物的阴影更新时,此规则触发lambda函数 相反,我希望它只在某些事物的阴影被更新时被触发,而不是所有事物。有什么办法吗?您注册的每个设备都有一个特定的/shadow/update/accepted主题,您可以订阅。用设备名称替换主题中的“+”应该很容易 IoT核心中每个设备的“交互”部分也列出了相同的主题 我最近了解到,您可以使用函数对主题的某些部

我制定了一个规则

SELECT * FROM '$aws/things/+/shadow/update/accepted'
当AWS物联网中任何事物的阴影更新时,此规则触发lambda函数


相反,我希望它只在某些事物的阴影被更新时被触发,而不是所有事物。有什么办法吗?

您注册的每个设备都有一个特定的/shadow/update/accepted主题,您可以订阅。用设备名称替换主题中的“+”应该很容易


IoT核心中每个设备的“交互”部分也列出了相同的主题

我最近了解到,您可以使用函数对主题的某些部分进行过滤,类似的功能可能会对您有用:

SELECT *
FROM '$aws/things/+/shadow/update/accepted'
WHERE startswith(topic(3), 'someprefix-')

这只会在
+
捕获的主题部分以“someprefix-”开头时触发操作。如果前缀不适合您,您可以使用其他函数以其他方式进行筛选。

谢谢您的回复,尽管您可以在上面看到,我的规则在SQL引用中已经有了“+”符号。每当我的AWS物联网上的任何设备更新时,它就会触发我的Lambda。除了AWS IoT中的一些设备,而不是所有设备,我希望发生同样的情况。您需要去掉“+”并用您感兴趣的特定设备名称替换它。