

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](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

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à.

# Risoluzione dei problemi AWS IoT Events
<a name="iotevents-troubleshooting"></a>

 Questa guida alla risoluzione dei problemi fornisce soluzioni ai problemi più comuni che potresti riscontrare durante l'utilizzo AWS IoT Events. Sfoglia gli argomenti per identificare e risolvere i problemi relativi al rilevamento di eventi, all'accesso ai dati, alle autorizzazioni, alle integrazioni dei servizi, alle configurazioni dei dispositivi e altro ancora. Con consigli per la risoluzione dei problemi relativi a AWS IoT Events console, API, CLI, errori, latenza e integrazioni, questa guida mira a risolvere rapidamente i problemi in modo da poter creare applicazioni basate sugli eventi affidabili e scalabili.

**Topics**
+ [AWS IoT Events Problemi e soluzioni comuni](iotevents-error-messages.md)
+ [Risoluzione dei problemi di un modello di rilevatore eseguendo analisi in AWS IoT Events](iotevents-analyze-api.md)

# AWS IoT Events Problemi e soluzioni comuni
<a name="iotevents-error-messages"></a>

Consulta la sezione seguente per risolvere gli errori e trovare le possibili soluzioni per risolvere i problemi. AWS IoT Events

**Topics**
+ [Errori di creazione del modello di rilevatore](#create-detector-model)
+ [Aggiornamenti da un modello di rilevatore eliminato](#update-detector-model)
+ [Errore nell'attivazione dell'azione (quando viene soddisfatta una condizione)](#no-action)
+ [Errore nell'attivazione dell'azione (quando si supera una soglia)](#trigger-action)
+ [Utilizzo errato dello stato](#wrong-state)
+ [Messaggio di connessione](#connection-aborted-error)
+ [InvalidRequestException messaggio](#invalid-request)
+ [Errori di Amazon CloudWatch Logs `action.setTimer`](#cw-logs-timer)
+ [Errori del CloudWatch payload di Amazon](#cw-logs-payload)
+ [Tipi di dati incompatibili](#troubleshoot-expressions-incompatible-data-types)
+ [Impossibile inviare il messaggio a AWS IoT Events](#failed-to-send-to-iot-events)

## Errori di creazione del modello di rilevatore
<a name="create-detector-model"></a>

Quando tento di creare un modello di rilevatore, ricevo degli errori.

### Soluzione
<a name="w2aac42c11b7b5b1b1"></a>

 Quando si crea un modello di rilevatore, è necessario considerare le seguenti limitazioni. 
+ È consentita una sola azione in ogni `action` campo.
+ `condition`È richiesto per`transitionEvents`. È facoltativo per `OnEnter``OnInput`, ed `OnExit` eventi. 
+ Se il `condition` campo è vuoto, il risultato valutato dell'espressione della condizione è equivalente a`true`. 
+ 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'`nextState`evento. 

Per ulteriori informazioni, consulta [AWS IoT Events restrizioni e limitazioni del modello di rilevatore](iotevents-restrictions-detector-model.md). 

## Aggiornamenti da un modello di rilevatore eliminato
<a name="update-detector-model"></a>

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.

### Soluzione
<a name="w2aac42c11b9b5b1b1"></a>

Se si aggiorna, si elimina o si ricrea un modello di rilevatore (vedi [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html)), 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)
<a name="no-action"></a>

Il rilevatore non riesce ad attivare un'azione o passare a un nuovo stato quando la condizione è soddisfatta.

### Soluzione
<a name="w2aac42c11c11b5b1b1"></a>

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.](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-conditional-expressions.html) 

## Errore nell'attivazione dell'azione (quando si supera una soglia)
<a name="trigger-action"></a>

Il rilevatore non attiva un'azione o una transizione di eventi quando la variabile in un'espressione condizionale raggiunge un valore specificato.

### Soluzione
<a name="w2aac42c11c13b5b1b1"></a>

Se si aggiorna `setVariable` per`onInput`, 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 su`SERIAL`, 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
<a name="wrong-state"></a>

Il rilevatore entra negli stati errati quando tento di inviare messaggi agli ingressi utilizzando. `BatchPutMessage`

### Soluzione
<a name="w2aac42c11c15b5b1b1"></a>

 Se si utilizza [BatchPutMessage](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)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
<a name="connection-aborted-error"></a>

Ricevo un `('Connection aborted.', error(54, 'Connection reset by peer'))` errore quando tento di chiamare o richiamare un'API.

### Soluzione
<a name="w2aac42c11c17b5b1b1"></a>

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
<a name="invalid-request"></a>

Ricevo InvalidRequestException quando cerco di chiamare `CreateDetectorModel` e `UpdateDetectorModel` APIs.

### Soluzione
<a name="w2aac42c11c19b5b1b1"></a>

Controlla quanto segue per risolvere il problema. Per ulteriori informazioni, consultare [CreateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateDetectorModel.html) e [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html).
+ 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`
<a name="cw-logs-timer"></a>

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.

### Soluzione
<a name="w2aac42c11c21b5b1b3b1b1"></a>

   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.

### Soluzione
<a name="w2aac42c11c21b5b3b3b1b1"></a>

   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.

### Soluzione
<a name="w2aac42c11c21b5b5b3b1b1"></a>

   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. 

### Soluzione
<a name="w2aac42c11c21b5b7b3b1b1"></a>

   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.

### Soluzione
<a name="w2aac42c11c21b5b9b3b1b1"></a>

   Guarda l'[SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html)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](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs). 

## Errori del CloudWatch payload di Amazon
<a name="cw-logs-payload"></a>

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.

### Soluzione
<a name="w2aac42c11c23b5b1b3b1b1"></a>

   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.

### Soluzione
<a name="w2aac42c11c23b5b3b3b1b1"></a>

   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 \$1\$1 non è valida. *expression* Il tipo di payload definito è JSON, quindi è necessario specificare un'espressione che AWS IoT Events restituisca una stringa.

### Soluzione
<a name="w2aac42c11c23b5b5b5b1b1"></a>

   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 l'espressione di contenuto per il payload dell'azione in un formato JSON valido. Il tipo di payload definito è JSON.

### Soluzione
<a name="w2aac42c11c23b5b7b3b1b1"></a>

   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](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs).

## Tipi di dati incompatibili
<a name="troubleshoot-expressions-incompatible-data-types"></a>

Messaggio: tipi di dati non compatibili [`<inferred-types>`] trovati `<reference>` nella seguente espressione: `<expression>`

### Soluzione
<a name="w2aac42c11c25b5b1b1"></a>

 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:<a name="expression-reference-type-compatibility"></a>
+ 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 *timer-name* valore, è 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 *type* valore, il risultato valutato del riferimento deve essere `String``Decimal`, o`Boolean`.

Per ulteriori informazioni, consulta [AWS IoT Events riferimento per input e variabili nelle espressioni](iotevents-expressions.md#expression-reference). 

## Impossibile inviare il messaggio a AWS IoT Events
<a name="failed-to-send-to-iot-events"></a>

Messaggio: Impossibile inviare il messaggio a Iot Events

### Soluzione
<a name="w2aac42c11c27b5b1b1"></a>

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 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.

**Example**  
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](create-input-overview.md) per imparare a definire AWS IoT Events gli input.

# Risoluzione dei problemi di un modello di rilevatore eseguendo analisi in AWS IoT Events
<a name="iotevents-analyze-api"></a>

AWS IoT Events può analizzare il modello del rilevatore e generare risultati di analisi senza inviare dati di input al modello del rilevatore. AWS IoT Events esegue una serie di analisi descritte in questa sezione per verificare il modello del rilevatore. Questa soluzione avanzata per la risoluzione dei problemi riassume anche le informazioni diagnostiche, tra cui il livello di gravità e la posizione, in modo da poter individuare e risolvere rapidamente potenziali problemi nel modello del rilevatore. Per ulteriori informazioni sui tipi e sui messaggi di errore diagnostici per il modello di rilevatore in uso, vedere. [Analisi del modello di rilevatore e informazioni diagnostiche per AWS IoT Events](analyze-diagnostic-information.md)

È possibile utilizzare la AWS IoT Events console, l'[API](https://docs.aws.amazon.com/iotevents/latest/apireference/), [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/iotevents/index.html) o l'[AWS SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) per visualizzare i messaggi di errore diagnostici derivanti dall'analisi del modello di rilevatore.

**Nota**  
È necessario correggere tutti gli errori prima di poter pubblicare il modello del rilevatore.
Si consiglia di esaminare gli avvisi e di intraprendere le azioni necessarie prima di utilizzare il modello di rilevatore negli ambienti di produzione. In caso contrario, il modello del rilevatore potrebbe non funzionare come previsto.
È possibile avere fino a 10 analisi nello `RUNNING` stato contemporaneamente.

Per informazioni su come analizzare il modello del rilevatore, consulta [Analizza un modello di rilevatore per AWS IoT Events (Console)](analyze-api-console.md) o. [Analizza un modello di rilevatore in AWS IoT Events ()AWS CLI](analyze-api-api.md) 

**Topics**
+ [Analisi del modello di rilevatore e informazioni diagnostiche per AWS IoT Events](analyze-diagnostic-information.md)
+ [Analizza un modello di rilevatore per AWS IoT Events (Console)](analyze-api-console.md)
+ [Analizza un modello di rilevatore in AWS IoT Events ()AWS CLI](analyze-api-api.md)

# Analisi del modello di rilevatore e informazioni diagnostiche per AWS IoT Events
<a name="analyze-diagnostic-information"></a>

Le analisi dei modelli di rivelatori raccolgono le seguenti informazioni diagnostiche:
+ **Livello**: il livello di gravità del risultato dell'analisi. In base al livello di gravità, i risultati dell'analisi rientrano in tre categorie generali:
  + **Informazioni** (`INFO`): un risultato informativo indica un campo significativo nel modello del rilevatore. Questo tipo di risultato di solito non richiede un'azione immediata.
  + **Avviso** (`WARNING`): il risultato di un avviso richiama l'attenzione in particolare sui campi che potrebbero causare problemi al modello del rilevatore. Si consiglia di esaminare gli avvisi e intraprendere le azioni necessarie prima di utilizzare il modello di rilevatore negli ambienti di produzione. In caso contrario, il modello del rilevatore potrebbe non funzionare come previsto.
  + **Error** (`ERROR`): il risultato di un errore segnala un problema riscontrato nel modello del rilevatore. AWS IoT Events esegue automaticamente questo set di analisi quando si tenta di pubblicare il modello del rilevatore. È necessario correggere tutti gli errori prima di poter pubblicare il modello del rilevatore.
+ **Posizione**: contiene informazioni che è possibile utilizzare per individuare il campo nel modello del rilevatore a cui fa riferimento il risultato dell'analisi. Una posizione include in genere il nome dello stato, il nome dell'evento di transizione, il nome dell'evento e l'espressione (ad esempio,`in state TemperatureCheck in onEnter in event Init in action setVariable`).
+ **Tipo**: il tipo di risultato dell'analisi. I tipi di analisi rientrano nelle seguenti categorie:
  + `supported-actions`— AWS IoT Events può richiamare azioni quando viene rilevato un evento o un evento di transizione specificato. È possibile definire azioni integrate per utilizzare un timer o impostare una variabile o inviare dati ad altri AWS servizi. È necessario specificare azioni che funzionino con altri AWS servizi in una AWS regione in cui i AWS servizi sono disponibili. 
  + `service-limits`— Le quote di servizio, note anche come limiti, sono il numero massimo o minimo di risorse o operazioni di servizio per l' AWS account. Salvo diversa indicazione, ogni quota si applica a una Regione specifica. A seconda delle esigenze aziendali, è possibile aggiornare il modello di rilevatore per evitare di incontrare limiti o richiedere un aumento della quota. Se per alcune quote è possibile richiedere aumenti, per altre non è possibile. Per ulteriori informazioni, consulta [Quote ](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-quotas.html).
+ **`structure`**— Il modello di rilevatore deve avere tutti i componenti necessari, come gli stati, e seguire una struttura che supporti. AWS IoT Events Un modello di rilevatore deve avere almeno uno stato e una condizione che valuti i dati di input in ingresso per rilevare eventi significativi. Quando viene rilevato un evento, il modello del rilevatore passa allo stato successivo e può richiamare azioni. Questi eventi sono noti come eventi di transizione. Un evento di transizione deve indicare l'ingresso dello stato successivo.
+ **`expression-syntax`**— AWS IoT Events offre diversi modi per specificare i valori durante la creazione e l'aggiornamento dei modelli di rilevatori. È possibile utilizzare valori letterali, operatori, funzioni, riferimenti e modelli di sostituzione nelle espressioni. È possibile utilizzare le espressioni per specificare valori letterali o AWS IoT Events valutare le espressioni prima di specificare valori particolari. L'espressione deve seguire la sintassi richiesta. Per ulteriori informazioni, consulta [Espressioni per filtrare, trasformare ed elaborare i dati degli eventi](iotevents-expressions.md).

  Le espressioni del modello Detector in AWS IoT Events possono fare riferimento a dati specifici o a una risorsa.
  + **`data-type`**— AWS IoT Events supporta tipi di dati interi, decimali, stringhe e booleani. Se AWS IoT Events è possibile convertire automaticamente i dati di un tipo di dati in un altro durante la valutazione delle espressioni, questi tipi di dati sono compatibili.
**Nota**  
I numeri interi e decimali sono gli unici tipi di dati compatibili supportati da. AWS IoT Events
AWS IoT Events non può valutare le espressioni aritmetiche perché non AWS IoT Events può convertire un numero intero in una stringa.
  + **`referenced-data`**— È necessario definire i dati a cui si fa riferimento nel modello del rilevatore prima di poter utilizzare i dati. Ad esempio, se si desidera inviare dati a una tabella DynamoDB, è necessario definire una variabile che faccia riferimento al nome della tabella prima di poter utilizzare la variabile in un'espressione (). `$variable.TableName`
  + **`referenced-resource`**— Le risorse utilizzate dal modello di rilevatore devono essere disponibili. È necessario definire le risorse prima di poterle utilizzare. Ad esempio, volete creare un modello di rilevatore per monitorare la temperatura di una serra. È necessario definire un input (`$input.TemperatureInput`) per indirizzare i dati di temperatura in ingresso al modello del rilevatore prima di poterlo utilizzare per fare riferimento `$input.TemperatureInput.sensorData.temperature` alla temperatura.

Consultate la sezione seguente per risolvere gli errori e trovare possibili soluzioni mediante l'analisi del modello del rilevatore.

## Risolvi gli errori del modello del rilevatore in AWS IoT Events
<a name="troubleshoot-error-messages"></a>

I tipi di errori sopra descritti forniscono informazioni diagnostiche su un modello di rilevatore e corrispondono a messaggi che potresti recuperare. Utilizzate questi messaggi e le soluzioni suggerite per risolvere gli errori relativi al modello del rilevatore.

**Topics**
+ [`Location`](#analyze-location)
+ [`supported-actions`](#analyze-supported-actions)
+ [`service-limits`](#analyze-service-limits)
+ [`structure`](#analyze-structure)
+ [`expression-syntax`](#analyze-expression-syntax)
+ [`data-type`](#analyze-data-type)
+ [`referenced-data`](#analyze-referenced-data)
+ [`referenced-resource`](#analyze-referenced-resource)

### `Location`
<a name="analyze-location"></a>

Un risultato dell'analisi con informazioni su`Location`, corrisponde al seguente messaggio di errore: 
+ **Messaggio**: contiene informazioni aggiuntive sul risultato dell'analisi. Può trattarsi di un messaggio informativo, di avviso o di errore.

#### Soluzione
<a name="w2aac42c13c13b9b7b5b1b3b1b1"></a>

   potresti ricevere questo messaggio di errore se hai specificato un'azione che AWS IoT Events attualmente non supporta. Per un elenco delle azioni supportate, consulta[Azioni supportate per ricevere dati e attivare azioni in AWS IoT Events](iotevents-supported-actions.md).

### `supported-actions`
<a name="analyze-supported-actions"></a>

Un risultato dell'analisi con informazioni su`supported‐actions`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** Tipo di azione non valido presente nella definizione dell'azione:*action-definition*.

#### Soluzione
<a name="w2aac42c13c13b9b9b5b1b3b1b1"></a>

   potresti ricevere questo messaggio di errore se hai specificato un'azione che AWS IoT Events attualmente non supporta. Per un elenco delle azioni supportate, consulta[Azioni supportate per ricevere dati e attivare azioni in AWS IoT Events](iotevents-supported-actions.md).
+ **Messaggio:** la DetectorModel definizione include un'*aws-service*azione, ma il *aws-service* servizio non è supportato nella regione*region-name*.

#### Soluzione
<a name="w2aac42c13c13b9b9b5b3b3b1b1"></a>

   potresti ricevere questo messaggio di errore se l'azione specificata è supportata da AWS IoT Events, ma l'azione non è disponibile nella tua regione corrente. Ciò potrebbe verificarsi quando si tenta di inviare dati a un AWS servizio che non è disponibile nella regione. Inoltre, devi scegliere la stessa regione per entrambi AWS IoT Events i AWS servizi che stai utilizzando.

### `service-limits`
<a name="analyze-service-limits"></a>

Un risultato dell'analisi con informazioni su`service‐limits`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** l'espressione di contenuto consentita nel payload ha superato il limite di *content-expression-size* byte previsto nell'evento *event-name* in stato. *state-name*

#### Soluzione
<a name="w2aac42c13c13b9c11b5b1b3b1b1"></a>

   potresti ricevere questo messaggio di errore se l'espressione di contenuto per il payload dell'azione è superiore a 1024 byte. La dimensione dell'espressione di contenuto per un payload può essere fino a 1024 byte.
+ **Messaggio: il** numero di stati consentiti nella definizione del modello di rilevatore ha superato il limite. *states-per-detector-model*

#### Soluzione
<a name="w2aac42c13c13b9c11b5b3b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se il modello del rilevatore ha più di 20 stati. Un modello di rilevatore può avere fino a 20 stati.
+ **Messaggio:** La durata del timer *timer-name* deve essere di almeno *minimum-timer-duration* secondi.

#### Soluzione
<a name="w2aac42c13c13b9c11b5b5b3b1b1"></a>

   potresti ricevere questo messaggio di errore se la durata del timer è inferiore a 60 secondi. È consigliabile che la durata di un timer sia compresa tra 60 e 31622400 secondi. Se si specifica un'espressione per la durata del timer, il risultato valutato dell'espressione di durata viene arrotondato per difetto al numero intero più vicino.
+ **Messaggio: il** numero di azioni consentite per evento ha superato il limite *actions-per-event* nella definizione del modello di rilevatore

#### Soluzione
<a name="w2aac42c13c13b9c11b5b7b3b1b1"></a>

   potreste ricevere questo messaggio di errore se l'evento ha più di 10 azioni. Puoi avere fino a 10 azioni per ogni evento nel tuo modello di rilevatore.
+ **Messaggio: il** numero di eventi di transizione consentiti per stato ha superato il limite *transition-events-per-state* nella definizione del modello di rilevatore.

#### Soluzione
<a name="w2aac42c13c13b9c11b5b9b3b1b1"></a>

   potreste ricevere questo messaggio di errore se lo stato presenta più di 20 eventi di transizione. È possibile avere fino a 20 eventi di transizione per ogni stato del modello di rilevatore.
+ **Messaggio: il** numero di eventi consentiti per stato ha superato il limite *events-per-state* nella definizione del modello di rilevatore

#### Soluzione
<a name="w2aac42c13c13b9c11b5c11b3b1b1"></a>

   potreste ricevere questo messaggio di errore se lo stato presenta più di 20 eventi. È possibile avere fino a 20 eventi per ogni stato del modello di rilevatore.
+ **Messaggio:** il numero massimo di modelli di rilevatore che possono essere associati a un singolo ingresso potrebbe aver raggiunto il limite. *input-name*L'input viene utilizzato nei percorsi dei modelli *detector-models-per-input* di rilevatori.

#### Soluzione
<a name="w2aac42c13c13b9c11b5c13b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di avviso se si tenta di indirizzare un input a più di 10 modelli di rilevatori. È possibile associare fino a 10 diversi modelli di rilevatore a un singolo modello di rilevatore.

### `structure`
<a name="analyze-structure"></a>

Un risultato dell'analisi con informazioni su`structure`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** le azioni possono avere un solo tipo definito, ma è stata trovata un'azione con *number-of-types* tipi. Suddividi in azioni separate.

#### Soluzione
<a name="w2aac42c13c13b9c13b5b1b3b1b1"></a>

   potresti ricevere questo messaggio di errore se hai specificato due o più azioni in un unico campo utilizzando le operazioni API per creare o aggiornare il modello del rilevatore. È possibile definire una serie di `Action` oggetti. Assicuratevi di definire ogni azione come un oggetto separato.
+ **Messaggio:** le TransitionEvent *transition-event-name* transizioni verso uno stato inesistente. *state-name*

#### Soluzione
<a name="w2aac42c13c13b9c13b5b3b3b1b1"></a>

   potresti ricevere questo messaggio di errore se non AWS IoT Events riesci a trovare lo stato successivo a cui fa riferimento l'evento di transizione. Assicurati di aver definito lo stato successivo e di aver inserito il nome dello stato corretto.
+ **Messaggio:** DetectorModelDefinition Aveva un nome di stato condiviso: stato trovato *state-name* con *number-of-states* ripetizioni.

#### Soluzione
<a name="w2aac42c13c13b9c13b5b5b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se si utilizza lo stesso nome per uno o più stati. Assicurati di assegnare un nome univoco a ogni stato del tuo modello di rilevatore. Il nome dello stato deve contenere da 1 a 128 caratteri. Caratteri validi: a-z, A-Z, 0-9, \$1 (trattino basso) e - (trattino).
+ **Messaggio:** le definizioni initialStateName *initial-state-name* non corrispondono a uno stato definito.

#### Soluzione
<a name="w2aac42c13c13b9c13b5b7b3b1b1"></a>

   potresti ricevere questo messaggio di errore se il nome dello stato iniziale non è corretto. Il modello del rilevatore rimane nello stato iniziale (iniziale) fino all'arrivo di un input. Una volta ricevuto un input, il modello del rilevatore passa immediatamente allo stato successivo. Assicuratevi che il nome dello stato iniziale sia il nome di uno stato definito e di inserire il nome corretto.
+ **Messaggio:** Detector Model Definition deve utilizzare almeno un input in una condizione.

#### Soluzione
<a name="w2aac42c13c13b9c13b5b9b3b1b1"></a>

   potresti ricevere questo errore se non hai specificato un input in una condizione. È necessario utilizzare almeno un input in almeno una condizione. Altrimenti, AWS IoT Events non valuta i dati in arrivo.
+ **Messaggio:** è possibile impostare solo uno dei secondi e DurationExpression. SetTimer

#### Soluzione
<a name="w2aac42c13c13b9c13b5c11b3b1b1"></a>

   potresti ricevere questo messaggio di errore se li hai utilizzati entrambi `seconds` e come `durationExpression` timer. Assicurati di utilizzare uno dei due `seconds` o `durationExpression` come parametri di`SetTimerAction`. Per ulteriori informazioni, consulta [SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html) nella *documentazione di riferimento dell’API AWS IoT Events *.
+  **Messaggio:** un'azione nel modello del rilevatore non è raggiungibile. Verifica la condizione che avvia l'azione. 

#### Soluzione
<a name="w2aac42c13c13b9c13b5c15b3b1b1"></a>

   se un'azione nel modello del rilevatore non è raggiungibile, la condizione dell'evento viene valutata falsa. Controllate la condizione dell'evento che contiene l'azione, per assicurarvi che risulti vera. Quando la condizione dell'evento risulta vera, l'azione dovrebbe diventare raggiungibile.
+ **Messaggio:** è in corso la lettura di un attributo di input, ma ciò può essere causato dalla scadenza del timer.

#### Soluzione
<a name="w2aac42c13c13b9c13b5c17b3b1b1"></a>

   il valore di un attributo di input può essere letto quando si verifica una delle seguenti condizioni: 
  + È stato ricevuto un nuovo valore di input.
  + Quando un timer nel rilevatore è scaduto.

  

  Per garantire che un attributo di input venga valutato solo quando viene ricevuto il nuovo valore per quell'input, includi una chiamata alla `triggerType(“Message”)` funzione nella tua condizione come segue:

  La condizione originale oggetto di valutazione nel modello del rilevatore: 

  ```
  if ($input.HeartBeat.status == “OFFLINE”)
  ```

  diventerebbe simile al seguente: 

  ```
  if ( triggerType("MESSAGE") &&  $input.HeartBeat.status == “OFFLINE”)
  ```

  dove una chiamata alla `triggerType(“Message”)` funzione precede l'input iniziale fornito nella condizione. Utilizzando questa tecnica, la `triggerType("Message")` funzione restituirà true e soddisferà la condizione di ricevere un nuovo valore di input. Per ulteriori informazioni sull'utilizzo della `triggerType` funzione, cercate `triggerType` nella sezione [Espressioni](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html) della *Guida per gli AWS IoT Events sviluppatori* 
+ **Messaggio:** Uno stato nel modello del rilevatore non è raggiungibile. Verificate la condizione che causerà la transizione allo stato desiderato.

#### Soluzione
<a name="w2aac42c13c13b9c13b5c19b3b1b1"></a>

   se uno stato del modello del rilevatore non è raggiungibile, una condizione che causa una transizione in entrata a quello stato viene valutata falsa. Verificate che le condizioni delle transizioni in entrata verso lo stato irraggiungibile nel modello del rilevatore risultino vere, in modo che lo stato desiderato possa diventare raggiungibile.
+ **Messaggio:** una scadenza del timer può causare l'invio di una quantità imprevista di messaggi.

#### Soluzione
<a name="w2aac42c13c13b9c13b5c21b3b1b1"></a>

   per evitare che il modello del rilevatore entri in uno stato infinito di invio di una quantità imprevista di messaggi a causa della scadenza di un timer, prendete in considerazione l'utilizzo di una chiamata alla `triggerType("Message")` funzione, nelle seguenti condizioni del modello di rilevatore: 

  La condizione originale da valutare nel modello del rilevatore: 

  ```
  if (timeout("awake"))
  ```

  verrebbe trasformato in una condizione simile alla seguente: 

  ```
   if (triggerType("MESSAGE") && timeout("awake")) 
  ```

  dove una chiamata alla `triggerType(“Message”)` funzione precede l'input iniziale fornito nella condizione.

  Questa modifica impedisce l'avvio di azioni del timer nel rilevatore, impedendo l'invio di un ciclo infinito di messaggi. *Per ulteriori informazioni su come utilizzare le azioni del timer nel rilevatore, consulta la pagina [Utilizzo delle azioni integrate](https://docs.aws.amazon.com/iotevents/latest/developerguide/built-in-actions.html) della Guida per gli sviluppatori AWS IoT Events *

### `expression-syntax`
<a name="analyze-expression-syntax"></a>

Un risultato dell'analisi con informazioni su`expression‐syntax`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** l'espressione di payload \$1*expression*\$1 non è valida. Il tipo di payload definito è JSON, quindi è necessario specificare un'espressione che AWS IoT Events restituisca una stringa.

#### Soluzione
<a name="w2aac42c13c13b9c15b5b1b3b1b1"></a>

   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 non riesce, potresti ricevere questo errore.
+ **Messaggio:** `SetVariableAction.value` deve essere un'espressione. Analisi del valore '' *variable-value* non riuscita

#### Soluzione
<a name="w2aac42c13c13b9c15b5b3b3b1b1"></a>

   è possibile utilizzare `SetVariableAction` per definire una variabile con un `name` e`value`. `value`Può essere una stringa, un numero o un valore booleano. È inoltre possibile specificare un'espressione per. `value` Per ulteriori informazioni [SetVariableAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetVariableAction.html), consulta la sezione *AWS IoT Events API Reference*.
+ **Messaggio:** non è stato possibile analizzare l'espressione degli attributi (*attribute-name*) per l'azione DynamoDB. Inserisci l'espressione con la sintassi corretta.

#### Soluzione
<a name="w2aac42c13c13b9c15b5b5b3b1b1"></a>

   è necessario utilizzare le espressioni per tutti i parametri nei `DynamoDBAction` modelli di sostituzione. *Per ulteriori informazioni, consulta [Dynamo DBAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBAction.html) nell'API Reference.AWS IoT Events *
+ **Messaggio:** non è stato possibile analizzare la tua espressione del Tablename per l'azione Dynamo. DBv2 Inserisci l'espressione con la sintassi corretta.

#### Soluzione
<a name="w2aac42c13c13b9c15b5b7b3b1b1"></a>

   il `tableName` pin `DynamoDBv2Action` deve essere una stringa. È necessario utilizzare un'espressione per`tableName`. Le espressioni accettano valori letterali, operatori, funzioni, riferimenti e modelli di sostituzione. Per ulteriori informazioni, consulta [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html) nell'*AWS IoT Events API* Reference.
+ **Messaggio:** non siamo riusciti a valutare la tua espressione in un formato JSON valido. L'DBv2 azione Dynamo supporta solo il tipo di payload JSON.

#### Soluzione
<a name="w2aac42c13c13b9c15b5b9b3b1b1"></a>

   il tipo di payload per deve essere JSON. `DynamoDBv2` Assicurati che sia in AWS IoT Events grado di valutare l'espressione di contenuto per il payload in un formato JSON valido. *Per ulteriori informazioni, consulta [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html), nell'API Reference.AWS IoT Events * 
+ **Messaggio:** non siamo riusciti ad analizzare la tua espressione di contenuto per il payload di. *action-type* Inserisci un'espressione di contenuto con la sintassi corretta.

#### Soluzione
<a name="w2aac42c13c13b9c15b5c11b3b1b1"></a>

   l'espressione di contenuto può contenere stringhe ('*string*'), variabili (\$1variable. *variable-name*), valori di input (\$1input. *input-name*. *path-to-datum*), concatenazioni di stringhe e stringhe che contengono. `${}` 
+ **Messaggio:** i payload personalizzati non devono essere vuoti.

#### Soluzione
<a name="w2aac42c13c13b9c15b5c13b3b1b1"></a>

   potresti ricevere questo messaggio di errore se hai scelto **Custom payload** per la tua azione e non hai inserito un'espressione di contenuto nella console. AWS IoT Events Se scegli **Payload personalizzato**, devi inserire un'espressione di contenuto in Payload **personalizzato**. *Per ulteriori informazioni, consulta [Payload](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html) nell'API Reference.AWS IoT Events *
+ **Messaggio:** impossibile analizzare l'espressione di durata '' per il timer *duration-expression* ''. *timer-name*

#### Soluzione
<a name="w2aac42c13c13b9c15b5c15b3b1b1"></a>

   il risultato valutato dell'espressione di durata per il timer deve essere un valore compreso tra 60 e 31622400. Il risultato valutato della durata viene arrotondato per difetto al numero intero più vicino.
+ **Messaggio: impossibile analizzare** l'espressione '' per *expression* *action-name*

#### Soluzione
<a name="w2aac42c13c13b9c15b5c17b3b1b1"></a>

   potresti ricevere questo messaggio se l'espressione per l'azione specificata ha una sintassi errata. Assicurati di inserire un'espressione con la sintassi corretta. Per ulteriori informazioni, consulta [Sintassi per filtrare i dati del dispositivo e definire azioni in AWS IoT Events](iotevents-expressions.md#expression-syntax).
+ **Messaggio:** il tuo *fieldName* modulo `IotSitewiseAction` non può essere analizzato. È necessario utilizzare la sintassi corretta nell'espressione.

#### Soluzione
<a name="w2aac42c13c13b9c15b5c19b3b1b1"></a>

   potresti ricevere questo errore se non AWS IoT Events riuscissi ad analizzare il tuo*fieldName*. `IotSitewiseAction` Assicurati che *fieldName* utilizzi un'espressione che AWS IoT Events possa essere analizzata. Per ulteriori informazioni, consulta [IotSiteWiseAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_IotSiteWiseAction.html) nella *documentazione di riferimento dell’API AWS IoT Events *.

### `data-type`
<a name="analyze-data-type"></a>

Un risultato dell'analisi con informazioni su`data‐type`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** l'espressione della durata *duration-expression* per *timer-name* il timer non è valida, deve restituire un numero.

#### Soluzione
<a name="w2aac42c13c13b9c17b5b1b3b1b1"></a>

   potresti ricevere questo messaggio di errore se non AWS IoT Events riuscissi a valutare l'espressione della durata del timer con un numero. Assicurati che il tuo `durationExpression` possa essere convertito in un numero. Altri tipi di dati, come quelli booleani, non sono supportati. 
+ **Messaggio:** l'espressione non *condition-expression* è un'espressione condizionale valida.

#### Soluzione
<a name="w2aac42c13c13b9c17b5b3b3b1b1"></a>

   potresti ricevere questo messaggio di errore se non AWS IoT Events riuscissi `condition-expression` a valutare il tuo valore come booleano. Il valore booleano deve essere o. `TRUE` `FALSE` Assicurati che l'espressione della condizione possa essere convertita in un valore booleano. Se il risultato non è un valore booleano, è equivalente `FALSE` e non richiama le azioni o la transizione a quanto specificato nell'`nextState`evento.
+ **Messaggio:** tipi di dati non compatibili [*inferred-types*] trovati *reference* nella seguente espressione: *expression*

#### Soluzione
<a name="w2aac42c13c13b9c17b5b5b3b1b1"></a>

   tutte le espressioni per lo stesso attributo o variabile di input nel modello del rilevatore devono fare riferimento allo stesso tipo di dati. 

  Utilizza le seguenti informazioni per risolvere il problema:<a name="expression-reference-type-compatibility"></a>
  + 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 *timer-name* valore, è 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 *type* valore, il risultato valutato del riferimento deve essere `String``Decimal`, o`Boolean`.

  Per ulteriori informazioni, consulta [AWS IoT Events riferimento per input e variabili nelle espressioni](iotevents-expressions.md#expression-reference).
+ **Messaggio:** tipi di dati non compatibili [*inferred-types*] utilizzati con. *reference* Ciò può causare un errore di runtime.

#### Soluzione
<a name="w2aac42c13c13b9c17b5b7b3b1b1"></a>

   potresti ricevere questo messaggio di avviso se due espressioni per lo stesso attributo di input o variabile fanno riferimento a due tipi di dati. Assicurati che le espressioni per lo stesso attributo o variabile di input facciano riferimento allo stesso tipo di dati nel modello del rilevatore.
+ **Messaggio:** i tipi di dati [*inferred‐types*] che hai inserito per l'operatore [*operator*] non sono compatibili per la seguente espressione: '' *expression*

#### Soluzione
<a name="w2aac42c13c13b9c17b5b9b3b1b1"></a>

   potresti ricevere questo messaggio di errore se l'espressione combina tipi di dati non compatibili con un operatore specificato. Ad esempio, nell'espressione seguente, l'operatore `+` è compatibile con i tipi di dati Integer, Decimal e String, ma non con gli operandi di tipo booleano.

  ```
  true + false
  ```

  È necessario assicurarsi che i tipi di dati utilizzati con un operatore siano compatibili.
+ **Messaggio:** i tipi di dati [*inferred‐types*] trovati per *input‐attribute* non sono compatibili e possono causare un errore di runtime.

#### Soluzione
<a name="w2aac42c13c13b9c17b5c11b3b1b1"></a>

   potresti ricevere questo messaggio di errore se due espressioni per lo stesso attributo di input fanno riferimento a due tipi `OnEnterLifecycle` di dati per lo stato o per entrambi `OnInputLifecycle` gli `OnExitLifecycle` stati. Assicurati che le espressioni in `OnEnterLifecycle` (o entrambe`OnExitLifecycle`) `OnInputLifecycle` facciano riferimento allo stesso tipo di dati per ogni stato del modello del rilevatore.
+ **Messaggio:** l'espressione payload [*expression*] non è valida. Specificate un'espressione che restituisca una stringa in fase di esecuzione perché il tipo di payload è in formato JSON.

#### Soluzione
<a name="w2aac42c13c13b9c17b5c13b3b1b1"></a>

   potresti ricevere questo errore se il tipo di payload specificato è JSON, ma non AWS IoT Events riesci a  valutarne l'espressione in una stringa. Assicurati che il risultato valutato sia una stringa, non un valore booleano o un numero. 
+ **Messaggio:** l'espressione interpolata \$1*interpolated-expression*\$1 deve restituire un numero intero o un valore booleano in fase di esecuzione. In caso contrario, l'espressione di payload \$1*payload-expression*\$1 non sarà analizzabile in fase di esecuzione come JSON valido.

#### Soluzione
<a name="w2aac42c13c13b9c17b5c15b3b1b1"></a>

   potresti ricevere questo messaggio di errore se non AWS IoT Events riesci a valutare l'espressione interpolata con un numero intero o un valore booleano. Assicurati che l'espressione interpolata possa essere convertita in un numero intero o in un valore booleano, poiché altri tipi di dati, come tring, non sono supportati.
+ **Messaggio:** il tipo di espressione nel `IotSitewiseAction` campo *expression* è definito come tipo e dedotto come tipo. *defined‐type* *inferred‐type* Il tipo definito e il tipo dedotto devono essere uguali.

#### Soluzione
<a name="w2aac42c13c13b9c17b5c17b3b1b1"></a>

   potresti ricevere questo messaggio di errore se l'espressione in `propertyValue` of `IotSitewiseAction` ha un tipo di dati definito in modo diverso dal tipo di dati da cui si deduce. AWS IoT Events Assicurati di utilizzare lo stesso tipo di dati per tutte le istanze di questa espressione nel tuo modello di rilevatore.
+ **Messaggio:** i tipi di dati [*inferred-types*] utilizzati per `setTimer` l'azione non restituiscono lo stesso risultato `Integer` per la seguente espressione: *expression*

#### Soluzione
<a name="w2aac42c13c13b9c17b5c19b3b1b1"></a>

   potresti ricevere questo messaggio di errore se il tipo di dati dedotto per l'espressione di durata non è Integer o Decimal. Assicurati che il tuo `durationExpression` possa essere convertito in un numero. Altri tipi di dati, come Boolean e String, non sono supportati.
+ **Messaggio:** i tipi di dati [*inferred-types*] utilizzati con gli operandi dell'operatore di confronto [*operator*] non sono compatibili nella seguente espressione: *expression*

#### Soluzione
<a name="w2aac42c13c13b9c17b5c21b3b1b1"></a>

   i tipi di dati dedotti per gli operandi di *operator* nell'espressione condizionale (*expression*) del modello di rilevatore non corrispondono. Gli operandi devono essere utilizzati con i tipi di dati corrispondenti in tutte le altre parti del modello di rilevatore.

**Suggerimento**  
È possibile utilizzarlo `convert` per modificare il tipo di dati di un'espressione nel modello del rilevatore. Per ulteriori informazioni, consulta [Funzioni da utilizzare nelle espressioni AWS IoT Events](iotevents-expressions.md#expression-function).

### `referenced-data`
<a name="analyze-referenced-data"></a>

Un risultato dell'analisi con informazioni su`referenced‐data`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** Rilevato un guasto Timer: *timer-name* il timer viene utilizzato in un'espressione ma non viene mai impostato.

#### Soluzione
<a name="w2aac42c13c13b9c19b5b1b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se si utilizza un timer non impostato. È necessario impostare un timer prima di utilizzarlo in un'espressione. Inoltre, assicuratevi di inserire il nome corretto del timer.
+ **Messaggio:** Variabile interrotta rilevata: la variabile *variable-name* viene utilizzata in un'espressione ma non viene mai impostata.

#### Soluzione
<a name="w2aac42c13c13b9c19b5b3b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se si utilizza una variabile non impostata. È necessario impostare una variabile prima di utilizzarla in un'espressione. Inoltre, assicuratevi di inserire il nome della variabile corretto.
+ **Messaggio:** Variabile danneggiata rilevata: una variabile viene utilizzata in un'espressione prima di essere impostata su un valore.

#### Soluzione
<a name="w2aac42c13c13b9c19b5b5b3b1b1"></a>

   ogni variabile deve essere assegnata a un valore prima di poter essere valutata in un'espressione. Imposta il valore della variabile prima di ogni utilizzo in modo da poterne recuperare il valore. Inoltre, assicuratevi di inserire il nome corretto della variabile.

### `referenced-resource`
<a name="analyze-referenced-resource"></a>

Un risultato dell'analisi con informazioni su`referenced‐resource`, corrisponde ai seguenti messaggi di errore: 
+ **Messaggio:** Detector Model Definition contiene un riferimento a un input che non esiste.

#### Soluzione
<a name="w2aac42c13c13b9c21b5b1b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se si utilizzano espressioni per fare riferimento a un input che non esiste. Assicurati che l'espressione faccia riferimento a un input esistente e inserisci il nome di input corretto. Se non disponi di un input, creane prima uno.
+ **Messaggio:** Detector Model Definition contiene non InputName validi: *input-name*

#### Soluzione
<a name="w2aac42c13c13b9c21b5b3b3b1b1"></a>

   è possibile che venga visualizzato questo messaggio di errore se il modello del rilevatore contiene un nome di input non valido. Assicurati di inserire il nome di input corretto. Il nome di input deve avere 1-128 caratteri. Caratteri validi: a-z, A-Z, 0-9, \$1 (trattino basso) e - (trattino).

# Analizza un modello di rilevatore per AWS IoT Events (Console)
<a name="analyze-api-console"></a>

AWS IoT Events consente di monitorare e reagire ai dati IoT rilevando eventi e attivando azioni con l' AWS IoT Events API. I passaggi seguenti utilizzano la AWS IoT Events console per analizzare un modello di rilevatore.

**Nota**  
Dopo aver AWS IoT Events iniziato ad analizzare il modello del rilevatore, avete fino a 24 ore per recuperare i risultati dell'analisi.

L'analisi del modello di rilevatore può aiutarti a ottimizzare i modelli, identificare potenziali problemi e garantire che funzionino come previsto. Ad esempio, in un parco eolico, l'analisi del modello di rivelatore potrebbe rivelare se il modello identifica correttamente i potenziali guasti agli ingranaggi sulla base di schemi di vibrazione anomali. Oppure, se il modello attiva con precisione gli avvisi di manutenzione quando la velocità del vento supera le soglie operative di sicurezza. Perfezionando un modello basato sull'analisi, è possibile migliorare la manutenzione predittiva, ridurre i tempi di inattività e migliorare l'efficienza complessiva della produzione di energia.

**Per analizzare un modello di rilevatore**

1. Accedi alla [console AWS IoT Events](https://console.aws.amazon.com/iotevents/).

1. Nel pannello di navigazione, scegli Modelli di **rilevatori**.

1. In **Modelli di rilevatori**, scegli il modello di rilevatore di destinazione.

1. **Nella pagina del modello del rilevatore, scegli Modifica.**

1. **Nell'angolo in alto a destra, scegli Esegui analisi.**  
![\[Schermata di come analizzare i modelli di rilevatori nella console. AWS IoT Events\]](http://docs.aws.amazon.com/it_it/iotevents/latest/developerguide/images/analyzeAPI1.png)

   Di seguito è riportato un esempio di risultato di analisi nella AWS IoT Events console.  
![\[Schermata di come analizzare i modelli di rilevatori nella AWS IoT Events console.\]](http://docs.aws.amazon.com/it_it/iotevents/latest/developerguide/images/analyzeAPI2.png)

# Analizza un modello di rilevatore in AWS IoT Events ()AWS CLI
<a name="analyze-api-api"></a>

L'analisi programmatica dei modelli di AWS IoT Events rilevatori fornisce informazioni preziose sulla struttura, il comportamento e le prestazioni. Questo approccio basato su API consente l'analisi automatizzata, l'integrazione con i flussi di lavoro esistenti e la possibilità di eseguire operazioni di massa su più modelli di rilevatori. Sfruttando l'[StartDetectorModelAnalysis](https://docs.aws.amazon.com/iotevents/latest/apireference/API_StartDetectorModelAnalysis.html)API, puoi avviare esami approfonditi dei tuoi modelli, aiutandoti a identificare potenziali problemi, ottimizzare i flussi logici e garantire che l'elaborazione degli eventi IoT sia in linea con i requisiti aziendali.

I passaggi seguenti utilizzano il per analizzare un modello di AWS CLI rilevatore.

**Per analizzare un modello di rilevatore utilizzando AWS CLI**

1. Eseguite il comando seguente per avviare un'analisi.

   ```
   aws iotevents start-detector-model-analysis --cli-input-json file://file-name.json
   ```
**Nota**  
*file-name*Sostituitelo con il nome del file che contiene la definizione del modello del rilevatore.  
**Example Definizione del modello di rilevatore**  

   ```
   {
       "detectorModelDefinition": {
           "states": [
               {
                   "stateName": "TemperatureCheck",
                   "onInput": {
                       "events": [
                           {
                               "eventName": "Temperature Received",
                               "condition": "isNull($input.TemperatureInput.sensorData.temperature)==false",
                               "actions": [
                                   {
                                       "iotTopicPublish": {
                                           "mqttTopic": "IoTEvents/Output"
                                       }
                                   }
                               ]
                           }
                       ],
                       "transitionEvents": []
                   },
                   "onEnter": {
                       "events": [
                           {
                               "eventName": "Init",
                               "condition": "true",
                               "actions": [
                                   {
                                       "setVariable": {
                                           "variableName": "temperatureChecked",
                                           "value": "0"
                                       }
                                   }
                               ]
                           }
                       ]
                   },
                   "onExit": {
                       "events": []
                   }
               }
           ],
           "initialStateName": "TemperatureCheck"
       }
   }
   ```

   Se utilizzate il AWS CLI per analizzare un modello di rilevatore esistente,  scegliete una delle seguenti opzioni per recuperare la definizione del modello di rilevatore:
   + Se desideri utilizzare la AWS IoT Events console, procedi come segue:

     1. Nel riquadro di navigazione, scegli **Modelli di rilevatori**.

     1. In **Modelli di rilevatori**, scegli il modello di rilevatore di destinazione.

     1. Scegli **Esporta modello di rilevatore** da **Action** per scaricare il modello di rilevatore. Il modello del rilevatore viene salvato in JSON.

     1. Aprire il file JSON del modello del rilevatore.

     1. Ti serve solo l'oggetto. `detectorModelDefinition` Rimuovi quanto segue:
        + La prima parentesi riccia (`{`) nella parte superiore della pagina
        + La linea `detectorModel`
        + Oggetto `detectorModelConfiguration`
        + L'ultima parentesi riccia (`}`) nella parte inferiore della pagina

     1. Salvare il file.
   + Se desideri utilizzare il AWS CLI, procedi come segue:

     1. Esegui il comando seguente in un terminale:

        ```
        aws iotevents describe-detector-model --detector-model-name detector-model-name
        ```

     1. Sostituiscilo *detector-model-name* con il nome del modello del tuo rilevatore.

     1. Copiate l'`detectorModelDefinition`oggetto in un editor di testo.

     1. Aggiungete parentesi graffe (`{}`) all'esterno di. `detectorModelDefinition`

     1. Salvate il file in JSON.  
**Example response**  

   ```
   {
       "analysisId": "c1133390-14e3-4204-9a66-31efd92a4fed"
   }
   ```

1. Copia l'ID di analisi dall'output.

1. Eseguite il comando seguente per recuperare lo stato dell'analisi.

   ```
   aws iotevents describe-detector-model-analysis --analysis-id "analysis-id"
   ```
**Nota**  
*analysis-id*Sostituiscilo con l'ID di analisi che hai copiato.  
**Example response**  

   ```
   {
       "status": "COMPLETE"
   }
   ```

   Lo stato può avere uno dei seguenti valori:
   + `RUNNING`— AWS IoT Events sta analizzando il modello del rilevatore. Il completamento di questo processo può richiedere fino a un minuto.
   + `COMPLETE`— AWS IoT Events ha terminato l'analisi del modello del rilevatore.
   + `FAILED`— AWS IoT Events non è stato possibile analizzare il modello del rilevatore. Riprova più tardi.

1. Eseguite il comando seguente per recuperare uno o più risultati di analisi del modello di rilevatore.
**Nota**  
*analysis-id*Sostituiscilo con l'ID di analisi che hai copiato.

   ```
   aws iotevents get-detector-model-analysis-results --analysis-id "analysis-id"
   ```  
**Example response**  

   ```
   {
       "analysisResults": [
           {
               "type": "data-type",
               "level": "INFO",
               "message": "Inferred data types [Integer] for $variable.temperatureChecked",
               "locations": []
           },
           {
               "type": "referenced-resource",
               "level": "ERROR",
               "message": "Detector Model Definition contains reference to Input 'TemperatureInput' that does not exist.",
               "locations": [
                   {
                       "path": "states[0].onInput.events[0]"
                   }
               ]
           }
       ]
   }
   ```

**Nota**  
Dopo aver AWS IoT Events iniziato ad analizzare il modello del rilevatore, avete fino a 24 ore per recuperare i risultati dell'analisi.