Aviso de fim do suporte: em 20 de maio de 2026, AWS encerrará o suporte para AWS IoT Events. Depois de 20 de maio de 2026, você não poderá mais acessar o AWS IoT Events console ou os AWS IoT Events recursos. Para obter mais informações, consulte AWS IoT Events Fim do suporte.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS IoT Events restrições e limitações do modelo de detector
É importante considerar o seguinte ao criar um modelo de detector.
- Como usar o campo
actions
-
O campo
actions
é uma lista de objetos. Você pode ter mais de um objeto, mas somente uma ação é permitida em cada objeto.exemplo
"actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } { "setVariable": { "variableName": "temperatureIsTooHigh", "value": "$variable.temperatureIsTooHigh - 1" } } ]
- Como usar o campo
condition
-
O
condition
é obrigatório para otransitionEvents
e opcional em outros casos.Se o campo
condition
não estiver presente, ele é equivalente ao"condition": true
.O resultado da avaliação de uma expressão de condição deverá ser um valor booliano. Se o resultado não for um valor booliano, ele é equivalente ao
false
e não iniciará oactions
ou fará a transição para onextState
especificado no evento. - Disponibilidade de valores variáveis
-
Por padrão, se o valor de uma variável for definido em um evento, seu novo valor não estará disponível nem será usado para avaliar condições em outros eventos no mesmo grupo. O novo valor não está disponível nem é usado em uma condição de evento no mesmo campo
onInput
,onEnter
ouonExit
.Defina o parâmetro
evaluationMethod
na definição do modelo do detector para alterar esse comportamento. Quando oevaluationMethod
é definido comoSERIAL
, as variáveis são atualizadas e as condições do evento são avaliadas na ordem em que os eventos são definidos. Caso contrário, quando oevaluationMethod
é definido comoBATCH
ou padronizado como ele, as variáveis dentro de um estado serão atualizadas e os eventos dentro de um estado serão executados somente depois que todas as condições do evento forem avaliadas.No estado
"Dangerous"
, no campoonInput
,"$variable.pressureThresholdBreached"
é diminuído em um no evento"Pressure Okay"
quando a condição é atendida (quando a entrada de corrente tem pressão menor ou igual a 70).{ "eventName": "Pressure Okay", "condition": "$input.PressureInput.sensorData.pressure <= 70", "actions": [ { "setVariable": { "variableName": "pressureThresholdBreached", "value": "$variable.pressureThresholdBreached - 1" } } ] }
O detector deve voltar ao estado
"Normal"
quando"$variable.pressureThresholdBreached"
atingir 0 (ou seja, quando o detector tiver recebido 3 leituras de pressão contíguas menores ou iguais a 70). O evento"BackToNormal"
emtransitionEvents
deve testar se"$variable.pressureThresholdBreached"
é menor ou igual a 1 (não 0) e também verificar novamente se o valor atual fornecido por"$input.PressureInput.sensorData.pressure"
é menor ou igual a 70."transitionEvents": [ { "eventName": "BackToNormal", "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1", "nextState": "Normal" } ]
Caso contrário, se a condição testar apenas o valor da variável, duas leituras normais seguidas por uma leitura de sobrepressão atenderiam à condição e retornariam ao estado
"Normal"
. A condição é analisar o valor fornecido na última vez em que"$variable.pressureThresholdBreached"
foi dado durante o tempo anterior que uma entrada foi processada. O valor da variável é redefinido para três no evento"Overpressurized"
, mas não esqueça que esse novo valor ainda não está disponível para nenhumacondition
.Por padrão, toda vez que um controle entra no campo
onInput
, umacondition
só pode ver o valor de uma variável como ela estava no início do processamento da entrada, antes de ser alterada por qualquer ação especificada noonInput
. O mesmo se aplica paraonEnter
eonExit
. Qualquer alteração feita em uma variável quando entramos ou saímos do estado não está disponível para outras condições especificadas no mesmo nos camposonEnter
ouonExit
. - Latência ao atualizar um modelo de detector
-
Se você atualizar, excluir e recriar um modelo de detector (consulte UpdateDetectorModel), haverá algum atraso até que todos os detectores gerados (instâncias) sejam excluídos e o novo modelo seja usado para recriar os detectores. Eles são recriados depois que o novo modelo de detector entra em vigor e novas entradas chegam. Durante esse período, as entradas podem continuar sendo processadas pelos detectores gerados pela versão anterior do modelo do detector. Durante esse período, é possível continuar recebendo alertas definidos pelo modelo de detector anterior.
- Espaços nas teclas de entrada
-
Espaços são permitidos nas teclas de entrada, mas as referências à chave devem estar entre crases, tanto na definição do atributo de entrada, quanto quando o valor da chave é referenciado em uma expressão. Por exemplo, dada uma carga útil de mensagem como a seguinte:
{ "motor id": "A32", "sensorData" { "motor pressure": 56, "motor temperature": 39 } }
Use o seguinte para definir a entrada.
{ "inputName": "PressureInput", "inputDescription": "Pressure readings from a motor", "inputDefinition": { "attributes": [ { "jsonPath": "sensorData.`motor pressure`" }, { "jsonPath": "`motor id`" } ] } }
Em uma expressão condicional, você também deve se referir ao valor de qualquer chave usando crases.
$input.PressureInput.sensorData.`motor pressure`