AWS IoT Events 偵測器模型限制 - AWS IoT Events

終止支援通知:2026 年 5 月 20 日, AWS 將終止對 的支援 AWS IoT Events。2026 年 5 月 20 日之後,您將無法再存取 AWS IoT Events 主控台或 AWS IoT Events 資源。如需詳細資訊,請參閱AWS IoT Events 終止支援

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

AWS IoT Events 偵測器模型限制

建立偵測器模型時,必須考量下列事項。

如何使用 actions 欄位

actions 欄位是物件的清單。您可以有多個物件,但每個物件只允許一個動作。

範例
"actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } { "setVariable": { "variableName": "temperatureIsTooHigh", "value": "$variable.temperatureIsTooHigh - 1" } } ]
如何使用 condition 欄位

在其他情況下, transitionEvents 和 是condition必要的。

如果 condition 欄位不存在,則相當於 "condition": true

條件表達式的評估結果應為布林值。如果結果不是布林值,則等於 false 且 不會啟動 actions或 轉換至事件中nextState指定的 。

變數值的可用性

根據預設,如果變數的值是在事件中設定,則無法使用其新值,或用於評估相同群組中其他事件的條件。新值無法用於相同 onInputonEnteronExit欄位中的事件條件。

在偵測器模型定義中設定 evaluationMethod 參數,以變更此行為。將 evaluationMethod 設定為 時SERIAL,會更新變數,並依定義事件的順序評估事件條件。否則,當 evaluationMethod 設為 BATCH或預設值為 時,狀態內的變數會更新,而且只有在評估所有事件條件後,才會執行狀態內的事件。

"Dangerous" 狀態中,在 onInput 欄位,"Pressure Okay"當條件滿足時 (當目前輸入具有小於或等於 70 的壓力時), "$variable.pressureThresholdBreached" 會遞減一個。

{ "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] }

"$variable.pressureThresholdBreached"達到 0 時,偵測器應轉返 "Normal" 狀態 (即當偵測器收到三個小於或等於 70 的連續壓力讀數時)。中的"BackToNormal"事件transitionEvents必須測試"$variable.pressureThresholdBreached"小於或等於 1 (非 0),並再次驗證 提供的目前值"$input.PressureInput.sensorData.pressure"小於或等於 70。

"transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ]

否則,如果條件只測試變數的值,則兩個正常讀數,後面接著過壓讀數會滿足條件,然後轉換回 "Normal" 狀態。條件是查看在先前處理輸入時"$variable.pressureThresholdBreached"所提供的值。變數的值在 "Overpressurized" 事件中會重設為 3,但請記住,此新值尚未可供任何 使用condition

根據預設,每次控制項進入 onInput 欄位時, condition只能看到變數的值,如同在處理輸入開始時,再由 中指定的任何動作變更onInputonEnter 和 也是如此onExit。當我們進入或退出 狀態時對變數所做的任何變更,都不適用於相同 onEnteronExit 欄位指定的其他條件。

更新偵測器模型時的延遲

如果您更新、刪除和重新建立偵測器模型 (請參閱 UpdateDetectorModel),則在刪除所有產生的偵測器 (執行個體) 以及使用新模型重新建立偵測器之前會有些許延遲。它們會在新的偵測器模型生效且新的輸入到達後重新建立。在此期間,可能會繼續由先前版本的偵測器模型所產生之偵測器處理輸入。在此期間,您可能會繼續收到先前偵測器模型定義的提醒。

輸入索引鍵中的空格

輸入索引鍵中允許空格,但索引鍵的參考必須括在反引號中,包括輸入屬性的定義,以及運算式中參考索引鍵的值時。例如,提供如下的訊息承載:

{ "motor id": "A32", "sensorData" { "motor pressure": 56, "motor temperature": 39 } }

使用下列定義輸入。

{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.`motor pressure`" }, { "jsonPath": "`motor id`" } ] } }

在條件式表達式中,您還必須使用反引號參考任何此類索引鍵的值。

$input.PressureInput.sensorData.`motor pressure`