

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 再発行
<a name="republish-rule-action"></a>

再発行 (`republish`) アクションは、MQTT メッセージを別の MQTT トピックに再発行します。

## 要件
<a name="republish-rule-action-requirements"></a>

このルールアクションには、以下の要件があります。
+ オペレーションを実行するために が引き受け AWS IoT ることができる IAM ロール`iot:Publish`。詳細については、「[必要なアクセスを AWS IoT ルールに付与する](iot-create-role.md)」を参照してください。

   AWS IoT コンソールで、このルールアクションを実行することを に許可 AWS IoT するロールを選択または作成できます。

## パラメータ
<a name="republish-rule-action-parameters"></a>

このアクションを使用して AWS IoT ルールを作成するときは、次の情報を指定する必要があります。

`headers`  
MQTT バージョン 5.0 のヘッダー情報。  
詳細については、「*AWS API リファレンス*」の「[RepublishAction](https://docs.aws.amazon.com//iot/latest/apireference/API_RepublishAction.html)」と「[MqttHeaders](https://docs.aws.amazon.com//iot/latest/apireference/API_MqttHeaders.html)」を参照してください。

`topic`  
メッセージの再発行先として指定する MQTT トピック。  
`$` で始まる予約済みトピックに再発行するには、代わりに `$$` を使用します。例えば、デバイスシャドウトピック `$aws/things/MyThing/shadow/update` に再発行する場合は、トピックを `$$aws/things/MyThing/shadow/update` として指定します。  
[予約済みのジョブトピック](reserved-topics.md#reserved-topics-job)への再発行はサポートされていません。  
AWS IoT Device Defender 予約トピックは HTTP パブリッシュをサポートしていません。
[置換テンプレート](iot-substitution-templates.md)をサポート: はい

`qos`  
(オプション) メッセージを再発行するときに使用する Quality of Service (QoS) レベル。有効な値: `0`、`1`。デフォルト値は `0` です。MQTT QoS の詳細については、「[MQTT](mqtt.md)」を参照してください。  
[置換テンプレート](iot-substitution-templates.md)をサポート: いいえ

`roleArn`  
が MQTT トピックに発行 AWS IoT できるようにする IAM ロール。詳細については、「[要件](#republish-rule-action-requirements)」を参照してください。  
[置換テンプレート](iot-substitution-templates.md)をサポート: いいえ

## 例
<a name="republish-rule-action-examples"></a>

次の 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 は [Republish アクション](#republish-rule-action)には渡されません。