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
- Errores de creación del modelo de detector
- Actualizaciones de un modelo de detector eliminado
- Fallo de activación de la acción (al cumplirse una condición)
- Fallo de activación de la acción (al superar un umbral)
- Uso incorrecto de los estados
- Mensaje de conexión
- InvalidRequestException mensaje
- action.setTimerErrores de Amazon CloudWatch Logs
- Errores de CloudWatch carga útil de Amazon
- Tipos de datos incompatibles
- No se pudo enviar el mensaje a 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 paratransitionEvents
. Es opcional para los eventosOnEnter
,OnInput
yOnExit
. -
Si el campo
condition
está vacío, el resultado evaluado de la expresión de condición equivale atrue
. -
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 lasactions
ni la transición alnextState
especificados en el evento.
Para obtener más información, consulte AWS IoT Events restricciones y limitaciones del modelo de detector.
Actualizaciones de un modelo de detector eliminado
Actualicé o eliminé un modelo de detector hace unos minutos, pero sigo recibiendo actualizaciones del estado del modelo de detector anterior mediante MQTT mensajes o SNS alertas.
Si actualiza, elimina o vuelve a crear un modelo de detector (consulte UpdateDetectorModel), pasará un tiempo hasta 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 suele enviar varios mensajes BatchPutMessagea 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
('Connection aborted.', error(54,
'Connection reset by peer'))
Aparece un error cuando intento llamar o invocar unAPI.
Compruebe que Open SSL utilice la versión TLS 1.1 o 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 necesiten actualizar OpenSSL.
InvalidRequestException mensaje
InvalidRequestException Recibo cuando intento llamar CreateDetectorModel
y UpdateDetectorModel
APIs.
Para resolver el problema, compruebe lo siguiente. Para obtener más información, consulte CreateDetectorModely UpdateDetectorModel.
-
Asegúrese de no utilizar al mismo tiempo
seconds
ydurationExpression
como parámetros deSetTimerAction
. -
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.setTimer
Errores 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
no se ha podido evaluar como número.<timer-name>
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
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.<timer-name>
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
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.<timer-name>
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
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.<timer-name>
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.
) y valores de entrada (variable-name
$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 SetTimerActionacción para asegurarse de haber 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
. Introduzca una expresión de contenido con la sintaxis correcta.<action-type>
La expresión de contenido puede contener cadenas (
'
), variables (string
'$variable.
), valores de entrada (variable-name
$input.
), concatenaciones de cadenas y cadenas que contenganinput-name
.path-to-datum
${}
. -
Error: tu expresión de carga útil {
expression
} no es válida. El tipo de carga útil definido esJSON, por lo que debe especificar una expresión que AWS IoT Events dé como resultado una cadena.Si el tipo de carga útil especificado esJSON, 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 pudimos evaluar tu expresión de contenido para que la carga útil de la acción fuera válida. JSON El tipo de carga útil definido es. JSON
Asegúrese de AWS IoT Events poder evaluar la expresión de su contenido para que la carga útil de la acción sea válidaJSON, si define el tipo de carga como.
JSON
AWS IoT Events ejecuta la acción aunque no AWS IoT Events pueda evaluar la expresión de contenido como válida. JSON
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("
requiere una cadena con comillas dobles como argumento. Si utiliza una referencia paratime-name
")timer-name
valor, debe hacer referencia a una cadena con comillas dobles.timeout("
timer-name
")nota
Para la
convert(
función, si utiliza una referencia para eltype
,expression
)type
valor, el resultado evaluado de la referencia debe serString
Decimal
, oBoolean
.
Para obtener más información, consulte AWS IoT Events referencia para las entradas y variables en las expresiones.
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
.No
Input attribute Key
está en la misma JSON ruta 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 Cree una entrada para los modelos en AWS IoT Events para aprender a definir AWS IoT Events las entradas.