選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

MQTT 橋接器

焦點模式
MQTT 橋接器 - AWS IoT Greengrass

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

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

MQTT 橋接元件 (aws.greengrass.clientdevices.mqtt.Bridge) 會在用戶端裝置、本機 Greengrass 發佈/訂閱和 之間轉送 MQTT 訊息 AWS IoT Core。您可以使用此元件對自訂元件中用戶端裝置的 MQTT 訊息採取行動,並同步用戶端裝置與 AWS 雲端。

注意

用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置,用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊,請參閱與本機 IoT 裝置互動

您可以使用此元件在下列訊息代理程式之間轉送訊息:

  • Local MQTT – 本機 MQTT 代理程式會處理用戶端裝置與核心裝置之間的訊息。

  • 本機發佈/訂閱 – 本機 Greengrass 訊息代理程式會處理核心裝置上的元件之間的訊息。如需如何在 Greengrass 元件中與這些訊息互動的詳細資訊,請參閱 發佈/訂閱本機訊息

  • AWS IoT Core – AWS IoT Core MQTT 代理程式會處理 IoT 裝置和 AWS 雲端 目的地之間的訊息。如需如何在 Greengrass 元件中與這些訊息互動的詳細資訊,請參閱 發佈/訂閱 AWS IoT Core MQTT 訊息

    注意

    MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core,即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此,當您從本機 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.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 硬式

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

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

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

組態

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

2.3.0 – 2.3.2
mqttTopicMapping

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

此物件包含下列資訊:

topicMappingNameKey

此主題映射的名稱。將 topicMappingNameKey 取代為可協助您識別此主題映射的名稱。

此物件包含下列資訊:

topic

要橋接來源和目標代理程式的主題或主題篩選條件。

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

注意

若要搭配Pubsub來源代理程式使用 MQTT 主題萬用字元,您必須使用 Greengrass 核元件的 v2.6.0 或更新版本。

targetTopicPrefix

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

source

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

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

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

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

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

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 通訊協定版本。必須與 核組態中選取的 MQTT 版本相同。

請選擇下列項目:

  • mqtt3

  • mqtt5

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

預設: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

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

預設:ssl://localhost:8883

startupTimeoutSeconds

(選用) 元件啟動的秒數上限。BROKEN 如果元件超過此逾時,元件的狀態會變更為 。

預設:120

範例:組態合併更新

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

  • 在符合 AWS IoT Core 主題篩選條件clients/+/hello/world的主題上,將訊息從用戶端裝置轉送到 。

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

  • 在符合clients/+/status主題篩選條件的主題 AWS IoT Core 上,將訊息從用戶端裝置轉送到 ,並將$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 主題

注意

若要搭配Pubsub來源代理程式使用 MQTT 主題萬用字元,您必須使用 Greengrass 核元件的 v2.6.0 或更新版本。

targetTopicPrefix

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

source

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

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

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

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

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

brokerUri

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

預設:ssl://localhost:8883

startupTimeoutSeconds

(選用) 元件啟動的秒數上限。BROKEN 如果元件超過此逾時,元件的狀態會變更為 。

預設:120

範例:組態合併更新

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

  • 在符合 AWS IoT Core 主題篩選條件clients/+/hello/world的主題上,將訊息從用戶端裝置轉送到 。

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

  • 在符合clients/+/status主題篩選條件的主題 AWS IoT Core 上,將訊息從用戶端裝置轉送到 ,並將$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 主題

注意

若要搭配Pubsub來源代理程式使用 MQTT 主題萬用字元,您必須使用 Greengrass 核元件的 v2.6.0 或更新版本。

targetTopicPrefix

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

source

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

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

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

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

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

brokerUri

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

預設:ssl://localhost:8883

範例:組態合併更新

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

  • 在符合 AWS IoT Core 主題篩選條件clients/+/hello/world的主題上,將訊息從用戶端裝置轉送到 。

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

  • 在符合clients/+/status主題篩選條件的主題 AWS IoT Core 上,將訊息從用戶端裝置轉送到 ,並將$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 訊息代理程式。

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

brokerUri

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

預設:ssl://localhost:8883

範例:組態合併更新

下列範例組態更新會指定 ,在 clients/MyClientDevice1/hello/worldclients/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

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

此物件包含下列資訊:

topicMappingNameKey

此主題映射的名稱。將 topicMappingNameKey 取代為可協助您識別此主題映射的名稱。

此物件包含下列資訊:

topic

在來源和目標代理程式之間橋接的主題或主題篩選條件。

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

source

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

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

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

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

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

範例:組態合併更新

下列範例組態更新會指定 ,在 clients/MyClientDevice1/hello/worldclients/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" } } }
mqttTopicMapping

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

此物件包含下列資訊:

topicMappingNameKey

此主題映射的名稱。將 topicMappingNameKey 取代為可協助您識別此主題映射的名稱。

此物件包含下列資訊:

topic

要橋接來源和目標代理程式的主題或主題篩選條件。

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

注意

若要搭配Pubsub來源代理程式使用 MQTT 主題萬用字元,您必須使用 Greengrass 核元件的 v2.6.0 或更新版本。

targetTopicPrefix

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

source

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

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

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

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

    注意

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

sourcetarget 必須不同。

target

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

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

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

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

    注意

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

sourcetarget 必須不同。

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 通訊協定版本。必須與 核組態中選取的 MQTT 版本相同。

請選擇下列項目:

  • mqtt3

  • mqtt5

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

預設: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

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

預設:ssl://localhost:8883

startupTimeoutSeconds

(選用) 元件啟動的秒數上限。BROKEN 如果元件超過此逾時,元件的狀態會變更為 。

預設:120

範例:組態合併更新

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

  • 在符合 AWS IoT Core 主題篩選條件clients/+/hello/world的主題上,將訊息從用戶端裝置轉送到 。

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

  • 在符合clients/+/status主題篩選條件的主題 AWS IoT Core 上,將訊息從用戶端裝置轉送到 ,並將$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" } }

本機日誌檔案

此元件使用與 Greengrass 核元件相同的日誌檔案。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
/greengrass/v2/logs/greengrass.log
檢視此元件的日誌
  • 在核心裝置上執行下列命令,以即時檢視此元件的日誌檔案。將 /greengrass/v2C:\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
    sudo tail -f /greengrass/v2/logs/greengrass.log

變更記錄

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

版本

變更

2.3.2

針對用戶端裝置驗證 2.5.0 版更新版本。

2.3.1
錯誤修正和改善

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

2.3.0
新功能

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

    此功能需要 2.6.0 版或更新版本的 Greengrass 核元件

  • 新增 選項,您可以指定此targetTopicPrefix選項來設定 MQTT 橋接器,以在轉送訊息時將字首新增至目標主題。

2.1.1

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

  • 降低憑證輪換時 MQTT 用戶端中斷連線的頻率。

2.1.0

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

2.0.1

此版本包含錯誤修正和改善。

2.0.0

初始版本。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。