AWS IoT
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

FROM 子句

FROM 子句在主题或主题筛选条件中订阅您的规则。主题筛选条件可用于订阅一组类似的主题。

例如:

传入负载已发布至主题 'a/b'{temperature: 50}

传入负载已发布至主题 'a/c'{temperature: 50}

SQL: "SELECT temperature AS t FROM 'a/b'".

规则已订阅 'a/b',因此,传入负载已传递至规则,并且传出负载 (已传递给规则操作) 为:{t: 50}。规则未订阅 'a/c',因此在 'a/c' 上发布的消息不会触发规则。

您可以使用 # 通配符来匹配主题筛选条件中的任何子路径:

例如:

传入负载已发布至主题 'a/b'{temperature: 50}

传入负载已发布至主题 'a/c'{temperature: 60}

传入负载已发布至主题 'a/e/f'{temperature: 70}

传入负载已发布至主题 'b/x'{temperature: 80}

SQL: "SELECT temperature AS t FROM 'a/#'".

规则已订阅以 'a' 开头的所有主题,因此它将执行三次,将 {t: 50} (for a/b), {t: 60} (适用于 a/c) 和 {t: 70} (适用于 a/e/f) 的传出负载发送至其操作。它未订阅 'b/x',因此,{temperature: 80} 消息不会触发规则。

您可以使用“+”字符匹配任何一个特定的路径元素:

例如:

传入负载已发布至主题 'a/b'{temperature: 50}

传入负载已发布至主题 'a/c'{temperature: 60}

传入负载已发布至主题 'a/e/f'{temperature: 70}

传入负载已发布至主题 'b/x'{temperature: 80}

SQL: "SELECT temperature AS t FROM 'a/+'".

规则已订阅包含两个路径元素的所有主题,其中第一个元素为 'a'。规则将对发送至 'a/b''a/c' 的消息执行,但不会对发送至 'a/e/f''b/x' 的消息执行。

您可以在 WHERE 子句中使用函数和运算符。在 WHERE 子句中,您无法引用在 SELECT 子句中通过 AS 关键字创建的任何别名。(首先评估 WHERE 语句,再确定是否评估 SELECT 子句。)