Plantillas de sustitución
Puede utilizar una plantilla de sustitución para aumentar los datos JSON que se devuelven cuando se activa una regla y AWS IoT realiza una acción. La sintaxis de una plantilla de sustitución es ${
expression}
, donde expression puede ser cualquier expresión compatible con AWS IoT en las cláusulas SELECT o WHERE y en Acciones de reglas de AWS IoT. Esta expresión se puede conectar a un campo de acción de una regla, lo que le permite configurar dinámicamente una acción. En efecto, esta función sustituye a una parte de información de una acción. Esto incluye funciones, operadores e información presente en la carga del mensaje original.
importante
Dado que las expresiones en plantillas de sustitución se evalúan por separado de la declaración “SELECT...”, no se puede hacer referencia a un alias creado con la cláusula AS. Solo puede hacer referencia a la información presente en la carga, las funciones y los operadores originales.
Para obtener más información acerca de las expresiones admitidas, consulte Referencia de la SQL de AWS IoT.
Las siguientes acciones de las reglas admiten plantillas de sustitución. Cada acción admite diferentes campos que se pueden sustituir.
Las plantillas de sustitución aparecen en los parámetros de acción dentro de una regla:
{ "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" } }] }
Si esta regla se activa mediante el siguiente JSON publicado en my/iot/topic
:
{ "deviceid": "iot123", "temp": 54.98, "humidity": 32.43, "coords": { "latitude": 47.615694, "longitude": -122.3359976 } }
Esta regla publica el siguiente JSON en my/iot/topic/republish
, que AWS IoT utiliza para sustituir ${topic()}/republish
:
{ "deviceid": "iot123", "temp": 54.98, "humidity": 32.43, "coords": { "latitude": 47.615694, "longitude": -122.3359976 }, "timestamp": 1579637878451 }