FROM 子句 - AWS IoT Core

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

FROM 子句

FROM 子句可讓主題主題篩選條件訂閱您的規則。以單引號 (') 括住主題或主題篩選條件。系統會為每則傳送到符合此處指定的主題篩選條件之 MQTT 主題的訊息觸發該規則。您可以使用主題篩選條件訂閱類似主題的群組。

範例:

發佈在主題 'topic/subtopic' 的傳入承載:{temperature: 50}

發佈在主題 'topic/subtopic-2' 的傳入承載:{temperature: 50}

SQL:"SELECT temperature AS t FROM 'topic/subtopic'"

規則已訂閱至 'topic/subtopic',因此傳入的承載會傳遞至該規則。傳送至規則動作的外寄承載為:{t: 50}。規則並未給 'topic/subtopic-2' 訂閱,因此發佈在 'topic/subtopic-2' 的訊息不會觸發該規則。

# 萬用字元範例:

您可以使用 '#'(多層級) 萬用字元,以比對一或多個特定路徑元素:

發佈在主題 'topic/subtopic' 的傳入承載:{temperature: 50}

發佈在主題 'topic/subtopic-2' 的傳入承載:{temperature: 60}

發佈在主題 'topic/subtopic-3/details' 的傳入承載:{temperature: 70}

發佈在主題 'topic-2/subtopic-x' 的傳入承載:{temperature: 80}

SQL:"SELECT temperature AS t FROM 'topic/#'"

已將該規則訂閱至開頭為 'topic' 的任何主題,因此該規則會執行三次,將傳出的 {t: 50} (表示主題/子主題)、{t: 60} (表示主題/子主題 2) 和 {t: 70} (表示主題/子主題 3/詳細資訊) 的承載傳送給其動作。它沒有訂閱 'topic-2/subtopic-x',因此不會觸發 {temperature: 80} 訊息的規則。

+ 萬用字元範例:

您可以使用 '+'(單層級) 萬用字元,以比對任何一個特定路徑元素:

發佈在主題 'topic/subtopic' 的傳入承載:{temperature: 50}

發佈在主題 'topic/subtopic-2' 的傳入承載:{temperature: 60}

發佈在主題 'topic/subtopic-3/details' 的傳入承載:{temperature: 70}

發佈在主題 'topic-2/subtopic-x' 的傳入承載:{temperature: 80}

SQL:"SELECT temperature AS t FROM 'topic/+'"

所有主題訂閱的規則有兩個路徑元素,第一個為:'topic'。規則是針對傳送至 'topic/subtopic''topic/subtopic-2' 的訊息執行,但不是針對 'topic/subtopic-3/details' (它具有比主題過濾條件更多的層級) 或 'topic-2/subtopic-x' (它不是以 topic 開頭) 執行。