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 元件中與這些訊息互動的詳細資訊,請參閱。發布/訂閱MQTT 訊 AWS IoT Core 息

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

版本

此元件具有下列版本:

  • 2.3.x 版本

  • 2.2.x 版本

  • 2.1.x

  • 2.0.x

Type

這個組件是一個插件組件(aws.greengrass.plugin)。Greengrass 核在與核相同的 Java 虛擬機(JVM)中運行此組件。當您在核心裝置上變更此元件的版本時,核心會重新啟動。

此組件使用與 Greengrass 核相同的日誌文件。如需詳細資訊,請參閱 監控AWS IoT Greengrass日誌

如需詳細資訊,請參閱 元件類型

作業系統

此元件可安裝在執行下列作業系統的核心裝置上:

  • Linux

  • Windows

要求

此元件具有下列需求:

  • 如果您將核心裝置的 MQTT 代理程式元件設定為使用預設連接埠 8883 以外的連接埠,則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為在代理程式運作的連接埠上進行連線。

  • 支援 MQTT 橋接器元件在 VPC 中執行。

相依性

部署元件時,AWS IoT Greengrass也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的需求,才能成功部署元件。本節列出此元件之已發行版本的相依性,以及定義每個相依性之元件版本的語意版本條件約束。您也可以在AWS IoT Greengrass主控台中檢視元件每個版本的相依性。在元件詳細資料頁面上,尋找 [相依性] 清單。

2.3.0

下表列出此元件 2.3.0 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 > = 2.2.0 硬式
2.2.5 and 2.2.6

下表列出此元件 2.2.5 和 2.2.6 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 > = 2.2.0 硬式
2.2.3 and 2.2.4

下表列出此元件 2.2.3 和 2.2.4 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 >=2.2.0 硬式
2.2.0 – 2.2.2

下表列出此元件 2.2.0 至 2.2.2 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 >=2.2.0 硬式
2.1.1

下表列出此元件 2.1.1 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 > = 2.0.0 硬式
2.0.0 to 2.1.0

下表列出此元件 2.0.0 到 2.1.0 版的相依性。

相依性 兼容版本 相依性類型
用戶端裝置驗證 > = 2.0.0 硬式

如需有關元件相依性的詳細資訊,請參閱元件方案參考

組態

此元件提供下列組態參數,您可以在部署元件時自訂這些參數。

2.3.0
mqttTopicMapping

您要橋接的主題對映。此元件會訂閱來源主題上的訊息,並將其接收到的訊息發佈至目標主題。每個主題對映都會定義主題、來源類型和目標類型。

此物件包含下列資訊:

topicMappingNameKey

此主題對映的名稱。以可協助您識別此主題對應的名稱取代 topicMappingNameKey

此物件包含下列資訊:

topic

主題或主題篩選器可在來源代理程式與目標代理程式之間建立橋接

您可以使用+# MQTT 主題萬用字元來轉送符合主題篩選器的所有主題的郵件。如需詳細資訊,請參閱AWS IoT Core開發人員指南中的 MQTT 主題

targetTopicPrefix

當此元件轉送訊息時,要新增至目標主題的前置詞。

source

來源訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

target

目標訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

mqtt5 RouteOptions

(選擇性) 提供用於設定將訊息從來源主題橋接至目標主題的主題對應的選項。

此物件包含下列資訊:

mqtt5 RouteOptionsNameKey

主題對映的路由選項名稱。使用欄位中定義的RouteOptionsNameKey相符topicMappingName金鑰取代 mqtt5mqttTopicMapping

此物件包含下列資訊:

無本地

(選擇性) 啟用時,橋接器不會轉寄橋接器本身發佈之主題的郵件。使用它來防止循環,如下所示:

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

noLocal僅支援所在的路sourceLocalMqtt

預設:false

retainAsPublished

(選擇性) 啟用時,橋接器轉寄的訊息會與針對該路由發佈至 Broker 的訊息具有相同的retain旗標。

retainAsPublished僅支援所在的路sourceLocalMqtt

預設:false

mqtt

(選擇性) 用於與本機代理程式通訊的 MQTT 通訊協定設定。

version

(選擇性) 橋接器用來與本機代理程式通訊的 MQTT 通訊協定版本。必須與核心組態中選取的 MQTT 版本相同。

請選擇下列項目:

  • mqtt3

  • mqtt5

mqttTopicMapping物件的sourcetarget欄位設定為時,您必須部署 MQTT 代理程式。LocalMqtt如果您選擇該mqtt5選項,則必須使用MQTT 5 經紀商.

預設:mqtt3

ackTimeoutSeconds

(選擇性) 作業失敗之前,等待 PUBACK、SUBACK 或 UNSUBACK 封包的時間間隔。

