MQTT ブリッジ - AWS IoT Greengrass

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

MQTT ブリッジ

MQTT ブリッジコンポーネント (aws.greengrass.clientdevices.mqtt.Bridge) は、クライアントデバイス、ローカル Greengrass パブリッシュ/サブスクライブ、および の間で MQTT メッセージをリレーします AWS IoT Core。このコンポーネントを使用し、カスタムコンポーネントのクライアントデバイスからの MQTT メッセージを処理して、クライアントデバイスを AWS クラウドで同期できます。

注記

クライアントデバイスは、Greengrass コアデバイスに接続し、処理するために MQTT メッセージとデータを送信するローカル IoT デバイスです。詳細については、「ローカル IoT デバイスとやり取りする」を参照してください。

このコンポーネントを使用して、次のメッセージブローカー間でメッセージをリレーできます:

  • ローカル MQTT - ローカル MQTT ブローカーは、クライアントデバイスとコアデバイスの間のメッセージを処理します。

  • ローカルパブリッシュ/サブスクライブ - ローカル Greengrass メッセージブローカーは、コアデバイスのコンポーネント間のメッセージを処理します。Greengrass コンポーネントでこれらのメッセージとやり取りする方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。

  • AWS IoT Core – AWS IoT Core MQTT ブローカーはIoT デバイスと AWS クラウド 送信先間のメッセージを処理します。Greengrass コンポーネントでこれらのメッセージとやり取りする方法の詳細については、「メッセージの発行/サブスクライブ AWS IoT Core MQTT 」を参照してください。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

バージョン

このコンポーネントには、次のバージョンがあります。

  • 2.3.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

タイプ

このコンポーネントはプラグインコンポーネント (aws.greengrass.plugin) です。Greengrass nucleus は、nucleus と同じ Java バーチャルマシン (JVM) でこのコンポーネントを実行します。コアデバイスでこのコンポーネントのバージョンを変更するとき、nucleus が再起動します。

このコンポーネントは、Greengrass nucleus と同じログファイルを使用します。詳細については、「AWS IoT Greengrass ログのモニタリング」を参照してください。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。

  • Linux

  • Windows

要件

このコンポーネントには次の要件があります。

  • デフォルトポートの 8883 以外のポートを使用するようにコアデバイスの MQTT ブローカーコンポーネントを設定する場合、MQTT ブリッジ v2.1.0 以降を使用する必要があります。ブローカーが動作するポートに接続するように設定します。

  • MQTT ブリッジコンポーネントは、VPC での実行がサポートされています。

依存関係

コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

2.3.2

次の表に、このコンポーネントのバージョン 2.3.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.2.0 <2.6.0 ハード
2.3.0 and 2.3.1

次の表に、このコンポーネントのバージョン 2.3.0 および 2.3.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.2.0 <2.5.0 ハード
2.2.5 and 2.2.6

次の表に、このコンポーネントのバージョン 2.2.5 および 2.2.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.2.0 <2.5.0 ハード
2.2.3 and 2.2.4

次の表に、このコンポーネントのバージョン 2.2.3 および 2.2.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.2.0 <2.4.0 ハード
2.2.0 – 2.2.2

次の表に、このコンポーネントのバージョン 2.2.0 から 2.2.2 までの依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.2.0 <2.3.0 ハード
2.1.1

次の表に、このコンポーネントのバージョン 2.1.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.0.0 <2.2.0 ハード
2.0.0 to 2.1.0

次の表に、このコンポーネントのバージョン 2.0.0 から 2.1.0 までの依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
クライアントデバイス認証 >=2.0.0 <2.1.0 ハード

コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

2.3.0 – 2.3.2
mqttTopicMapping

ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。

このオブジェクトには、次の情報が含まれます。

topicMappingNameKey

このトピックマッピングの名前。Key topicMappingNameを、このトピックマッピングを識別するのに役立つ名前に置き換えます。

このオブジェクトには、次の情報が含まれます。

