Diagnóstico de problemas de las reglas - AWS IoT Core

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

Ayúdenos a mejorar este tema

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 solucionar problemas

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 AWS IoT Supervise mediante CloudWatch registros.

El problema más habitual de las reglas es la autorización. Los registros muestran si su función no está autorizada a desempeñar AssumeRole en el recurso. A continuación hay un log de ejemplo generado por el registro detallado:

{ "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:

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.

Diagnóstico de servicios externos

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

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.

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