

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Diagnóstico de problemas de las reglas
<a name="diagnosing-rules"></a>

**Ayúdenos a mejorar este tema**  
 [Explíquenos cómo mejorarlo](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) 

En esta sección, se describen algunos de los aspectos que se deben comprobar cuando hay problemas con alguna regla.

## Configuración de CloudWatch registros para la solución de problemas
<a name="diagnosing-rules-logs"></a>

La mejor forma de depurar los problemas que tenga con las reglas es utilizar CloudWatch los registros. Al activar CloudWatch los registros AWS IoT, puede ver qué reglas se activan y si se han aplicado correctamente o no. También obtiene información sobre si las condiciones de la cláusula WHERE coinciden. Para obtener más información, consulte [Supervise AWS IoT mediante registros CloudWatch](cloud-watch-logs.md). 

El problema más habitual de las reglas es la autorización. Los registros muestran si su función no está autorizada para desempeñarse AssumeRole en el recurso. A continuación hay un log de ejemplo generado por el [registro detallado](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)"
}
```

A continuación hay un log de ejemplo similar generado por el [registro global](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.
```

Para obtener más información, consulte [Visualización AWS IoT de los registros en la CloudWatch consola](cloud-watch-logs.md#viewing-logs).

## Diagnóstico de servicios externos
<a name="diagnosing-rules-ext"></a>

El usuario final controla los servicios externos. Antes de ejecutar una regla, asegúrese de que los servicios externos que ha vinculado a dicha regla estén configurados y tengan suficientes unidades de rendimiento y capacidad para su aplicación.

## Diagnóstico de problemas de SQL
<a name="diagnosing-rules-sql"></a>

**Si la consulta SQL no devuelve los datos esperados:**
+ **Revise los registros para ver si hay mensajes de error.**
+ 

**Confirme que la sintaxis de SQL coincide con la del documento JSON del mensaje.**  
Revise los nombres de objetos y propiedades utilizados en la consulta y compárelos con los utilizados en el documento JSON de la carga de mensajes del tema. Para obtener más información sobre el formato de JSON en consultas SQL, vaya a [Extensiones JSON](iot-sql-json.md).
+ 

**Comprueba si los nombres de objetos o propiedades de JSON incluyen caracteres reservados o numéricos.**  
Para obtener más información sobre los caracteres reservados en las referencias a objetos JSON dentro de consultas SQL, vaya a [Extensiones JSON](iot-sql-json.md).