クライアントデバイスと AWS IoT Core の間の MQTT メッセージのリレー - AWS IoT Greengrass

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

クライアントデバイスと 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 オブジェクトが必要です。詳細については、「コンポーネント設定の更新」を参照してください。

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 メッセージのリレー

クライアントデバイスと 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" } } }