

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Plantillas de sustitución
<a name="iot-substitution-templates"></a>

Puedes usar una plantilla de sustitución para aumentar los datos JSON devueltos cuando se activa una regla y AWS IoT realiza una acción. La sintaxis de una plantilla de sustitución es `${` *expresión*`}`, donde *expresión* puede ser cualquier expresión admitida AWS IoT en las cláusulas SELECT, WHERE y[AWS IoT acciones de reglas](iot-rule-actions.md). 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](iot-sql-functions.md) y los [operadores](iot-sql-operators.md) originales.

Para obtener más información acerca de las expresiones admitidas, consulte [AWS IoT Referencia SQL](iot-sql-reference.md).

Las siguientes acciones de las reglas admiten plantillas de sustitución. Cada acción admite diferentes campos que se pueden sustituir.
+ [Apache Kafka](apache-kafka-rule-action.md)
+ [CloudWatch alarmas](cloudwatch-alarms-rule-action.md)
+ [CloudWatch Registros](cloudwatch-logs-rule-action.md)
+ [CloudWatch métricas](cloudwatch-metrics-rule-action.md)
+ [DynamoDB](dynamodb-rule-action.md)
+ [Dinamo DBv2](dynamodb-v2-rule-action.md)
+ [Elasticsearch](elasticsearch-rule-action.md)
+ [HTTP](https-rule-action.md)
+ [AWS IoT Events](iotevents-rule-action.md)
+ [AWS IoT SiteWise](iotsitewise-rule-action.md)
+ [Kinesis Data Streams](kinesis-rule-action.md)
+ [Firehose](kinesis-firehose-rule-action.md)
+ [Lambda](lambda-rule-action.md)
+ [Ubicación](location-rule-action.md)
+ [OpenSearch](opensearch-rule-action.md)
+ [Volver a publicar](republish-rule-action.md)
+ [S3](s3-rule-action.md)
+ [SNS](sns-rule-action.md)
+ [SQS](sqs-rule-action.md)
+ [Step Functions](stepfunctions-rule-action.md)
+ [Timestream](timestream-rule-action.md)

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
    }
}
```

A continuación, esta regla publica el siguiente JSON en`my/iot/topic/republish`, que AWS IoT sustituye a`${topic()}/republish`:

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