

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

# MQTT ブリッジ
<a name="mqtt-bridge-component"></a>

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

**注記**  <a name="client-device-component-context"></a>
クライアントデバイスは、Greengrass コアデバイスに接続し、処理するために MQTT メッセージとデータを送信するローカル IoT デバイスです。詳細については、「[ローカル IoT デバイスとやり取りする](interact-with-local-iot-devices.md)」を参照してください。

このコンポーネントを使用して、次のメッセージブローカー間でメッセージをリレーできます:
+ ローカル MQTT - ローカル MQTT ブローカーは、クライアントデバイスとコアデバイスの間のメッセージを処理します。
+ ローカルパブリッシュ/サブスクライブ - ローカル Greengrass メッセージブローカーは、コアデバイスのコンポーネント間のメッセージを処理します。Greengrass コンポーネントでこれらのメッセージとやり取りする方法の詳細については、「[ローカルメッセージをパブリッシュ/サブスクライブする](ipc-publish-subscribe.md)」を参照してください。
+ AWS IoT Core – AWS IoT Core MQTT ブローカーは、IoT デバイスと AWS クラウド 送信先間のメッセージを処理します。Greengrass コンポーネントでこれらのメッセージとやり取りする方法の詳細については、「[AWS IoT Core MQTT メッセージを発行/サブスクライブする](ipc-iot-core-mqtt.md)」を参照してください。
**注記**  <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-bridge-component-versions)
+ [タイプ](#mqtt-bridge-component-type)
+ [オペレーティングシステム](#mqtt-bridge-component-os-support)
+ [要件](#mqtt-bridge-component-requirements)
+ [依存関係](#mqtt-bridge-component-dependencies)
+ [構成](#mqtt-bridge-component-configuration)
+ [ローカルログファイル](#mqtt-bridge-component-log-file)
+ [変更ログ](#mqtt-bridge-component-changelog)

## バージョン
<a name="mqtt-bridge-component-versions"></a>

このコンポーネントには、次のバージョンがあります。
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## タイプ
<a name="mqtt-bridge-component-type"></a>

<a name="public-component-type-plugin-para1"></a>このコンポーネントはプラグインコンポーネント (`aws.greengrass.plugin`) です。[Greengrass nucleus](greengrass-nucleus-component.md) は、nucleus と同じ Java バーチャルマシン (JVM) でこのコンポーネントを実行します。コアデバイスでこのコンポーネントのバージョンを変更するとき、nucleus が再起動します。

<a name="public-component-type-plugin-para2"></a>このコンポーネントは、Greengrass nucleus と同じログファイルを使用します。詳細については、「[AWS IoT Greengrass ログのモニタリング](monitor-logs.md)」を参照してください。

<a name="public-component-type-more-information"></a>詳細については、「[コンポーネントタイプ](develop-greengrass-components.md#component-types)」を参照してください。

## オペレーティングシステム
<a name="mqtt-bridge-component-os-support"></a>

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

## 要件
<a name="mqtt-bridge-component-requirements"></a>

このコンポーネントには次の要件があります。
+ デフォルトポートの 8883 以外のポートを使用するようにコアデバイスの MQTT ブローカーコンポーネントを設定する場合、MQTT ブリッジ v2.1.0 以降を使用する必要があります。ブローカーが動作するポートに接続するように設定します。
+ MQTT ブリッジコンポーネントは、VPC で実行できるようにサポートされています。

## 依存関係
<a name="mqtt-bridge-component-dependencies"></a>

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

------
#### [ 2.3.2 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.2.0 <2.6.0 | ハード | 

------
#### [ 2.3.0 and 2.3.1 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.2.0 <2.5.0 | ハード | 

------
#### [ 2.2.5 and 2.2.6 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.2.0 <2.5.0 | ハード | 

------
#### [ 2.2.3 and 2.2.4 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.2.0 <2.4.0 | ハード | 

------
#### [ 2.2.0 – 2.2.2 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.2.0 <2.3.0 | ハード | 

------
#### [ 2.1.1 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.0.0 <2.2.0 | ハード | 

------
#### [ 2.0.0 to 2.1.0 ]

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


| 依存関係 | 互換性のあるバージョン | 依存関係タイプ | 
| --- | --- | --- | 
| [クライアントデバイス認証](client-device-auth-component.md) | >=2.0.0 <2.1.0 | ハード | 

------

コンポーネントの依存関係の詳細については、「[コンポーネント recipe のリファレンス](component-recipe-reference.md#recipe-reference-component-dependencies)」を参照してください。

## 構成
<a name="mqtt-bridge-component-configuration"></a>

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

------
#### [ 2.3.0 – 2.3.2 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。  
このオブジェクトには、次の情報が含まれます。    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>このトピックマッピングの名前。*topicMappingNameKey* をこのトピックマッピングを識別しやすくする名前に置き換えます。  
このオブジェクトには、次の情報が含まれます。    
`topic`  
ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。  
`+` および `#` の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。  
`Pubsub` ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)の v2.6.0 以降を使用する必要があります。  
`targetTopicPrefix`  
このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
ソースメッセージブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
ターゲット メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。

mqtt5RouteOptions  
(オプション) メッセージをソーストピックから宛先トピックにブリッジするためのトピックマッピングを設定するオプションを提供します。  
このオブジェクトには、次の情報が含まれます。    
*mqtt5RouteOptionsNameKey*  
トピックマッピングのルートオプションの名前。*mqtt5RouteOptionsNameKey* を、`mqttTopicMapping` フィールドで定義されている対応する *topicMappingNameKey* に置き換えてください。  
このオブジェクトには、次の情報が含まれます。    
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 バージョンと同じである必要があります。  
次から選択します。  
+ `mqtt3`
+ `mqtt5`
`mqttTopicMapping` オブジェクトの `source` または `target` フィールドが `LocalMqtt` に設定されている場合は、MQTT ブローカーをデプロイする必要があります。`mqtt5` オプションを選択した場合は、[MQTT 5 ブローカー (EMQX)](mqtt-broker-emqx-component.md) を使用する必要があります。  
デフォルト: `mqtt3`  
ackTimeoutSeconds  
(オプション) PUBACK、SUBACK、または UNSUBACK パケットが処理に失敗するまで待機する時間間隔。  
デフォルト: 60  
connAckTimeoutMs  
(オプション) 接続をシャットダウンする前に CONNACK パケットを待機する時間間隔。  
デフォルト: 20000 (20 秒)。  
pingTimeoutMs  
(オプション) ブリッジがローカルブローカーから PINGACK メッセージを受信するまで待機する時間 (ミリ秒)。待機時間がタイムアウトを超えると、ブリッジは MQTT 接続を閉じて再度開きます。この値は、`keepAliveTimeoutSeconds` より小さくなければなりません。  
デフォルト: 30000 (30 秒)  
keepAliveTimeoutSeconds  
(オプション) MQTT 接続を維持するためにブリッジが送信する各 PING メッセージを送信する間隔 (秒)。この値は `pingTimeoutMs` より大きくなければなりません。  
デフォルト: 60  
maxReconnectDelayMs  
(オプション) MQTT が再接続するまでの最大時間 (秒) を指定します。  
デフォルト: 30000 (30 秒)  
minReconnectDelayMs  
(オプション) MQTT が再接続するまでの最小時間 (秒) を指定します。  
receiveMaximum  
(オプション) ブリッジが送信できる未承認の QoS1 パケットの最大数。  
デフォルト: 100  
maximumPacketSize  
クライアントが MQTT パケットで受け入れる最大バイト数。  
デフォルト: null (制限なし)  
sessionExpiryInterval  
(オプション) ブリッジとローカルブローカー間のセッション継続を要求できる時間 (秒)。  
デフォルト: 4294967295 (セッション有効期限なし)

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

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

**Example 例: 設定マージの更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
次の設定更新の例では、次の項目を指定します。  
+ `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 ルール](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) にリレーして、[Basic Ingest](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html) を使用したコスト削減を行います。

```
{
  "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"
    }
  }
}
```

**Example 例: 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`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。  
このオブジェクトには、次の情報が含まれます。    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>このトピックマッピングの名前。*topicMappingNameKey* をこのトピックマッピングを識別しやすくする名前に置き換えます。  
このオブジェクトには、次の情報が含まれます。    
`topic`  
ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。  
`+` および `#` の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。  
`Pubsub` ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)の v2.6.0 以降を使用する必要があります。  
`targetTopicPrefix`  
このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
ソースメッセージブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
ターゲット メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。

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

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

**Example 例: 設定マージの更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
次の設定更新の例では、次の項目を指定します。  
+ `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 ルール](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) にリレーして、[Basic Ingest](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html) を使用したコスト削減を行います。

```
{
  "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`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。  
このオブジェクトには、次の情報が含まれます。    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>このトピックマッピングの名前。*topicMappingNameKey* をこのトピックマッピングを識別しやすくする名前に置き換えます。  
このオブジェクトには、次の情報が含まれます。    
`topic`  
ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。  
`+` および `#` の MQTT トピックワイルドカードを使用すると、トピックフィルターに一致するすべてのトピックでメッセージをリレーできます。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。  
`Pubsub` ソースブローカーとともに MQTT トピックのワイルドカードを使用するには、[Greengrass nucleus コンポーネント](greengrass-nucleus-component.md)の v2.6.0 以降を使用する必要があります。  
`targetTopicPrefix`  
このコンポーネントがメッセージをリレーするときにターゲットトピックに追加するプレフィックス。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
ソースメッセージブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
ターゲット メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。

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

**Example 例: 設定マージの更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
次の設定更新の例では、次の項目を指定します。  
+ `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 ルール](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) にリレーして、[Basic Ingest](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html) を使用したコスト削減を行います。

```
{
  "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`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。  
このオブジェクトには、次の情報が含まれます。    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>このトピックマッピングの名前。*topicMappingNameKey* をこのトピックマッピングを識別しやすくする名前に置き換えます。  
このオブジェクトには、次の情報が含まれます。    
`topic`  
ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。  
`LocalMqtt` または `IotCore` ソースブローカーを指定する場合、`+` と `#` MQTT トピックワイルドカードを使用して、トピックフィルターに一致するすべてのトピックでメッセージをリレーします。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
ソース メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
ターゲット メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。

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

**Example 例: 設定マージの更新**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
次の設定更新の例では、 `clients/MyClientDevice1/hello/world`および `clients/MyClientDevice2/hello/world`トピック AWS IoT Core でクライアントデバイスから にメッセージを中継するように を指定します。  

```
{
  "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`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>ブリッジするトピックのマッピング。このコンポーネントは、ソーストピックのメッセージへサブスクライブし、受信したメッセージを宛先トピックにパブリッシュします。各トピックマッピングは、トピック、ソースタイプ、宛先タイプを定義します。  
このオブジェクトには、次の情報が含まれます。    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>このトピックマッピングの名前。*topicMappingNameKey* をこのトピックマッピングを識別しやすくする名前に置き換えます。  
このオブジェクトには、次の情報が含まれます。    
`topic`  
ソースブローカーとターゲットブローカーの間をつなぐトピックまたはトピックフィルター。  
`LocalMqtt` または `IotCore` ソースブローカーを指定する場合、`+` と `#` MQTT トピックワイルドカードを使用して、トピックフィルターに一致するすべてのトピックでメッセージをリレーします。詳細については、「*AWS IoT Core デベロッパーガイド*」の「[MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)」を参照してください。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
ソース メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
ターゲット メッセージ ブローカー。次のオプションから選択します。  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - クライアントデバイスが通信するローカル MQTT ブローカー。
+ `Pubsub` - ローカル Greengrass パブリッシュ/サブスクライブメッセージブローカー。
+ `IotCore` – AWS IoT Core MQTT メッセージブローカー。
**注記**  <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)」を参照してください。
`source` と `target` は異なる必要があります。

**Example 例: 設定マージの更新**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
次の設定更新の例では、 `clients/MyClientDevice1/hello/world`および `clients/MyClientDevice2/hello/world`トピック AWS IoT Core でクライアントデバイスから にメッセージを中継するように を指定します。  

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

------

## ローカルログファイル
<a name="mqtt-bridge-component-log-file"></a>

このコンポーネントは、[Greengrass nucleus](greengrass-nucleus-component.md) コンポーネントと同じログファイルを使用します。

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**このコンポーネントのログを確認するには**
+ コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。`/greengrass/v2` または *C:\$1greengrass\$1v2* を 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
  ```

------

## 変更ログ
<a name="mqtt-bridge-component-changelog"></a>

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


|  **バージョン**  |  **変更**  | 
| --- | --- | 
|  2.3.2  |  [クライアントデバイス認証](client-device-auth-component.md)バージョン 2.5.0 リリース用に、バージョンが更新されました。  | 
| 2.3.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
| 2.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.6  |  <a name="changelog-mqtt-bridge-2.2.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.5  |  [クライアントデバイス認証](client-device-auth-component.md)バージョン 2.4.0 リリース用に、バージョンが更新されました。  | 
|  2.2.4  |  Greengrass [クライアントデバイス認証](client-device-auth-component.md)バージョン 2.3.0 リリース用に、バージョンが更新されました。  | 
|  2.2.3  |  このバージョンには、バグ修正と機能向上が含まれています。  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.0  |  <a name="changelog-mqtt-bridge-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.0.1  |  このバージョンには、バグ修正と改善が含まれています。  | 
|  2.0.0  |  当初のバージョン  | 