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 la solución de 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 obtendrá información sobre si las condiciones de WHERE la cláusula 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 para desempeñarse 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.

Diagnosticar problemas SQL

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

  • Confirme que la SQL sintaxis coincide con la del JSON documento del mensaje.

    Revise los nombres de objetos y propiedades utilizados en la consulta con los utilizados en el JSON documento de la carga útil del mensaje del tema. Para obtener más información sobre el JSON formato de las SQL consultas, consulteExtensiones JSON.

  • Compruebe si los nombres de los JSON objetos o propiedades incluyen caracteres reservados o numéricos.

    Para obtener más información sobre los caracteres reservados en las referencias a JSON objetos en SQL las consultas, consulteExtensiones JSON.