終止支援通知: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
指定的 。 - 變數值的可用性
-
根據預設,如果變數的值是在事件中設定,則無法使用其新值,或用於評估相同群組中其他事件的條件。新值無法用於相同
onInput
、onEnter
或onExit
欄位中的事件條件。在偵測器模型定義中設定
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
只能看到變數的值,如同在處理輸入開始時,再由 中指定的任何動作變更onInput
。onEnter
和 也是如此onExit
。當我們進入或退出 狀態時對變數所做的任何變更,都不適用於相同onEnter
或onExit
欄位指定的其他條件。 - 更新偵測器模型時的延遲
-
如果您更新、刪除和重新建立偵測器模型 (請參閱 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`