預設:60

connAckTimeout女士

(選擇性) 在關閉連線之前等待 CONNACK 封包的時間間隔。

預設值:二十秒

pingTimeoutMs

(選擇性) 橋接器等待從本機代理程式接收 PINGACK 訊息的時間量 (毫秒)。如果等待超過逾時,橋接器會關閉,然後重新開啟 MQTT 連線。此值必須小於keepAliveTimeoutSeconds

預設值:3 萬 (30 秒)

keepAliveTimeout秒

(選擇性) 橋接器傳送以維持 MQTT 連線作用中的每個 PING 訊息之間的時間 (以秒為單位)。此值必須大於pingTimeoutMs

預設:60

maxReconnectDelay女士

(選擇性) MQTT 重新連線的時間上限 (以秒為單位)。

預設值:3 萬 (30 秒)

minReconnectDelay女士

(選擇性) MQTT 重新連線的時間下限 (以秒為單位)。

接收最大值

(選擇性) 橋接器可傳送的未確認 QoS1 封包數目上限。

預設:100

maximumPacketSize

用戶端接受 MQTT 封包的最大位元組數。

預設值:空值 (無限制)

sessionExpiryInterval

(選擇性) 您可以要求在橋接器和本機代理程式之間持續工作階段的時間 (以秒為單位)。

預設值:4294967295 (工作階段永遠不會過期)

brokerUri

(選擇性) 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠,則必須指定此參數。請使用下列格式,並以 MQTT 代理程式運作的連接埠取代連接埠:ssl://localhost:port

預設:ssl://localhost:8883

startupTimeoutSeconds

(選擇性) 元件啟動的時間上限 (以秒為單位)。BROKEN如果超過此逾時,組件的狀態會變更為。

預設:120

範例:組態合併更新

下列範例組態更新會指定下列項目:

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/hello/world題篩選器的主題。

  • 在符合主題篩選器的主題上,將訊息從用戶端裝置轉送至本機發佈/訂閱,並將前置events/input/詞新增至目標主clients/+/detections題。產生的目標主題符合主events/input/clients/+/detections題篩選器。

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/status題篩選器的主題,並將前置$aws/rules/StatusUpdateRule/詞新增至目標主題。此範例會將這些訊息直接轉送至名為的AWS IoT規則StatusUpdateRule以使用基本擷取降低成本。

