기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다시 게시(republish
) 작업은 MQTT 메시지를 다른 MQTT 주제에 다시 게시합니다.
요구 사항
이 규칙 작업은 다음 요구 사항을 충족해야 합니다.
-
iot:Publish
작업을 수행하기 위해가 맡을 AWS IoT 수 있는 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
-
가 MQTT 주제에 AWS IoT 게시할 수 있도록 허용하는 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는 재게시 작업을 거쳐 전달되지 않습니다.