本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
MQTT 主題會識別 AWS IoT message. AWS IoT clients 透過提供訊息主題名稱來識別他們發佈的訊息。用戶端能透過用 AWS IoT Core註冊主題篩選條件,來識別想要訂閱 (接收) 的簡訊。訊息代理程式使用主題名稱和主題篩選條件,將訊息從發佈用戶端路由至訂閱用戶端。
訊息代理程式會使用主題來識別使用 MQTT 傳送和使用 HTTP 傳送至 HTTPS 訊息 URL 的訊息
雖然 AWS IoT 支援某些預留系統主題,但大多數 MQTT 主題都是由您建立和管理,System designer. AWS IoT us 主題可用來識別從發佈用戶端接收的訊息,並選取要傳送給訂閱用戶端的訊息,如以下各節所述。為您的系統建立主題命名空間之前,請檢閱 MQTT 主題的特性,以建立最適合您 IoT 系統的主題名稱階層。
主題名稱
主題名稱和主題篩選條件均為 UTF-8 編碼的字串。它們可以使用正斜線 (/) 字元來表示資訊層級,以分離層次的層級。例如,本主題名稱會提及房間 1 中的溫度感應器:
-
sensor/temperature/room1
在此範例中,其他房間中可能也有其他類型的感應器,例如主題名稱為:
-
sensor/temperature/room2
-
sensor/humidity/room1
-
sensor/humidity/room2
注意
考慮系統中的訊息主題名稱時,請謹記:
-
主題名稱和主題篩選條件會區分大小寫。
-
主題名稱不得包含個人識別資訊。
-
以 $ 開頭的主題名稱為僅由 AWS IoT Core使用的預留主題。
-
AWS IoT Core 無法在 AWS 帳戶或 區域之間傳送或接收訊息。
如需有關設計主題名稱和命名空間的詳細資訊,請參閱我們的白皮書,針對 AWS IoT Core設計 MQTT 主題。
如需應用程式如何發佈和訂閱訊息的範例,請從 AWS IoT Core 教學課程入門 和 AWS IoT 裝置 SDK、行動 SDK 和 AWS IoT 裝置用戶端 開始。
重要
主題命名空間僅限於 AWS 帳戶 和 區域。例如, AWS 帳戶 在一個區域中使用的 sensor/temp/room1
主題與另一個區域中相同 AWS 帳戶所使用的 sensor/temp/room1
主題,或任何 AWS 帳戶 區域中的任何其他帳戶所使用的主題不同。
ARN 主題
所有主題 ARN (Amazon Resource Names) 都具有以下形式:
arn:aws:iot:
aws-region
:AWS-account-ID
:topic/Topic
例如,arn:aws:iot:us-west-2:123EXAMPLE456:topic/application/topic/device/sensor
是主題 application/topic/device/sensor
的 ARN。
主題名稱篩選條件
訂閱用戶端向訊息中介裝置註冊主題名稱篩選條件,以指定訊息中介裝置應傳送給他們的訊息主題。主題名稱篩選條件可以是訂閱單一主題名稱的單一主題名稱,也可以包含萬用字元,以同時訂閱多個主題名稱。
發佈用戶端無法在其發佈的主題名稱中使用萬用字元。
以下表格列出可用於主題篩選條件的萬用字元。
萬用字元 | 相符 | 備註 |
---|---|---|
# | 位於主題階層中及低於其層級的所有字串。 |
必須是主題篩選條件中的最後一個字元。 必須是其主題階層的層級中唯一的字元。 可以在也包含 + 萬用字元的主題篩選條件中使用。 |
+ | 包含該字元的層級中的任何字串。 |
必須是其主題階層的層級中唯一的字元。 可以在主題篩選條件的多個層級中使用。 |
對上一個感應器主題名稱範例使用萬用字元:
-
訂閱
sensor/#
會收到發佈至sensor/
、sensor/temperature
、sensor/temperature/room1
的訊息,但不會收到發佈至sensor
的訊息。 -
訂閱
sensor/+/room1
會收到發佈至sensor/temperature/room1
和sensor/humidity/room1
的訊息,但不會收到sensor/temperature/room2
和sensor/humidity/room2
的訊息。
主題篩選條件 ARN
所有主題篩選條件 ARN (Amazon Resource Names) 都具有以下形式:
arn:aws:iot:
aws-region
:AWS-account-ID
:topicfilter/TopicFilter
例如,arn:aws:iot:us-west-2:123EXAMPLE456:topicfilter/application/topic/+/sensor
是主題篩選條件 application/topic/+/sensor
的 ARN。