topic

ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。

+ および # の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「AWS IoT Core デベロッパーガイド」の「MQTT トピック」を参照してください。

注記

Pubsub ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、Greengrass nucleus コンポーネントの v2.6.0 以降を使用する必要があります。

targetTopicPrefix

このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。

source

ソースメッセージブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

target

ターゲット メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

mqtt5RouteOptions

(オプション) メッセージをソーストピックから宛先トピックにブリッジするためのトピックマッピングを設定するオプションを提供します。

このオブジェクトには、次の情報が含まれます。

mqtt5RouteOptionsNameKey

トピックマッピングのルートオプションの名前。mqtt5RouteOptionsNameKey を、 mqttTopicMappingフィールドで定義された一致するtopicMappingNameキーに置き換えます。

このオブジェクトには、次の情報が含まれます。

noLocal

(オプション) 有効にすると、ブリッジはブリッジ自体がパブリッシュしたトピックに関するメッセージを転送しません。これを使うと、以下のようにループを防ぐことができます。

{ "mqtt5RouteOptions": { "toIoTCore": { "noLocal": true } }, "mqttTopicMapping": { "toIoTCore": { "topic": "device", "source": "LocalMqtt", "target": "IotCore" }, "toLocal": { "topic": "device", "source": "IotCore", "target": "LocalMqtt" } } }

noLocalsourceLocalMqtt であるルートでのみサポートされます。

デフォルト: false

retainAsPublished

(オプション) 有効にすると、ブリッジによって転送されるメッセージには、そのルートのブローカーにパブリッシュされたメッセージと同じ retain フラグが付きます。

retainAsPublishedsourceLocalMqtt であるルートでのみサポートされます。

デフォルト: false

mqtt

(オプション) ローカルブローカーと通信するための MQTT プロトコル設定。

version

(オプション) ブリッジがローカルブローカーとの通信に使用する MQTT プロトコルのバージョン。nucleus 設定で選択した MQTT バージョンと同じである必要があります。

次から選択します。

  • mqtt3

  • mqtt5

mqttTopicMapping オブジェクトの source または target フィールドが LocalMqtt に設定されている場合は、MQTT ブローカーをデプロイする必要があります。mqtt5 オプションを選択した場合は、MQTT 5 ブローカー (EMQX) を使用する必要があります。

デフォルト: mqtt3

ackTimeoutSeconds

(オプション) PUBACK、SUBACK、または UNSUBACK パケットが処理に失敗するまで待機する時間間隔。

デフォルト: 60

connAckTimeoutMs

(オプション) 接続をシャットダウンする前に CONNACK パケットを待機する時間間隔。

デフォルト: 20000 (20 秒)。

pingTimeoutMs

(オプション) ブリッジがローカルブローカーから PINGACK メッセージを受信するまで待機する時間 (ミリ秒)。待機時間がタイムアウトを超えると、ブリッジは MQTT 接続を閉じて再度開きます。この値は、keepAliveTimeoutSeconds より小さくなければなりません。

デフォルト: 30000 (30 秒)

keepAliveTimeout秒

(オプション) MQTT 接続を維持するためにブリッジが送信する各 PING メッセージを送信する間隔 (秒)。この値は pingTimeoutMs より大きくなければなりません。

デフォルト: 60

maxReconnectDelayMs

(オプション) MQTT が再接続するまでの最大時間 (秒) を指定します。

デフォルト: 30000 (30 秒)

minReconnectDelayMs

(オプション) MQTT が再接続するまでの最小時間 (秒) を指定します。

receiveMaximum

(オプション) ブリッジが送信できる未承認の QoS1 パケットの最大数。

デフォルト: 100

maximumPacketSize

クライアントが MQTT パケットで受け入れる最大バイト数。

デフォルト: null (制限なし)

sessionExpiryInterval

(オプション) ブリッジとローカルブローカー間のセッション継続を要求できる時間 (秒)。

デフォルト: 4294967295 (セッション有効期限なし)

