本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Republish
重新發佈 (republish
) 動作將 MQTT 訊息重新發佈至另一個 MQTT 主題。
要求
此規則動作具有下列需求:
-
AWS IoT 可假設執行
iot:Publish
作業的 IAM 角色。如需詳細資訊,請參閱 授與 AWS IoT 規則所需的存取權。在 AWS IoT 主控台中,您可以選擇或建立允許 AWS IoT 執行此規則動作的角色。
參數
使用此動作建立 AWS IoT 規則時,必須指定下列資訊:
headers
-
MQTT 5.0 版標頭資訊。
如需詳細資訊,請參閱 AWS API 參考MqttHeaders中的RepublishAction和。
topic
-
要將訊息重新發佈至該 MQTT 主題。
如要重新發佈至以
$
開頭的預留主題,請改用$$
。例如,如要重新發佈至裝置影子主題$aws/things/MyThing/shadow/update
,請將主題指定為$$aws/things/MyThing/shadow/update
。注意
重新發佈至預留任務主題不受支援。
AWS IoT Device Defender 保留主題不支援 HTTP 發佈。
支援替代範本:是
qos
-
(選用) 重新發佈訊息時要使用的服務品質 (QoS) 層級。有效值:
0
、1
。預設值為0
。如需 MQTT QoS 的詳細資訊,請參閱 MQTT。支援替代範本:否
roleArn
-
允許發佈 AWS IoT 至 MQTT 主題的 IAM 角色。如需詳細資訊,請參閱 要求。
支援替代範本:否
範例
下列 JSON 範例會定義 AWS IoT 規則中的重新發佈動作。
{ "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" } } ] } }
下列 JSON 範例會在 AWS IoT 規則中定義具有替代範本的重新發佈動作。
{ "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" } } ] } }
下面的 JSON 範例定義 AWS IoT
規則中使用 headers
的重新發佈動作。
{ "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" } ] } } } ] } }
注意
原始來源 IP 不會透過重新發布動作傳遞。