AWS IoT Events Problemas y soluciones comunes - AWS IoT Events

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.

AWS IoT Events Problemas y soluciones comunes

Consulte la siguiente sección para solucionar los errores y encontrar posibles soluciones para resolverlos. AWS IoT Events

Errores de creación del modelo de detector

Aparecen errores cuando intento crear un modelo de detector.

Al crear un modelo de detector, debe tener en cuenta las siguientes limitaciones.

  • Solo se permite una acción en cada campo action.

  • La condition es obligatoria para transitionEvents. Es opcional para los eventos OnEnter, OnInput y OnExit.

  • Si el campo condition está vacío, el resultado evaluado de la expresión de condición equivale a true.

  • El resultado evaluado de la expresión de condición debe ser un valor booleano. Si el resultado no es un valor booleano, equivale a false y no activa las actions ni la transición al nextState especificados en el evento.

Para obtener más información, consulte Restricciones y limitaciones del modelo de detector.

Actualizaciones de un modelo de detector eliminado

He actualizado o eliminado un modelo de detector hace unos minutos, pero sigo recibiendo actualizaciones de estado del antiguo modelo de detector a través de mensajes MQTT o alertas SNS.

Si actualiza, elimina o vuelve a crear un modelo de detector (consulte UpdateDetectorModelo), pasará un tiempo antes de que se eliminen todas las instancias del detector y se utilice el nuevo modelo. Durante este tiempo, es posible que se sigan procesando entradas mediante las instancias de la versión anterior del modelo de detector. Podría seguir recibiendo alertas definidas por el modelo de detector anterior. Espere al menos siete minutos antes de volver a comprobar la actualización o de reportar un error.

Fallo de activación de la acción (al cumplirse una condición)

El detector no logra activar una acción o una transición a un nuevo estado al cumplirse la condición.

Compruebe que el resultado evaluado de la expresión condicional del detector sea un valor booleano. Si el resultado no es un valor booleano, equivale a false y no activa las action ni la transición al nextState especificados en el evento. Para obtener más información, consulte Sintaxis de expresiones condicionales.

Fallo de activación de la acción (al superar un umbral)

El detector no activa una acción o una transición de evento cuando la variable en una expresión condicional alcanza un valor especificado.

Si actualiza setVariable para onInput, onEnter, o onExit, el nuevo valor no se utiliza al evaluar cualquier condition durante el ciclo de procesamiento actual. En cambio, se utiliza el valor original hasta completarse el ciclo actual. Puede cambiar este comportamiento si configura el parámetro evaluationMethod en la definición del modelo de detector. Si evaluationMethod se establece en SERIAL, las variables se actualizan y las condiciones de eventos se evalúan en el orden en que se definan los eventos. Si evaluationMethod se establece en BATCH (predeterminado), las variables se actualizan y los eventos se ejecutan solo después de que se evalúen todas las condiciones del evento.

Uso incorrecto de los estados

El detector entra en estados incorrectos cuando intento enviar mensajes a las entradas mediante BatchPutMessage.

Si utilizas BatchPutMessage para enviar varios mensajes a las entradas, no se garantiza el orden en que se procesan los mensajes o las entradas. Para garantizar el orden, envíe los mensajes uno a la vez y espere cada vez que BatchPutMessage confirme el éxito.

Mensaje de conexión

Recibo un error ('Connection aborted.', error(54, 'Connection reset by peer')) cuando intento llamar o invocar una API.

Verifique que OpenSSL utilice TLS 1.1 o una versión posterior para establecer la conexión. Este debería ser el método predeterminado en la mayoría de las distribuciones de Linux o en Windows versión 7 y posteriores. Es posible que los usuarios de macOS deban actualizar OpenSSL.

InvalidRequestException mensaje

Recibo InvalidRequestException cuando intento llamar CreateDetectorModel a una UpdateDetectorModel API.

Para resolver el problema, compruebe lo siguiente. Para obtener más información, consulte CreateDetectorModelo y UpdateDetectormodelo.

  • Asegúrese de no utilizar al mismo tiempo seconds y durationExpression como parámetros de SetTimerAction.

  • Asegúrese de que su expresión de cadena para durationExpression sea válida. La expresión de cadena puede contener números, variables ($variable.<variable-name>) o valores de entrada ($input.<input-name>.<path-to-datum>).

action.setTimerErrores de Amazon CloudWatch Logs

Puede configurar Amazon CloudWatch Logs para supervisar las instancias AWS IoT Events del modelo de detector. Los siguientes son errores comunes que se AWS IoT Events generan cuando se utilizaaction.setTimer.

  • Error: Su expresión de duración para el temporizador llamado <timer-name> no se ha podido evaluar como número.

    Asegúrese de que su expresión de cadena para durationExpression pueda convertirse en un número. No se permiten otros tipos de datos, como los booleanos.

  • Error: El resultado evaluado de su expresión de duración para el temporizador llamado <timer-name> es mayor que 31622440. Para garantizar la precisión, asegúrese de que su expresión de duración haga referencia a un valor comprendido entre 60 y 31622400.

    Asegúrese de que la duración de su temporizador sea menor o igual que 31622400 segundos. El resultado evaluado de la duración se redondea hacia abajo al número entero más próximo.

  • Error: El resultado evaluado de su expresión de duración para el temporizador llamado <timer-name> es menor que 60. Para garantizar la precisión, asegúrese de que su expresión de duración haga referencia a un valor comprendido entre 60 y 31622400.

    Asegúrese de que la duración de su temporizador sea mayor o igual que 60 segundos. El resultado evaluado de la duración se redondea hacia abajo al número entero más próximo.

  • Error: Su expresión de duración para el temporizador llamado <timer-name> no se ha podido evaluar. Compruebe los nombres de las variables, los nombres de las entradas y las rutas a los datos para asegurarse de que hace referencia a variables y entradas existentes.

    Asegúrese de que su expresión de cadena haga referencia a variables y entradas existentes. La expresión de cadena puede contener números, variables ($variable.variable-name) y valores de entrada ($input.input-name.path-to-datum).

  • Error: No se ha podido establecer el temporizador llamado <timer-name>. Compruebe su expresión de duración e inténtelo de nuevo.

    Consulte la SetTimeracción Acción para asegurarse de que ha especificado los parámetros correctos y, a continuación, vuelva a configurar el temporizador.

