

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在用戶端裝置與 之間轉送 MQTT 訊息 AWS IoT Core
<a name="relay-client-device-messages"></a>

您可以在用戶端裝置與 之間轉送 MQTT 訊息和其他資料 AWS IoT Core。用戶端裝置會連線至核心裝置上執行的 MQTT 代理程式元件。根據預設，核心裝置不會在用戶端裝置與 之間轉送 MQTT 訊息或資料 AWS IoT Core。根據預設，用戶端裝置只能透過 MQTT 彼此通訊。

若要在用戶端裝置和 之間轉送 MQTT 訊息 AWS IoT Core，請將 [MQTT 橋接器元件](mqtt-bridge-component.md)設定為執行下列動作：
+ 將訊息從用戶端裝置轉送至 AWS IoT Core。
+ 將訊息從 轉送 AWS IoT Core 至用戶端裝置。

**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。

**Topics**
+ [設定和部署 MQTT 橋接器元件](#deploy-mqtt-bridge-iot-core)
+ [轉送 MQTT 訊息](#relay-mqtt-messages)

## 設定和部署 MQTT 橋接器元件
<a name="deploy-mqtt-bridge-iot-core"></a>

MQTT 橋接器元件會使用主題映射清單，每個主題映射都會指定訊息來源和訊息目的地。若要在用戶端裝置與 之間轉送訊息 AWS IoT Core，請部署 MQTT 橋接器元件，並在元件組態中指定每個來源和目的地主題。

<a name="create-mqtt-bridge-deployment-info"></a>若要將 MQTT 橋接器元件部署至核心裝置或核心裝置群組，[請建立包含 元件的部署](create-deployments.md)。 `aws.greengrass.clientdevices.mqtt.Bridge`在 部署的 MQTT 橋接器元件組態中指定主題映射 `mqttTopicMapping`。

下列範例會定義部署，以設定 MQTT 橋接器元件，在符合用戶端裝置`clients/+/hello/world`主題篩選條件的主題上轉送訊息 AWS IoT Core。`merge` 組態更新需要序列化 JSON 物件。如需詳細資訊，請參閱[更新元件組態](update-component-configurations.md)。

------
#### [ 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 訊息
<a name="relay-mqtt-messages"></a>

若要在用戶端裝置和 之間轉送 MQTT 訊息 AWS IoT Core，[請設定和部署 MQTT Bridge 元件](#deploy-mqtt-bridge-iot-core)，並指定要轉送的主題。

**Example 範例：將主題上的訊息從用戶端裝置轉送至 AWS IoT Core**  
下列 MQTT 橋接器元件組態指定將符合`clients/+/hello/world/event`主題篩選條件之主題的訊息從用戶端裝置轉送至 AWS IoT Core。  

```
{
  "mqttTopicMapping": {
    "HelloWorldEvent": {
      "topic": "clients/+/hello/world/event",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

**Example 範例：將主題上的訊息從 轉送 AWS IoT Core 至用戶端裝置**  
下列 MQTT 橋接器元件組態指定將符合`clients/+/hello/world/event/response`主題篩選條件之主題的訊息從 AWS IoT Core 轉送至用戶端裝置。  

```
{
  "mqttTopicMapping": {
    "HelloWorldEventConfirmation": {
      "topic": "clients/+/hello/world/event/response",
      "source": "IotCore",
      "target": "LocalMqtt"
    }
  }
}
```