brokerUri

(オプション) ローカル MQTT ブローカーの URI。デフォルトポート 8883 とは異なるポートを使用するように MQTT ブローカーを設定する場合、このパラメータを指定する必要があります。以下の形式を利用して、ポートを MQTT ブローカーが動作するポートに置き換えます: ssl://localhost:port

デフォルト: ssl://localhost:8883

startupTimeoutSeconds

(オプション) コンポーネントが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が BROKEN に変わります。

デフォルト: 120

例: 設定マージの更新

次の設定更新の例では、次の項目を指定します。

  • トピックclients/+/hello/worldフィルターに一致するトピック AWS IoT Core について、クライアントデバイスから にメッセージをリレーします。

  • clients/+/detections トピックフィルターに一致するトピックで、メッセージをクライアントデバイスからローカルのパブリッシュ/サブスクライブにリレーし、ターゲットトピックに events/input/ のプレフィックスを追加します。結果のターゲットトピックは、events/input/clients/+/detections トピックフィルターに一致します。

  • トピックclients/+/statusフィルターに一致するトピック AWS IoT Core のメッセージをクライアントデバイスから にリレーし、ターゲットトピックに $aws/rules/StatusUpdateRule/ プレフィックスを追加します。この例では、これらのメッセージを直接 StatusUpdateRule という名前の AWS IoT ルール にリレーして、Basic Ingest を使用したコスト削減を行います。

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
例: MQTT 5 の設定

次の設定の例では、次の項目を更新します。

  • ブリッジがローカルブローカーで MQTT 5 プロトコルを使用できるようにします。

  • ClientDeviceHelloWorld トピックマッピングのパブリッシュされた設定として MQTT 保持を設定します。

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } }, "mqtt5RouteOptions": { "ClientDeviceHelloWorld": { "retainAsPublished": true } }, "mqtt": { "version": "mqtt5" } }
2.2.6
mqttTopicMapping

ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。

このオブジェクトには、次の情報が含まれます。

topicMappingNameKey

このトピックマッピングの名前。Key topicMappingNameを、このトピックマッピングを識別するのに役立つ名前に置き換えます。

このオブジェクトには、次の情報が含まれます。

topic

ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。

+ および # の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「AWS IoT Core デベロッパーガイド」の「MQTT トピック」を参照してください。

注記

Pubsub ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、Greengrass nucleus コンポーネントの v2.6.0 以降を使用する必要があります。

targetTopicPrefix

このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。

source

ソースメッセージブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

target

ターゲット メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

brokerUri

(オプション) ローカル MQTT ブローカーの URI。デフォルトポート 8883 とは異なるポートを使用するように MQTT ブローカーを設定する場合、このパラメータを指定する必要があります。以下の形式を利用して、ポートを MQTT ブローカーが動作するポートに置き換えます: ssl://localhost:port

デフォルト: ssl://localhost:8883

startupTimeoutSeconds

(オプション) コンポーネントが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が BROKEN に変わります。

デフォルト: 120

例: 設定マージの更新

次の設定更新の例では、次の項目を指定します。

  • トピックclients/+/hello/worldフィルターに一致するトピック AWS IoT Core について、クライアントデバイスから にメッセージをリレーします。

  • clients/+/detections トピックフィルターに一致するトピックで、メッセージをクライアントデバイスからローカルのパブリッシュ/サブスクライブにリレーし、ターゲットトピックに events/input/ のプレフィックスを追加します。結果のターゲットトピックは、events/input/clients/+/detections トピックフィルターに一致します。

  • トピックclients/+/statusフィルターに一致するトピック AWS IoT Core のメッセージをクライアントデバイスから にリレーし、ターゲットトピックに $aws/rules/StatusUpdateRule/ プレフィックスを追加します。この例では、これらのメッセージを直接 StatusUpdateRule という名前の AWS IoT ルール にリレーして、Basic Ingest を使用したコスト削減を行います。

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.2.0 - 2.2.5
mqttTopicMapping

ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。

