AWS IoT Events Problemi e soluzioni comuni - AWS IoT Events

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 risolverli. 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 per OnEnterOnInput, ed OnExit 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 transizione actions or verso il valore specificato nell'nextStateevento.

Per ulteriori informazioni, consulta 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 messaggi MQTT o avvisi SNS.

Se si aggiorna, si elimina o si ricrea un modello di rilevatore (vedi UpdateDetectorModello), 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 onEnteronExit, 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 BatchPutMessage per 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 un'API.

Verifica che OpenSSL utilizzi TLS 1.1 o una versione successiva per stabilire la connessione. Questa dovrebbe essere l'impostazione predefinita nella maggior parte delle distribuzioni Linux o Windows versione 7 e successive. Gli utenti di macOS potrebbero dover aggiornare OpenSSL.

InvalidRequestException messaggio

Ricevo InvalidRequestException quando tento di chiamare CreateDetectorModel e le UpdateDetectorModel API.

Controlla quanto segue per risolvere il problema. Per ulteriori informazioni, consulta CreateDetectorModello e UpdateDetectormodello.

  • Assicurati di non utilizzarli entrambi seconds e durationExpression come parametri SetTimerAction 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 <timer-name> può essere convertita in un numero.

    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 <timer-name> è maggiore di 31622440. Per garantire la precisione, assicurati che l'espressione di durata si riferisca a un valore compreso tra 60-31622400.

    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 <timer-name> è inferiore a 60. Per garantire la precisione, assicurati che l'espressione di durata si riferisca a un valore compreso tra 60-31622400.

    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: <timer-name> 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.

    Assicurati che l'espressione stringa si riferisca alle variabili e agli input esistenti. L'espressione stringa può contenere numeri, variabili ($variable.variable-name) e valori di input ($input.input-name.path-to-datum).

  • Errore: impossibile impostare il timer denominato<timer-name>. Controlla l'espressione della durata e riprova.

    Guarda l'SetTimerazione Azione 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. <action-type> Inserisci un'espressione di contenuto con la sintassi corretta.

    L'espressione di contenuto può contenere stringhe ('string'), variabili (), valori di input ($variable.variable-name), concatenazioni di stringhe e stringhe che contengono. $input.input-name.path-to-datum ${}

  • Errore: l'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 valore booleano o un numero. Se la convalida fallisce, potresti ricevere questo errore.

  • Avviso: l'azione è stata eseguita, ma non siamo riusciti a valutare l'espressione di contenuto per il payload dell'azione in un formato JSON valido. Il tipo di payload definito è JSON.

    Assicurati che sia in AWS IoT Events grado di valutare l'espressione di contenuto per il payload dell'azione utilizzando un codice JSON valido, se definisci il tipo di payload come. JSON AWS IoT Events esegue l'azione anche se non AWS IoT Events riesce a valutare l'espressione di contenuto in un formato JSON valido.

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("time-name") funzione richiede una stringa con virgolette doppie come argomento. Se si utilizza un riferimento per il valore timer-name, è necessario fare riferimento a una stringa tra virgolette doppie.

    timeout("timer-name")
    Nota

    Per la convert(type, expression) funzione, se si utilizza un riferimento per il valore del tipo, il risultato valutato del riferimento deve essereString, Decimal o. Boolean

Per ulteriori informazioni, consulta Riferimenti.

Impossibile inviare il messaggio a AWS IoT Events

Messaggio: Impossibile inviare il messaggio a Iot Events

È possibile che si verifichi 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 percorso JSON 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 Creare un input nel riquadro di navigazione per imparare a definire AWS IoT Events gli input.