翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
バージョン
このコンポーネントには、次のバージョンがあります。
タイプ
このコンポーネントはプラグインコンポーネント (aws.greengrass.plugin
) です。Greengrass nucleus は、nucleus と同じ Java バーチャルマシン (JVM) でこのコンポーネントを実行します。コアデバイスでこのコンポーネントのバージョンを変更するとき、nucleus が再起動します。
このコンポーネントは、Greengrass nucleus と同じログファイルを使用します。詳細については、「AWS IoT Greengrass ログのモニタリング」を参照してください。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。
要件
このコンポーネントには次の要件があります。
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。
- 2.3.2
-
次の表に、このコンポーネントのバージョン 2.3.2 の依存関係を示します。
- 2.3.0 and 2.3.1
-
次の表に、このコンポーネントのバージョン 2.3.0 および 2.3.1 の依存関係を示します。
- 2.2.5 and 2.2.6
-
次の表に、このコンポーネントのバージョン 2.2.5 および 2.2.6 の依存関係を示します。
- 2.2.3 and 2.2.4
-
次の表に、このコンポーネントのバージョン 2.2.3 および 2.2.4 の依存関係を示します。
- 2.2.0 – 2.2.2
-
次の表に、このコンポーネントのバージョン 2.2.0 から 2.2.2 までの依存関係を示します。
- 2.1.1
-
次の表に、このコンポーネントのバージョン 2.1.1 の依存関係を示します。
- 2.0.0 to 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 トピック」を参照してください。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
- 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"
}
}
}
noLocal
は source
が LocalMqtt
であるルートでのみサポートされます。
デフォルト: false
- retainAsPublished
-
(オプション) 有効にすると、ブリッジによって転送されるメッセージには、そのルートのブローカーにパブリッシュされたメッセージと同じ retain
フラグが付きます。
retainAsPublished
は source
が LocalMqtt
であるルートでのみサポートされます。
デフォルト: false
- mqtt
-
(オプション) ローカルブローカーと通信するための MQTT プロトコル設定。
- version
-
(オプション) ブリッジがローカルブローカーとの通信に使用する MQTT プロトコルのバージョン。nucleus 設定で選択した MQTT バージョンと同じである必要があります。
次から選択します。
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 の設定
次の設定の例では、次の項目を更新します。
{
"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 トピック」を参照してください。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 トピック」を参照してください。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
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 タイムアウトとキャッシュ設定を構成する」を参照してください。
source
と target
は異なる必要があります。
例: 設定マージの更新
次の設定更新の例では、 および 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
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン
|
変更
|
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
|
|
2.1.0
|
|
2.0.1
|
このバージョンには、バグ修正と改善が含まれています。
|
2.0.0
|
当初のバージョン
|