

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

# Diagnosi dei problemi relativi alle regole
<a name="diagnosing-rules"></a>

**Aiutaci a migliorare questo argomento**  
 [Facci sapere che cosa contribuirebbe a migliorarlo](https://docs.aws.amazon.com//forms/aws-doc-feedback?hidden_service_name=IoT%20Docs&topic_url=http://docs.aws.amazon.com/en_us/iot/latest/developerguide/diagnosing-rules.html) 

Questa sezione indica gli oggetti da verificare nel caso si riscontri un problema con la regola.

## Configurazione dei CloudWatch log per la risoluzione dei problemi
<a name="diagnosing-rules-logs"></a>

Il modo migliore per risolvere i problemi relativi alle regole consiste nell'utilizzare i registri. CloudWatch Quando abiliti CloudWatch Logs for AWS IoT, puoi vedere quali regole vengono attivate e il loro successo o fallimento. Puoi inoltre ottenere informazioni sulla corrispondenza delle condizioni delle clausole WHERE. Per ulteriori informazioni, consulta [Monitora AWS IoT utilizzando i log CloudWatch](cloud-watch-logs.md). 

La maggior parte dei problemi comuni delle regole riguarda l'autorizzazione. I log mostrano se il tuo ruolo non è autorizzato a svolgere AssumeRole sulla risorsa. Di seguito è illustrato un esempio di log generato dal [logging granulare](configure-logging.md#fine-logging-cli):

```
{
    "timestamp": "2017-12-09 22:49:17.954",
    "logLevel": "ERROR",
    "traceId": "ff563525-6469-506a-e141-78d40375fc4e",
    "accountId": "123456789012",
    "status": "Failure",
    "eventType": "RuleExecution",
    "clientId": "iotconsole-123456789012-3",
    "topicName": "test-topic",
    "ruleName": "rule1",
    "ruleAction": "DynamoAction",
    "resources": {
        "ItemHashKeyField": "id",
        "Table": "trashbin",
        "Operation": "Insert",
        "ItemHashKeyValue": "id",
        "IsPayloadJSON": "true"
    },
    "principalId": "ABCDEFG1234567ABCD890:outis",
    "details": "User: arn:aws:sts::123456789012:assumed-role/dynamo-testbin/5aUMInJH is not authorized to perform: dynamodb:PutItem on resource: arn:aws:dynamodb:us-east-1:123456789012:table/testbin (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException; Request ID: AKQJ987654321AKQJ123456789AKQJ987654321AKQJ987654321)"
}
```

Di seguito è illustrato un esempio di log generato dal [logging globale](configure-logging.md#global-logging-cli):

```
2017-12-09 22:49:17.954 TRACEID:ff562535-6964-506a-e141-78d40375fc4e 
PRINCIPALID:ABCDEFG1234567ABCD890:outis [ERROR] EVENT:DynamoActionFailure 
TOPICNAME:test-topic CLIENTID:iotconsole-123456789012-3 
MESSAGE:Dynamo Insert record failed. The error received was User: arn:aws:sts::123456789012:assumed-role/dynamo-testbin/5aUMInJI is not authorized to perform: dynamodb:PutItem on resource: arn:aws:dynamodb:us-east-1:123456789012:table/testbin 
(Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException; Request ID: AKQJ987654321AKQJ987654321AKQJ987654321AKQJ987654321). 
Message arrived on: test-topic, Action: dynamo, Table: trashbin, HashKeyField: id, HashKeyValue: id, RangeKeyField: None, RangeKeyValue: 123456789012
No newer events found at the moment. Retry.
```

Per ulteriori informazioni, consulta [Visualizzazione dei AWS IoT log nella console CloudWatch](cloud-watch-logs.md#viewing-logs).

## Diagnosi di servizi esterni
<a name="diagnosing-rules-ext"></a>

I servizi esterni sono controllati dall'utente finale. Prima dell'esecuzione della regola, assicurati che i servizi esterni collegati alla regola siano configurati e dispongano di unità di capacità e velocità effettiva sufficiente per l'applicazione.

## Diagnosi dei problemi SQL
<a name="diagnosing-rules-sql"></a>

**Se la query SQL non restituisce i dati che ci si aspetta:**
+ **Esamina i registri per individuare gli eventuali messaggi di errore.**
+ 

**Verifica che la sintassi SQL corrisponda al documento JSON nel messaggio.**  
Esamina i nomi degli oggetti e delle proprietà utilizzati nella query con quelli utilizzati nel documento JSON del payload dei messaggi dell'argomento. Per ulteriori informazioni sul formato JSON nelle query SQL, consulta [Estensioni JSON](iot-sql-json.md).
+ 

**Verifica se i nomi degli oggetti o delle proprietà JSON includono caratteri riservati o numerici.**  
Per ulteriori informazioni sui caratteri riservati nei riferimenti agli oggetti JSON nelle query SQL, consulta [Estensioni JSON](iot-sql-json.md).