下面是我的意見,你的結論。下面
i。從該圖中理解什麼是每當一個東西通過消息代理,事陰影和規則引擎 部同時得到相同的傳感器數據,並且處理它發送一個 數據到平臺。
事物影子的變化可以觸發規則引擎中註冊的操作。有一個specific topics與事件影子相關聯,您可以訂閱規則引擎,以便執行一個或多個操作作爲響應。
事情影子系統訂閱郵件經紀人並獲取傳感器 數據,更新他們的影子演員。影子側還負責存儲傳感器數據,例如事件採購機制。
您可以使用REST API或dedicated MQTT topics發佈特定陰影主題來更新設備陰影。正如你所說,陰影本身並不構成事件源系統,而是與物理設備相關的數據模型的表示。
但是,您可以創建一個規則,以偵聽一個或多個影子實例上的更改,並以時間序列方式將更改註冊到DynamoDB中。然後,您將擁有一個事件採購系統,允許您存儲設備在任意時間內發送的以前的狀態或更改。
事情影子系統不會執行任何規則,它只是 進行採購活動,並保持最後已知的狀態在虛擬 事演員。
事物影子保持雲中物理設備的期望和報告狀態。它不執行規則,但在影子內發生事件時在MQTT主題上發出消息。這些消息可以被規則引擎捕獲以執行操作。
相同的傳感器數據也是規則引擎的入站數據。規則 引擎就是和ECA(事件條件動作)類型系統, 處理流數據並決定它將如何處理它們。這個 意味着每個傳入數據最終將在規則引擎 部分中處理。
規則引擎默認情況下不會在MQTT主題上偵聽,因此也不會在設備發送到設備網關的數據上偵聽。您必須在規則引擎中註冊您想要聽的主題及其關聯的操作。
除此之外,規則引擎允許您在ANSI SQL中描述您的規則,這意味着您可以指定數據的來源(您的SQL語句中的FROM
),JSON負載中的特定字段有興趣捕獲(SELECT
),以及一個可選條件,指定應該觸發規則的條件(WHERE
)。
規則偵聽的虛構話題device/+/telemetry
和興趣在獲取所有字段中接收到的有效載荷的一個例子是:
SELECT * FROM device/+/telemetry
注意+
如何被用作任何設備標識符的佔位符例如。
感謝您的詳細解答。我想知道規則SQL如何存儲的一件事。在他們的陰影或規則引擎?我假設所有的SQL都保存在相關的事物陰影中。當影子接收到事件時,它會將帶有規則SQL的事件發送到規則引擎。它是否正確 ? – ccobanoglu
這些規則由AWS管理,它們存儲在這裏並不真正相關。這些規則實際上並不需要對影子做任何事情,他們必須處理MQTT主題,這是與規則引擎進行通信的接口。而陰影恰巧會在這些主題上發出事件,這就是您如何將陰影與規則引擎集成在一起的方式。 –