Republish - Amazon IoT Core
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

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 Amazon IoT can assume to perform the iot:Publish operation. For more information, see Granting an Amazon IoT rule the access it requires.

    In the Amazon IoT console, you can choose or create a role to allow Amazon IoT to perform this rule action.

Parameters

When you create an Amazon 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 Amazon 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.

Amazon 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 is 0. For more information about MQTT QoS, see MQTT.

Supports substitution templates: No

roleArn

The IAM role that allows Amazon 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 Amazon 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 Amazon 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 Amazon 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.