このオブジェクトには、次の情報が含まれます。

topicMappingNameKey

このトピックマッピングの名前。Key topicMappingNameを、このトピックマッピングを識別するのに役立つ名前に置き換えます。

このオブジェクトには、次の情報が含まれます。

topic

ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。

+ および # の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「AWS IoT Core デベロッパーガイド」の「MQTT トピック」を参照してください。

注記

Pubsub ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、Greengrass nucleus コンポーネントの v2.6.0 以降を使用する必要があります。

targetTopicPrefix

このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。

source

ソースメッセージブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

target

ターゲット メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

brokerUri

(オプション) ローカル MQTT ブローカーの URI。デフォルトポート 8883 とは異なるポートを使用するように MQTT ブローカーを設定する場合、このパラメータを指定する必要があります。以下の形式を利用して、ポートを MQTT ブローカーが動作するポートに置き換えます: ssl://localhost:port

デフォルト: ssl://localhost:8883

例: 設定マージの更新

次の設定更新の例では、次の項目を指定します。

  • トピックclients/+/hello/worldフィルターに一致するトピック AWS IoT Core について、クライアントデバイスから にメッセージをリレーします。

  • clients/+/detections トピックフィルターに一致するトピックで、メッセージをクライアントデバイスからローカルのパブリッシュ/サブスクライブにリレーし、ターゲットトピックに events/input/ のプレフィックスを追加します。結果のターゲットトピックは、events/input/clients/+/detections トピックフィルターに一致します。

  • トピックclients/+/statusフィルターに一致するトピック AWS IoT Core のメッセージをクライアントデバイスから にリレーし、ターゲットトピックに $aws/rules/StatusUpdateRule/ プレフィックスを追加します。この例では、これらのメッセージを直接 StatusUpdateRule という名前の AWS IoT ルール にリレーして、Basic Ingest を使用したコスト削減を行います。

