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 Problemi e soluzioni comuni
Consulta la sezione seguente per risolvere gli errori e trovare le possibili soluzioni per risolvere i problemi. AWS IoT Events
Errori
- Errori di creazione del modello di rilevatore
- Aggiornamenti da un modello di rilevatore eliminato
- Errore nell'attivazione dell'azione (quando viene soddisfatta una condizione)
- Errore nell'attivazione dell'azione (quando si supera una soglia)
- Utilizzo errato dello stato
- Messaggio di connessione
- InvalidRequestException messaggio
- Errori di Amazon CloudWatch Logs action.setTimer
- Errori del CloudWatch payload di Amazon
- Tipi di dati incompatibili
- Impossibile inviare il messaggio a AWS IoT Events
Errori di creazione del modello di rilevatore
Quando tento di creare un modello di rilevatore, ricevo degli errori.
Quando si crea un modello di rilevatore, è necessario considerare le seguenti limitazioni.
-
È consentita una sola azione in ogni
action
campo. -
condition
È richiesto pertransitionEvents
. È facoltativo perOnEnter
OnInput
, edOnExit
eventi. -
Se il
condition
campo è vuoto, il risultato valutato dell'espressione della condizione è equivalente atrue
. -
Il risultato valutato dell'espressione della condizione deve essere un valore booleano. Se il risultato non è un valore booleano, è equivalente
false
e non attiva la transizioneactions
or verso il valore specificato nell'nextState
evento.
Per ulteriori informazioni, consulta AWS IoT Events restrizioni e limitazioni del modello di rilevatore.
Aggiornamenti da un modello di rilevatore eliminato
Ho aggiornato o eliminato un modello di rilevatore qualche minuto fa, ma continuo a ricevere aggiornamenti sullo stato del vecchio modello di rilevatore tramite MQTT messaggi o avvisi. SNS
Se aggiorni, elimini o ricrei un modello di rilevatore (vedi UpdateDetectorModel), c'è un ritardo prima che tutte le istanze del rilevatore vengano eliminate e venga utilizzato il nuovo modello. Durante questo periodo, gli input potrebbero continuare a essere elaborati dalle istanze della versione precedente del modello di rilevatore. È possibile continuare a ricevere avvisi definiti dal modello di rilevatore precedente. Attendi almeno sette minuti prima di ricontrollare l'aggiornamento o segnalare un errore.
Errore nell'attivazione dell'azione (quando viene soddisfatta una condizione)
Il rilevatore non riesce ad attivare un'azione o passare a un nuovo stato quando la condizione è soddisfatta.
Verificate che il risultato valutato dell'espressione condizionale del rilevatore sia un valore booleano. Se il risultato non è un valore booleano, è equivalente false
e non attiva la transizione action
or verso il valore specificato nell'evento. nextState
Per ulteriori informazioni, consulta Sintassi delle espressioni condizionali.
Errore nell'attivazione dell'azione (quando si supera una soglia)
Il rilevatore non attiva un'azione o una transizione di eventi quando la variabile in un'espressione condizionale raggiunge un valore specificato.
Se si aggiorna setVariable
peronInput
, o onEnter
onExit
, il nuovo valore non viene utilizzato per valutarne uno condition
durante il ciclo di elaborazione corrente. Il valore originale viene invece utilizzato fino al completamento del ciclo corrente. È possibile modificare questo comportamento impostando il evaluationMethod
parametro nella definizione del modello del rilevatore. Quando evaluationMethod
è impostato suSERIAL
, le variabili vengono aggiornate e le condizioni degli eventi valutate nell'ordine in cui gli eventi sono definiti. Quando evaluationMethod
è impostata su BATCH
(impostazione predefinita), le variabili vengono aggiornate e gli eventi vengono eseguiti solo dopo aver valutato tutte le condizioni dell'evento.
Utilizzo errato dello stato
Il rilevatore entra negli stati errati quando tento di inviare messaggi agli ingressi utilizzando. BatchPutMessage
Se si utilizza BatchPutMessageper inviare più messaggi agli input, l'ordine in cui i messaggi o gli input vengono elaborati non è garantito. Per garantire l'ordine, invia i messaggi uno alla volta e attendi ogni volta che confermi l'avvenuta BatchPutMessage
operazione.
Messaggio di connessione
Ricevo un ('Connection aborted.', error(54,
'Connection reset by peer'))
errore quando tento di chiamare o richiamare unAPI.
Verifica che Open SSL utilizzi la TLS 1.1 o una versione successiva per stabilire la connessione. Questa dovrebbe essere l'impostazione predefinita nella maggior parte delle distribuzioni Linux o nella versione Windows 7 e successive. Gli utenti di macOS potrebbero dover aggiornare Open. SSL
InvalidRequestException messaggio
Ricevo InvalidRequestException quando cerco di chiamare CreateDetectorModel
e UpdateDetectorModel
APIs.
Controlla quanto segue per risolvere il problema. Per ulteriori informazioni, consulta CreateDetectorModele UpdateDetectorModel.
-
Assicurati di non utilizzarli entrambi
seconds
edurationExpression
come parametri diSetTimerAction
contemporaneamente. -
Assicurati che l'espressione stringa for
durationExpression
sia valida. L'espressione stringa può contenere numeri, variabili ($variable.<variable-name>
) o valori di input ($input.<input-name>.<path-to-datum>
).
Errori di Amazon CloudWatch Logs action.setTimer
Puoi configurare Amazon CloudWatch Logs per monitorare le istanze del modello di AWS IoT Events rilevatore. Di seguito sono riportati gli errori più comuni generati da AWS IoT Events, quando si utilizza. action.setTimer
-
Errore: l'espressione della durata per il timer denominato non
può essere convertita in un numero.<timer-name>
Assicurati che l'espressione stringa per
durationExpression
possa essere convertita in un numero. Altri tipi di dati, come quelli booleani, non sono consentiti. -
Errore: il risultato valutato dell'espressione di durata per il timer denominato
è maggiore di 31622440. Per garantire la precisione, assicurati che l'espressione di durata si riferisca a un valore compreso tra 60-31622400.<timer-name>
Assicurati che la durata del timer sia inferiore o uguale a 31622400 secondi. Il risultato valutato della durata viene arrotondato per difetto al numero intero più vicino.
-
Errore: il risultato valutato dell'espressione di durata per il timer denominato
è inferiore a 60. Per garantire la precisione, assicurati che l'espressione di durata si riferisca a un valore compreso tra 60-31622400.<timer-name>
Assicurati che la durata del timer sia maggiore o uguale a 60 secondi. Il risultato valutato della durata viene arrotondato per difetto al numero intero più vicino.
-
Errore:
impossibile valutare l'espressione della durata per il timer denominato. Controlla i nomi delle variabili, i nomi di input e i percorsi dei dati per assicurarti di fare riferimento alle variabili e agli input esistenti.<timer-name>
Assicurati che l'espressione stringa si riferisca alle variabili e agli input esistenti. L'espressione stringa può contenere numeri, variabili (
$variable.
) e valori di input (variable-name
$input.
).input-name
.path-to-datum
-
Errore: impossibile impostare il timer denominato
<timer-name>
. Controlla l'espressione della durata e riprova.Guarda l'SetTimerActionazione per assicurarti di aver specificato i parametri corretti, quindi imposta nuovamente il timer.
Per ulteriori informazioni, consulta CloudWatch Attivare la registrazione di Amazon durante lo sviluppo di modelli di AWS IoT Events rilevatori.
Errori del CloudWatch payload di Amazon
Puoi configurare Amazon CloudWatch Logs per monitorare le istanze del modello di AWS IoT Events rilevatore. Di seguito sono riportati gli errori e gli avvisi comuni generati da AWS IoT Events, quando configuri il payload dell'azione.
-
Errore: non è stato possibile valutare la tua espressione per l'azione. Assicurati che i nomi delle variabili, i nomi di input e i percorsi dei dati si riferiscano alle variabili e ai valori di input esistenti. Inoltre, verificate che la dimensione del payload sia inferiore a 1 KB, la dimensione massima consentita di un payload.
Assicurati di inserire i nomi delle variabili, i nomi di input e i percorsi dei dati corretti. Potresti ricevere questo messaggio di errore anche se il payload dell'azione è maggiore di 1 KB.
-
Errore: non è stato possibile analizzare la tua espressione di contenuto per il payload di.
Inserisci un'espressione di contenuto con la sintassi corretta.<action-type>
L'espressione di contenuto può contenere stringhe (
'
), variabili (), valori di input (string
'$variable.
), concatenazioni di stringhe e stringhe che contengono.variable-name
$input.
input-name
.path-to-datum
${}
-
Errore: la tua espressione di payload {
expression
} non è valida. Il tipo di payload definito èJSON, quindi è necessario specificare un'espressione che AWS IoT Events restituisca una stringa.Se il tipo di payload specificato èJSON, verifica AWS IoT Events innanzitutto se il servizio è in grado di valutare l'espressione in una stringa. Il risultato valutato non può essere un booleano o un numero. Se la convalida fallisce, potresti ricevere questo errore.
-
Avviso: l'azione è stata eseguita, ma non siamo riusciti a valutare la tua espressione di contenuto affinché il payload dell'azione fosse valido. JSON Il tipo di payload definito è. JSON
Assicurati che sia AWS IoT Events possibile valutare l'espressione di contenuto affinché il payload dell'azione sia validoJSON, se definisci il tipo di payload come.
JSON
AWS IoT Events esegue l'azione anche se non AWS IoT Events può valutare l'espressione di contenuto come valida. JSON
Per ulteriori informazioni, consulta CloudWatch Attivare la registrazione di Amazon durante lo sviluppo di modelli di AWS IoT Events rilevatori.
Tipi di dati incompatibili
Messaggio: tipi di dati non compatibili [<inferred-types>
] trovati <reference>
nella seguente espressione: <expression>
Potresti ricevere questo errore per uno dei seguenti motivi:
-
I risultati valutati dei riferimenti non sono compatibili con altri operandi delle espressioni.
-
Il tipo di argomento passato a una funzione non è supportato.
Quando utilizzate riferimenti nelle espressioni, controllate quanto segue:
-
Quando utilizzate un riferimento come operando con uno o più operatori, assicuratevi che tutti i tipi di dati a cui fate riferimento siano compatibili.
Ad esempio, nell'espressione seguente, il numero intero
2
è un operando degli operatori and.==
&&
Per garantire che gli operandi siano compatibili$variable.testVariable + 1
e che$variable.testVariable
debbano fare riferimento a un numero intero o decimale.Inoltre, il numero intero
1
è un operando dell'operatore.+
Pertanto,$variable.testVariable
deve fare riferimento a un numero intero o decimale.‘$variable.testVariable + 1 == 2 && $variable.testVariable’
-
Quando utilizzate un riferimento come argomento passato a una funzione, assicuratevi che la funzione supporti i tipi di dati a cui fate riferimento.
Ad esempio, la seguente
timeout("
funzione richiede una stringa con virgolette doppie come argomento. Se si utilizza un riferimento pertime-name
")timer-name
valore, è necessario fare riferimento a una stringa con virgolette doppie.timeout("
timer-name
")Nota
Per la
convert(
funzione, se si utilizza un riferimento pertype
,expression
)type
value, il risultato valutato del riferimento deve essereString
Decimal
, oBoolean
.
Per ulteriori informazioni, consulta AWS IoT Events riferimento per input e variabili nelle espressioni.
Impossibile inviare il messaggio a AWS IoT Events
Messaggio: Impossibile inviare il messaggio a Iot Events
Potresti riscontrare questo errore per i seguenti motivi:
Il payload del messaggio di input non contiene.
Input attribute Key
non si
Input attribute Key
trova nello stesso JSON percorso specificato nella definizione di input.Il messaggio di input non corrisponde allo schema definito nell' AWS IoT Events input.
Nota
Anche l'inserimento di dati da altri servizi potrebbe fallire.
Ad esempio in AWS IoT Core, la AWS IoT regola avrà esito negativo con il seguente messaggio Verify the Input Attribute key.
Per risolvere questo problema, assicuratevi che lo schema del messaggio di input del payload sia conforme alla definizione di AWS IoT Events input e che la Input attribute Key
posizione corrisponda. Per ulteriori informazioni, consulta Crea un input per i modelli in AWS IoT Events per imparare a definire AWS IoT Events gli input.