如何获取触发我的 lambda 函数的 IOT 规则的名称。我有多个 AWS IOT 规则不断触发我的 lambda 函数。
执行此操作的唯一方法是将规则名称包含在规则的 SQL 语句的 SELECT 部分中。
您必须为每个规则手动添加此值,也就是说,没有变量函数可以为您动态返回此值。
类似的东西
SELECT * as data, "my_rule_name" as ruleName, topic() as topic FROM 'myTopic'
当我尝试使用之前提供的解决方案时,它可以工作,但前提是有一些数据随消息一起发布。例如,假设我向触发 lambda 函数的主题发布一条空消息 (""),那么它根本不会触发,但是当我发布任何类型的数据(如 "{}" 或 {"abc " : "def"} )它按预期工作(主题作为事件中的键值对添加)。
知道如何让它适用于空消息吗?