替换模板 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

替换模板

您可以使用替换模板来补充规则被触发并且 Amazon IoT 执行操作后返回的 JSON 数据。替换模板的语法是 ${expression},其中 expression 可以是 SELECT 子句、WHERE 子句中的 Amazon IoT 以及 Amazon IoT 规则操作 支持的任意表达式。此表达式可插入到规则的操作字段中,使您可以动态配置操作。在生效时,此功能替换操作中的一段信息。这包括函数、运算符和原始消息负载中存在的信息。

重要

因为替换模板中的表达式与“SELECT ...”语句分开评估,所以,您无法引用使用 AS 子句创建的别名。您只能引用原始负载中存在的信息和函数以及操作员

有关支持的表达式的更多信息,请参阅Amazon IoT SQL 参考

以下规则操作支持替换模板。每个操作都支持不同的可替换字段。

替换模板显示在规则内的操作参数中:

{ "sql": "SELECT *, timestamp() AS timestamp FROM 'my/iot/topic'", "ruleDisabled": false, "actions": [{ "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } }] }

如果该规则由发布到 my/iot/topic 的以下 JSON 触发:

{ "deviceid": "iot123", "temp": 54.98, "humidity": 32.43, "coords": { "latitude": 47.615694, "longitude": -122.3359976 } }

然后,此规则将以下 JSON 发布到 my/iot/topic/republish,Amazon IoT 使用它来替代 ${topic()}/republish

{ "deviceid": "iot123", "temp": 54.98, "humidity": 32.43, "coords": { "latitude": 47.615694, "longitude": -122.3359976 }, "timestamp": 1579637878451 }