{ "mqttTopicMapping": { "ClientDeviceHelloWorld": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDeviceEvents": { "topic": "clients/+/detections", "targetTopicPrefix": "events/input/", "source": "LocalMqtt", "target": "Pubsub" }, "ClientDeviceCloudStatusUpdate": { "topic": "clients/+/status", "targetTopicPrefix": "$aws/rules/StatusUpdateRule/", "source": "LocalMqtt", "target": "IotCore" } } }
2.1.x
mqttTopicMapping

ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。

このオブジェクトには、次の情報が含まれます。

topicMappingNameKey

このトピックマッピングの名前。Key topicMappingNameを、このトピックマッピングを識別するのに役立つ名前に置き換えます。

このオブジェクトには、次の情報が含まれます。

topic

ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。

LocalMqtt または IotCore ソースブローカーを指定する場合、+# MQTT トピックワイルドカードを使用して、トピックフィルターに一致するすべてのトピックでメッセージをリレーします。詳細については、「AWS IoT Core デベロッパーガイド」の「MQTT トピック」を参照してください。

source

ソース メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

target

ターゲット メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

brokerUri

(オプション) ローカル MQTT ブローカーの URI。デフォルトポート 8883 とは異なるポートを使用するように MQTT ブローカーを設定する場合、このパラメータを指定する必要があります。以下の形式を利用して、ポートを MQTT ブローカーが動作するポートに置き換えます: ssl://localhost:port

デフォルト: ssl://localhost:8883

例: 設定マージの更新

次の設定更新の例では、 および clients/MyClientDevice2/hello/worldトピック AWS IoT Core でクライアントデバイスから にメッセージをリレーするように指定clients/MyClientDevice1/hello/worldしています。

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
2.0.x
mqttTopicMapping

ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。

このオブジェクトには、次の情報が含まれます。

topicMappingNameKey

このトピックマッピングの名前。Key topicMappingNameを、このトピックマッピングを識別するのに役立つ名前に置き換えます。

このオブジェクトには、次の情報が含まれます。

topic

ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。

LocalMqtt または IotCore ソースブローカーを指定する場合、+# MQTT トピックワイルドカードを使用して、トピックフィルターに一致するすべてのトピックでメッセージをリレーします。詳細については、「AWS IoT Core デベロッパーガイド」の「MQTT トピック」を参照してください。

source

ソース メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

target

ターゲット メッセージ ブローカー。次のオプションから選択します。

  • LocalMqtt - クライアントデバイスが通信するローカル MQTT ブローカー。

  • Pubsub - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。

  • IotCore - AWS IoT Core MQTT メッセージブローカー。

    注記

    MQTT ブリッジは、クライアントデバイスが QoS 0 を使用してローカル MQTT ブローカーをパブリッシュおよびサブスクライブしている場合でも AWS IoT Core、QoS 1 を使用して をパブリッシュおよびサブスクライブします。その結果、ローカル MQTT ブローカー上のクライアントデバイスから に MQTT メッセージを中継すると、レイテンシーが増加する可能性があります AWS IoT Core。コアデバイスにおける MQTT 設定の詳細については、「MQTT タイムアウトとキャッシュ設定を構成する」を参照してください。

sourcetarget は異なる必要があります。

例: 設定マージの更新

次の設定更新の例では、 および clients/MyClientDevice2/hello/worldトピック AWS IoT Core でクライアントデバイスから にメッセージをリレーするように指定clients/MyClientDevice1/hello/worldしています。

{ "mqttTopicMapping": { "ClientDevice1HelloWorld": { "topic": "clients/MyClientDevice1/hello/world", "source": "LocalMqtt", "target": "IotCore" }, "ClientDevice2HelloWorld": { "topic": "clients/MyClientDevice2/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }

ローカルログファイル

このコンポーネントは、Greengrass nucleus コンポーネントと同じログファイルを使用します。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
このコンポーネントのログを確認するには
  • コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。/greengrass/v2 または C:\greengrass\v2 を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

変更ログ

次の表は、コンポーネントの各バージョンにおける変更を示します。

バージョン

変更

2.3.2

クライアントデバイス認証バージョン 2.5.0 リリース用にバージョンが更新されました。

2.3.1
バグ修正と機能向上

ローカル MQTT クライアントが切断ループに入る問題を修正しました。

2.3.0
新機能

AWS IoT Core とローカル MQTT ソース間のブリッジのための MQTT5 サポートが追加されました。

2.2.6

新機能

新しい startupTimeoutSeconds 構成オプションを追加します。

2.2.5

クライアントデバイス認証バージョン 2.4.0 リリース用に、バージョンが更新されました。

2.2.4

Greengrass クライアントデバイス認証バージョン 2.3.0 リリース用に、バージョンが更新されました。

2.2.3

このバージョンには、バグ修正と機能向上が含まれています。

2.2.2

バグ修正と機能向上
  • ロギング調整値。

2.2.1

バグ修正と機能向上

MQTT ブリッジによる MQTT トピックのサブスクライブの失敗を引き起こし得る問題を修正しました。

2.2.0

新機能
  • ローカルの公開/サブスクライブをソースメッセージブローカーとして指定する場合の、MQTT トピックのワイルドカード (# および +) に関するサポートが追加されています。

    この機能を使用するには、Greengrass nucleus コンポーネントの v2.6.0 以降が必要です。

  • ターゲットトピックがメッセージを伝達するためのプレフィックスを追加するように MQTT ブリッジを設定するための、targetTopicPrefix オプションが追加されています。

2.1.1

バグ修正と機能向上
  • このコンポーネントが設定リセット更新を処理する際に関する問題を修正しました。

  • 証明書のローテーション時に MQTT クライアントが切断する頻度を減らします。

2.1.0

新機能
  • デフォルト以外の MQTT ブローカーポートを使用できるようにする brokerUri パラメータを追加します。

2.0.1

このバージョンには、バグ修正と改善が含まれています。

2.0.0

当初のバージョン