Republish
The republish (republish
) action republishes an MQTT message to another MQTT topic.
Requirements
This rule action has the following requirements:
An IAM role that AWS IoT can assume to perform the
iot:Publish
operation. For more information, see Granting an AWS IoT rule the access it requires.In the AWS IoT console, you can choose or create a role to allow AWS IoT to perform this rule action.
Parameters
When you create an AWS IoT rule with this action, you must specify the following information:
headers
MQTT Version 5.0 headers information.
For more information, see RepublishAction and MqttHeaders in the AWS API Reference.
topic
The MQTT topic to which to republish the message.
To republish to a reserved topic, which begins with
$
, use$$
instead. For example, to republish to the device shadow topic$aws/things/MyThing/shadow/update
, specify the topic as$$aws/things/MyThing/shadow/update
.Note
Republishing to reserved job topics is not supported.
AWS IoT Device Defender reserve topics don't support HTTP publish.
Supports substitution templates: Yes
qos
(Optional) The Quality of Service (QoS) level to use when republishing messages. Valid values:
0
,1
. The default value is0
. For more information about MQTT QoS, see MQTT.Supports substitution templates: No
roleArn
The IAM role that allows AWS IoT to publish to the MQTT topic. For more information, see Requirements.
Supports substitution templates: No
Examples
The following JSON example defines a republish action in an AWS IoT rule.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "another/topic", "qos": 1, "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish" } } ] } }
The following JSON example defines a republish action with substitution templates in an AWS IoT rule.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish" } } ] } }
The following JSON example defines a republish action with headers
in an AWS IoT rule.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "${topic()}/republish", "roleArn": "arn:aws:iam::123456789012:role/aws_iot_republish", "headers": { "payloadFormatIndicator": "UTF8_DATA", "contentType": "rule/contentType", "correlationData": "cnVsZSBjb3JyZWxhdGlvbiBkYXRh", "userProperties": [ { "key": "ruleKey1", "value": "ruleValue1" }, { "key": "ruleKey2", "value": "ruleValue2" } ] } } } ] } }
Note
The original source IP won't be passed though Republish action.