Para obtener más información, consulte Habilitar el CloudWatch registro de Amazon al desarrollar modelos de AWS IoT Events detectores.

Errores de CloudWatch carga útil de Amazon

Puede configurar Amazon CloudWatch Logs para supervisar las instancias AWS IoT Events del modelo de detector. Los siguientes son los errores y advertencias más comunes que se generan al AWS IoT Events configurar la carga útil de la acción.

  • Error: No se ha podido evaluar su expresión para la acción. Asegúrese de que los nombres de las variables, los nombres de las entradas y las rutas a los datos hagan referencia a variables y valores de entrada existentes. Verifique también que el tamaño de la carga sea inferior a 1 KB, el tamaño máximo permitido para una carga.

    Asegúrese de introducir correctamente los nombres de las variables, los nombres de las entradas y las rutas a los datos. También puede recibir este mensaje de error si la carga de acción es superior a 1 KB.

  • Error: No se ha podido interpretar su expresión de contenido para la carga de <action-type>. Introduzca una expresión de contenido con la sintaxis correcta.

    La expresión de contenido puede contener cadenas ('string'), variables ($variable.variable-name), valores de entrada ($input.input-name.path-to-datum), concatenaciones de cadenas y cadenas que contengan ${}.

  • Error: Su expresión de carga {expression} no es válida. El tipo de carga útil definido es JSON, por lo que debes especificar una expresión que se AWS IoT Events traduzca en una cadena.

    Si el tipo de carga útil especificado es JSON, AWS IoT Events primero comprueba si el servicio puede evaluar la expresión en una cadena. El resultado evaluado no puede ser un booleano ni un número. Podría recibir este error si falla la validación.

  • Advertencia: La acción se ejecutó, pero no se ha podido evaluar su expresión de contenido para la carga de acción como JSON válido. El tipo de carga definido es JSON.

    Asegúrese de AWS IoT Events poder evaluar su expresión de contenido para la carga útil de la acción en un JSON válido, si define el tipo de carga útil como. JSON AWS IoT Events ejecuta la acción aunque no AWS IoT Events pueda evaluar la expresión de contenido para convertirla en un JSON válido.

Para obtener más información, consulte Habilitar el CloudWatch registro de Amazon al desarrollar modelos de AWS IoT Events detectores.

Tipos de datos incompatibles

Se han encontrado tipos de datos incompatibles [<inferred-types>] para <reference> en la siguiente expresión: <expression>

Podría recibir este error por uno de los siguientes motivos:

  • Los resultados evaluados de sus referencias no son compatibles con otros operandos de sus expresiones.

  • El tipo del argumento pasado a una función no es compatible.

Cuando utilice referencias en expresiones, compruebe lo siguiente:

  • Cuando utilice una referencia como operando con uno o más operadores, asegúrese de que todos los tipos de datos a los que hace referencia sean compatibles.

    Por ejemplo, en la siguiente expresión, el entero 2 es un operando de los operadores == y &&. Para asegurarse de que los operandos sean compatibles, $variable.testVariable + 1 y $variable.testVariable deben hacer referencia a un número entero o decimal.

    Además, el entero 1 es un operando del operador +. Por lo tanto, $variable.testVariable debe hacer referencia a un número entero o decimal.

    ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
  • Cuando utilice una referencia como argumento pasado a una función, asegúrese de que la función admita los tipos de datos a los que hace referencia.

    Por ejemplo, la siguiente función timeout("time-name") requiere una cadena con comillas dobles como argumento. Si utiliza una referencia para el valor timer-name, debe hacer referencia a una cadena con comillas dobles.

    timeout("timer-name")
    nota

    Para la función convert(type, expression), si utiliza una referencia para el valor de tipo, el resultado evaluado de su referencia debe ser String, Decimal o Boolean.

Para obtener más información, consulte Referencias.

No se pudo enviar el mensaje a AWS IoT Events

Mensaje: No se ha podido enviar el mensaje a Iot Events

Podría experimentar este error por las siguientes razones:

  • La carga del mensaje de entrada no contiene el Input attribute Key.

  • La Input attribute Key no se encuentra en la misma ruta JSON que la especificada en la definición de entrada.

  • El mensaje de entrada no coincide con el esquema, tal como se define en la AWS IoT Events entrada.

nota

La ingesta de datos de otros servicios también experimentará fallos.

Por ejemplo AWS IoT Core, en, la AWS IoT regla fallará con el siguiente mensaje Verify the Input Attribute key.

Para resolver este problema, asegúrese de que el esquema del mensaje de carga útil de entrada se ajuste a la definición AWS IoT Events de entrada y que la Input attribute Key ubicación coincida. Para obtener más información, consulte Creación de una entrada en el panel de navegación para aprender a definir AWS IoT Events las entradas.