翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
クライアントデバイスと AWS IoT Core の間の MQTT メッセージのリレー
クライアントデバイスと AWS IoT Core の間で MQTT メッセージや他のデータをリレーできます。クライアントデバイスは、コアデバイスに実行する MQTT ブローカーコンポーネントに接続します。デフォルトでは、コアデバイスはクライアントデバイスと AWS IoT Core の間で MQTT メッセージまたはデータをリレーしません。クライアントデバイスは、デフォルトで MQTT を介して相互にのみ通信できます。
クライアントデバイスと AWS IoT Core の間で MQTT メッセージをリレーするには、MQTT ブリッジコンポーネントが次の手順を実行するように設定します。
-
メッセージをクライアントデバイスから AWS IoT Core にリレーします。
-
メッセージを AWS IoT Core からクライアントデバイスにリレーします。
注記
MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュとサブスクライブする場合でも、QoS 1 を使用して AWS IoT Core にパブリッシュとサブスクライブします。その結果、ローカル MQTT ブローカーのクライアントデバイスから AWS IoT Core に MQTT メッセージをリレーするとき、さらにレイテンシーが観察されることがあります。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。
MQTT ブリッジコンポーネントの設定とデプロイ
MQTT ブリッジコンポーネントは、それぞれメッセージソースとメッセージの送信先を指定するトピックマッピングのリストを使用します。クライアントデバイスと AWS IoT Core の間でメッセージをリレーするには、MQTT ブリッジコンポーネントをデプロイして、コンポーネント設定で各ソースと宛先トピックを指定します。
MQTT ブリッジコンポーネントをコアデバイスまたはコアデバイスのグループにデプロイするには、aws.greengrass.clientdevices.mqtt.Bridge
コンポーネントを含むデプロイを作成します。デプロイの MQTT ブリッジコンポーネント設定で、トピックマッピング mqttTopicMapping
を指定します。
次の例では、クライアントデバイスから AWS IoT Core への clients/+/hello/world
トピックフィルターに一致するトピックに関するメッセージをリレーするように、MQTT ブリッジコンポーネントを設定するデプロイを定義します。merge
設定の更新には、シリアル化された JSON オブジェクトが必要です。詳細については、「コンポーネント設定の更新」を参照してください。
MQTT メッセージのリレー
クライアントデバイスと AWS IoT Core の間で MQTT メッセージをリレーするには、MQTT ブリッジコンポーネントを設定とデプロイして、リレーするトピックを指定します。
例: クライアントデバイスから AWS IoT Core へのトピックに関するメッセージをリレー
次の MQTT ブリッジコンポーネント設定では、クライアントデバイスから AWS IoT Core への clients/+/hello/world/event
トピックフィルターに一致するトピックに関するメッセージのリレーを指定します。
{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }
例: AWS IoT Core からクライアントデバイスへのトピックに関するメッセージをリレー
次の MQTT ブリッジコンポーネント設定では、AWS IoT Core からクライアントデバイスへの clients/+/hello/world/event/response
トピックフィルターに一致するトピックに関するメッセージのリレーを指定します。
{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }