

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

# クライアントデバイスと の間で MQTT メッセージを中継する AWS IoT Core
<a name="relay-client-device-messages"></a>

クライアントデバイスと AWS IoT Coreの間で MQTT メッセージや他のデータをリレーできます。クライアントデバイスは、コアデバイスに実行する MQTT ブローカーコンポーネントに接続します。デフォルトでは、コアデバイスはクライアントデバイスと の間で MQTT メッセージやデータを中継しません AWS IoT Core。クライアントデバイスは、デフォルトで MQTT を介して相互にのみ通信できます。

クライアントデバイスと の間で MQTT メッセージを中継するには AWS IoT Core、以下を実行するように [MQTT ブリッジコンポーネント](mqtt-bridge-component.md)を設定します。
+ クライアントデバイスから にメッセージを中継します AWS IoT Core。
+ からクライアントデバイスにメッセージを中継 AWS IoT Core します。

**注記**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用してパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカーのクライアントデバイスから に MQTT メッセージを中継するときに、追加のレイテンシーが発生することがあります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「[MQTT タイムアウトとキャッシュ設定を設定する](configure-greengrass-core-v2.md#configure-mqtt)」を参照してください。

**Topics**
+ [MQTT ブリッジコンポーネントの設定とデプロイ](#deploy-mqtt-bridge-iot-core)
+ [MQTT メッセージのリレー](#relay-mqtt-messages)

## MQTT ブリッジコンポーネントの設定とデプロイ
<a name="deploy-mqtt-bridge-iot-core"></a>

MQTT ブリッジコンポーネントは、それぞれメッセージソースとメッセージの送信先を指定するトピックマッピングのリストを使用します。クライアントデバイスと の間でメッセージを中継するには AWS IoT Core、MQTT ブリッジコンポーネントをデプロイし、コンポーネント設定で各ソーストピックと宛先トピックを指定します。

<a name="create-mqtt-bridge-deployment-info"></a>MQTT ブリッジコンポーネントをコアデバイスまたはコアデバイスのグループにデプロイするには、`aws.greengrass.clientdevices.mqtt.Bridge` コンポーネントを含む[デプロイを作成](create-deployments.md)します。デプロイの MQTT ブリッジコンポーネント設定で、トピックマッピング `mqttTopicMapping` を指定します。

次の例では、クライアントデバイスから AWS IoT Coreへの `clients/+/hello/world` トピックフィルターに一致するトピックに関するメッセージをリレーするように、MQTT ブリッジコンポーネントを設定するデプロイを定義します。`merge` 設定の更新には、シリアル化された JSON オブジェクトが必要です。詳細については、「[コンポーネント設定の更新](update-component-configurations.md)」を参照してください。

------
#### [ Console ]

```
{
  "mqttTopicMapping": {
    "HelloWorldIotCore": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ AWS CLI ]

```
{
  "components": {
    "aws.greengrass.clientdevices.mqtt.Bridge": {
      "version": "2.0.0",
      "configurationUpdate": {
        "merge": "{\"mqttTopicMapping\":{\"HelloWorldIotCore\":{\"topic"\:\"clients/+/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"IotCore\"}}}"
      }
    }
    ...
  }
}
```

------

## MQTT メッセージのリレー
<a name="relay-mqtt-messages"></a>

クライアントデバイスと の間で MQTT メッセージを中継するには AWS IoT Core、[MQTT Bridge コンポーネントを設定してデプロイ](#deploy-mqtt-bridge-iot-core)し、中継するトピックを指定します。

**Example 例: クライアントデバイスから にトピックのメッセージを中継する AWS IoT Core**  
次の MQTT ブリッジコンポーネント設定では、クライアントデバイスから AWS IoT Coreへの `clients/+/hello/world/event` トピックフィルターに一致するトピックに関するメッセージのリレーを指定します。  

```
{
  "mqttTopicMapping": {
    "HelloWorldEvent": {
      "topic": "clients/+/hello/world/event",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

**Example 例: からクライアントデバイスにトピックのメッセージを中継 AWS IoT Core する**  
次の MQTT ブリッジコンポーネント設定では、 AWS IoT Core からクライアントデバイスへの `clients/+/hello/world/event/response` トピックフィルターに一致するトピックに関するメッセージのリレーを指定します。  

```
{
  "mqttTopicMapping": {
    "HelloWorldEventConfirmation": {
      "topic": "clients/+/hello/world/event/response",
      "source": "IotCore",
      "target": "LocalMqtt"
    }
  }
}
```