AWS IoT Events restrizioni e limitazioni del modello di rilevatore - AWS IoT Events

Avviso di fine del supporto: il 20 maggio 2026, AWS terminerà il supporto per AWS IoT Events. Dopo il 20 maggio 2026, non potrai più accedere alla AWS IoT Events console o AWS IoT Events alle risorse. Per ulteriori informazioni, consulta AWS IoT Events Fine del supporto.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS IoT Events restrizioni e limitazioni del modello di rilevatore

I seguenti aspetti sono importanti da considerare quando si crea un modello di rilevatore.

Come usare il campo actions

Il actions campo è un elenco di oggetti. È possibile avere più di un oggetto, ma è consentita una sola azione in ogni oggetto.

Esempio
"actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } { "setVariable": { "variableName": "temperatureIsTooHigh", "value": "$variable.temperatureIsTooHigh - 1" } } ]
Come usare il condition campo

Il condition campo è obbligatorio per gli altri casi transitionEvents ed è facoltativo.

Se il condition campo non è presente, è equivalente a"condition": true.

Il risultato della valutazione di un'espressione condizionale deve essere un valore booleano. Se il risultato non è un valore booleano, è equivalente false e non avvierà la transizione actions o verso il valore specificato nell'nextStateevento.

Disponibilità di valori variabili

Per impostazione predefinita, se il valore di una variabile è impostato in un evento, il nuovo valore non è disponibile o non viene utilizzato per valutare le condizioni di altri eventi dello stesso gruppo. Il nuovo valore non è disponibile o non è utilizzato in una condizione di evento nello stesso onInput onExit campo onEnter o.

Imposta il evaluationMethod parametro nella definizione del modello del rilevatore per modificare questo comportamento. Quando evaluationMethod è impostato suSERIAL, le variabili vengono aggiornate e le condizioni degli eventi vengono valutate nell'ordine in cui gli eventi sono definiti. Altrimenti, quando è impostato BATCH o evaluationMethod è impostato come predefinito, le variabili all'interno di uno stato vengono aggiornate e gli eventi all'interno di uno stato vengono eseguiti solo dopo aver valutato tutte le condizioni dell'evento.

Nello "Dangerous" stato, nel onInput campo, "$variable.pressureThresholdBreached" viene diminuito di uno nel "Pressure Okay" caso in cui la condizione sia soddisfatta (quando la pressione in ingresso corrente è inferiore o uguale a 70).

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

Il rilevatore dovrebbe tornare allo "Normal" stato quando "$variable.pressureThresholdBreached" raggiunge lo 0 (ovvero quando il rilevatore ha ricevuto tre letture di pressione contigue inferiori o uguali a 70). L'"BackToNormal"evento in transitionEvents deve verificare che "$variable.pressureThresholdBreached" sia minore o uguale a 1 (non a 0) e inoltre verificare nuovamente che il valore corrente fornito da "$input.PressureInput.sensorData.pressure" sia inferiore o uguale a 70.

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

Altrimenti, se la condizione verifica solo il valore della variabile, due letture normali seguite da una lettura di sovrapressione soddisferebbero la condizione e tornerebbero allo stato. "Normal" La condizione sta esaminando il valore che "$variable.pressureThresholdBreached" è stato dato durante la precedente elaborazione di un input. Il valore della variabile viene ripristinato a 3 nell'"Overpressurized"evento, ma ricordate che questo nuovo valore non è ancora disponibile per nessunocondition.

Per impostazione predefinita, ogni volta che un controllo entra nel onInput campo, a condition può vedere il valore di una variabile solo com'era all'inizio dell'elaborazione dell'input, prima che venga modificato dalle azioni specificate inonInput. Lo stesso vale per onEnter eonExit. Qualsiasi modifica apportata a una variabile quando entriamo o usciamo dallo stato non è disponibile per altre condizioni specificate nella stessa onEnter o onExit nei campi.

Latenza durante l'aggiornamento di un modello di rilevatore

Se si aggiorna, si elimina e si ricrea un modello di rilevatore (vedi UpdateDetectorModel), c'è un certo ritardo prima che tutti i rilevatori (istanze) generati vengano eliminati e il nuovo modello venga utilizzato per ricreare i rilevatori. Vengono ricreati dopo l'entrata in vigore del nuovo modello di rilevatore e l'arrivo di nuovi input. Durante questo periodo gli input potrebbero continuare a essere elaborati dai rilevatori generati dalla versione precedente del modello di rilevatore. Durante questo periodo, potreste continuare a ricevere gli avvisi definiti dal modello di rilevatore precedente.

Spazi nei tasti di input

Gli spazi sono consentiti nelle chiavi di input, ma i riferimenti alla chiave devono essere racchiusi tra parentesi inverse, sia nella definizione dell'attributo di input che quando il valore della chiave è referenziato in un'espressione. Ad esempio, dato un payload di messaggi come il seguente:

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

Utilizzate quanto segue per definire l'input.

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

In un'espressione condizionale, è necessario fare riferimento al valore di qualsiasi chiave di questo tipo utilizzando anche i backtick.

$input.PressureInput.sensorData.`motor pressure`