{ "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 通訊協定。

  • 針對主題對應設定 MQTT 保留為已發佈設定。ClientDeviceHelloWorld

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

您要橋接的主題對映。此元件會訂閱來源主題上的訊息,並將其接收到的訊息發佈至目標主題。每個主題對映都會定義主題、來源類型和目標類型。

此物件包含下列資訊:

topicMappingNameKey

此主題對映的名稱。以可協助您識別此主題對應的名稱取代 topicMappingNameKey

此物件包含下列資訊:

topic

主題或主題篩選器可在來源代理程式與目標代理程式之間建立橋接

您可以使用+# MQTT 主題萬用字元來轉送符合主題篩選器的所有主題的郵件。如需詳細資訊,請參閱AWS IoT Core開發人員指南中的 MQTT 主題

targetTopicPrefix

當此元件轉送訊息時,要新增至目標主題的前置詞。

source

來源訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

target

目標訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

brokerUri

(選擇性) 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠,則必須指定此參數。請使用下列格式,並以 MQTT 代理程式運作的連接埠取代連接埠:ssl://localhost:port

預設:ssl://localhost:8883

startupTimeoutSeconds

(選擇性) 元件啟動的時間上限 (以秒為單位)。BROKEN如果超過此逾時,組件的狀態會變更為。

預設:120

範例:組態合併更新

下列範例組態更新會指定下列項目:

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/hello/world題篩選器的主題。

  • 在符合主題篩選器的主題上,將訊息從用戶端裝置轉送至本機發佈/訂閱,並將前置events/input/詞新增至目標主clients/+/detections題。產生的目標主題符合主events/input/clients/+/detections題篩選器。

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/status題篩選器的主題,並將前置$aws/rules/StatusUpdateRule/詞新增至目標主題。此範例會將這些訊息直接轉送至名為的AWS IoT規則StatusUpdateRule以使用基本擷取降低成本。

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

此主題對映的名稱。以可協助您識別此主題對應的名稱取代 topicMappingNameKey

此物件包含下列資訊:

topic

主題或主題篩選器可在來源代理程式與目標代理程式之間建立橋接

您可以使用+# MQTT 主題萬用字元來轉送符合主題篩選器的所有主題的郵件。如需詳細資訊,請參閱AWS IoT Core開發人員指南中的 MQTT 主題

targetTopicPrefix

當此元件轉送訊息時,要新增至目標主題的前置詞。

source

來源訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

target

目標訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

brokerUri

(選擇性) 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠,則必須指定此參數。請使用下列格式,並以 MQTT 代理程式運作的連接埠取代連接埠:ssl://localhost:port

預設:ssl://localhost:8883

範例:組態合併更新

下列範例組態更新會指定下列項目:

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/hello/world題篩選器的主題。

  • 在符合主題篩選器的主題上,將訊息從用戶端裝置轉送至本機發佈/訂閱,並將前置events/input/詞新增至目標主clients/+/detections題。產生的目標主題符合主events/input/clients/+/detections題篩選器。

  • 將訊息從用戶端裝置轉送至AWS IoT Core符合主clients/+/status題篩選器的主題,並將前置$aws/rules/StatusUpdateRule/詞新增至目標主題。此範例會將這些訊息直接轉送至名為的AWS IoT規則StatusUpdateRule以使用基本擷取降低成本。

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

此主題對映的名稱。以可協助您識別此主題對應的名稱取代 topicMappingNameKey

此物件包含下列資訊:

topic

主題或主題篩選器可在來源代理程式與目標代理程式之間建立橋接

如果您指定LocalMqttIotCore來源代理程式,則可以使用+# MQTT 主題萬用字元來轉送符合主題篩選器的所有主題的訊息。如需詳細資訊,請參閱AWS IoT Core開發人員指南中的 MQTT 主題

source

來源訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

target

目標訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

brokerUri

(選擇性) 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠,則必須指定此參數。請使用下列格式,並以 MQTT 代理程式運作的連接埠取代連接埠:ssl://localhost:port

預設:ssl://localhost:8883

範例:組態合併更新

下列範例組態更新指定將用戶端裝置的訊息轉送至AWS IoT Coreclients/MyClientDevice1/hello/worldclients/MyClientDevice2/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

此主題對映的名稱。以可協助您識別此主題對應的名稱取代 topicMappingNameKey

此物件包含下列資訊:

topic

主題或主題篩選器可在來源代理程式與目標代理程式之間建立橋接

如果您指定LocalMqttIotCore來源代理程式,則可以使用+# MQTT 主題萬用字元來轉送符合主題篩選器的所有主題的訊息。如需詳細資訊,請參閱AWS IoT Core開發人員指南中的 MQTT 主題

source

來源訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

target

目標訊息代理程式。您可以從以下選項中選擇:

  • LocalMqtt— 用戶端裝置通訊的本機 MQTT 代理程式。

  • Pubsub— 本機 Greengrass 發佈/訂閱訊息代理程式。

  • IotCore— AWS IoT Core MQTT 訊息代理程式。

    注意

    即使用戶端裝置使用 QoS 0 發佈和訂閱本機 MQTT 代理程式AWS IoT Core,MQTT 橋接器也會使用 QoS 1 來發佈和訂閱。因此,當您將 MQTT 訊息從本機 MQTT 代理程式上的用戶端裝置轉送至時,可能會發現額外的延遲。AWS IoT Core如需核心裝置上 MQTT 組態的詳細資訊,請參閱。設定 MQTT 逾時和快取設定

source並且target必須是不同的。

範例:組態合併更新

下列範例組態更新指定將用戶端裝置的訊息轉送至AWS IoT Coreclients/MyClientDevice1/hello/worldclients/MyClientDevice2/hello/world主題。

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

本機記錄檔

此元件使用與 Greengrass 核元件相同的記錄檔。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
若要檢視此元件的記錄
  • 在核心裝置上執行下列命令,即時檢視此元件的記錄檔。以AWS IoT Greengrass根資料夾的路徑取代/greengrass/v2C:\greengrass\v2

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

變更記錄

下表說明元件每個版本中的變更。

版本

變更

2.3.1
錯誤修復和改進

修正本機 MQTT 用戶端進入中斷連線迴圈的問題。

2.3.0
新功能

新增 MQTT5 支援,以便在 MQTT 來源AWS IoT Core與本地 MQTT 來源之間進行橋接。

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 主題萬用字元 (#+) 的支援。

    此功能需要 v2.6.0 或更高版 Greeng rass 核成分。

  • 新增選targetTopicPrefix項,您可以指定該選項來設定 MQTT 橋接器,以便在轉送郵件時將首碼新增至目標主題。

2.1.1

錯誤修復和改進
  • 修正此元件如何處理組態重設更新的問題。

  • 當憑證旋轉時,降低 MQTT 用戶端中斷連線的頻率。

2.1.0

新功能
  • 新增brokerUri參數,可讓您使用非預設 MQTT 代理程式連接埠。

2.0.1

此版本包括錯誤修復和改進。

2.0.0

初始版本。