As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS IoT Events Problemas e soluções comuns
Consulte a seção a seguir para solucionar erros e encontrar possíveis soluções para resolver problemas com AWS IoT Events.
Erros
- Erros na criação do modelo do detector
- Atualizações de um modelo de detector excluído
- Falha no gatilho da ação (ao atender a uma condição)
- Falha no gatilho de ação (ao ultrapassar um limite)
- Uso incorreto de estados
- Mensagem de conexão
- InvalidRequestException mensagem
- action.setTimerErros do Amazon CloudWatch Logs
- Erros de CloudWatch carga útil da Amazon
- Tipos de dados incompatíveis
- Falha ao enviar mensagem para AWS IoT Events
Erros na criação do modelo do detector
Eu recebo erros quando tento criar um modelo de detector.
Ao criar um modelo de detector, considere as limitações a seguir.
-
Somente uma ação é permitida em cada campo
action
. -
O
condition
é exigido paratransitionEvents
. É opcional para eventosOnEnter
,OnInput
eOnExit
. -
Se o campo
condition
estiver vazio, o resultado avaliado da expressão da condição será equivalente atrue
. -
O resultado avaliado da expressão da condição deverá ser um valor booliano. Se o resultado não for um valor booliano, ele é equivalente ao
false
e não aciona o gatilhoactions
ou a transição para onextState
especificado no evento.
Para ter mais informações, consulte Restrições e limitações do modelo de detector.
Atualizações de um modelo de detector excluído
Eu atualizei ou excluí um modelo de detector há alguns minutos, mas ainda estou recebendo atualizações de estado do modelo de detector antigo por meio de mensagens MQTT ou alertas de SNS.
Se você atualizar, excluir ou recriar um modelo de detector (consulte UpdateDetectorModelo), haverá um atraso até que todas as instâncias do detector sejam excluídas e o novo modelo seja usado. Durante esse período, as entradas podem continuar sendo processadas pelas instâncias da versão anterior do modelo do detector. Você pode continuar recebendo alertas definidos pelo modelo de detector anterior. Aguarde pelo menos sete minutos antes de verificar novamente a atualização ou relatar um erro.
Falha no gatilho da ação (ao atender a uma condição)
O detector falha em acionar uma ação ou transição para um novo estado quando a condição é atendida.
Verifique se o resultado avaliado da expressão condicional do detector é um valor booliano. Se o resultado não for um valor booliano, ele é equivalente ao false
e não aciona o gatilho action
ou a transição para o nextState
especificado no evento. Para obter mais informações, consulte Sintaxe de expressão condicional.
Falha no gatilho de ação (ao ultrapassar um limite)
O detector não aciona uma ação ou uma transição de evento quando a variável em uma expressão condicional atinge um valor especificado.
Se você atualizar setVariable
para onInput
, onEnter
ou onExit
, o novo valor não será usado ao avaliar nenhuma condition
durante o ciclo de processamento corrente. Em vez disso, o valor original é usado até que o ciclo atual seja concluído. É possível alterar esse comportamento configurando o parâmetro evaluationMethod
na definição de modelos de detectores. Quando evaluationMethod
é definido para SERIAL
, as variáveis são atualizadas e as condições do evento avaliadas na ordem em que os eventos são definidos. Quando evaluationMethod
é definido para BATCH
(o padrão), as variáveis são atualizadas e os eventos são executados somente após todas as condições do evento serem avaliadas.
Uso incorreto de estados
O detector entra nos estados errados quando eu tento enviar mensagens para as entradas usando BatchPutMessage
.
Se você usar o BatchPutMessage para enviar várias mensagens às entradas, a ordem na qual as mensagens ou entradas são processadas não é garantida. Para garantir o pedido, envie mensagens uma de cada vez e espere cada vez que o BatchPutMessage
reconheça o sucesso.
Mensagem de conexão
Recebo um erro ('Connection aborted.', error(54,
'Connection reset by peer'))
quando tento chamar ou invocar uma API.
Verifique se o OpenSSL usa o TLS 1.1 ou uma versão posterior para estabelecer a conexão. Esse deve ser o padrão na maioria das distribuições Linux ou no Windows versão 7 e posterior. Os usuários do macOS talvez precisem atualizar o OpenSSL.
InvalidRequestException mensagem
Eu recebo InvalidRequestException quando tento fazer chamadas CreateDetectorModel
e UpdateDetectorModel
APIs.
Verifique o seguinte, para ajudar a resolver esse problema. Para obter mais informações, consulte CreateDetectorModelo e UpdateDetectormodelo.
-
Certifique-se de não usar
seconds
edurationExpression
como parâmetros deSetTimerAction
ao mesmo tempo. -
Certifique-se de que sua expressão de string para que
durationExpression
seja válida. A expressão em cadeia de caracteres pode conter números, variáveis ($variable.<variable-name>
) ou valores de entrada ($input.<input-name>.<path-to-datum>
).
action.setTimer
Erros do Amazon CloudWatch Logs
Você pode configurar o Amazon CloudWatch Logs para monitorar instâncias AWS IoT Events de modelos de detectores. A seguir estão os erros comuns gerados por AWS IoT Events, quando você usaaction.setTimer
.
-
Erro: a sua expressão de duração para o temporizador chamado
não pôde ser avaliada como um número.<timer-name>
Certifique-se de que sua expressão de string para
durationExpression
possa ser convertida em um número. Outros tipos de dados, como booliano, não são permitidos. -
Erro: o resultado avaliado da sua expressão de duração para o temporizador chamado
é maior que 31622440. Para garantir a precisão, certifique-se de que a sua expressão de duração se refira a um valor entre 60‐31622400.<timer-name>
Certifique-se de que a duração de seu temporizador seja menor ou igual a 31622400 segundos. O resultado avaliado da duração é arredondado para baixo para o número inteiro mais próximo.
-
Erro: o resultado avaliado da sua expressão de duração para o temporizador chamado
é menor que 60. Para garantir a precisão, certifique-se de que a sua expressão de duração se refira a um valor entre 60‐31622400.<timer-name>
Certifique-se de que a duração de seu temporizador seja maior ou igual a 60 segundos. O resultado avaliado da duração é arredondado para baixo para o número inteiro mais próximo.
-
Erro: sua expressão de duração para o temporizador chamado
não pôde ser avaliada. Verifique os nomes das variáveis, nomes de entrada e caminhos para os dados para garantir que você se refira às variáveis e entradas existentes.<timer-name>
Certifique-se de que sua expressão de string se refira às variáveis e entradas existentes. A expressão de string pode conter números, variáveis (
$variable.
) e valores de entrada (variable-name
$input.
).input-name
.path-to-datum
-
Erro: falha ao definir o temporizador chamado
<timer-name>
. Confira a expressão de duração e tente novamente.Consulte a SetTimeração Ação para garantir que você especificou os parâmetros corretos e, em seguida, defina o cronômetro novamente.
Para obter mais informações, consulte Habilitar o CloudWatch registro na Amazon ao desenvolver modelos AWS IoT Events de detectores.
Erros de CloudWatch carga útil da Amazon
Você pode configurar o Amazon CloudWatch Logs para monitorar instâncias AWS IoT Events de modelos de detectores. A seguir estão os erros e avisos comuns gerados por AWS IoT Events, quando você configura a carga útil da ação.
-
Erro: não foi possível avaliar sua expressão para a ação. Verifique se os nomes das variáveis, os nomes de entrada e os caminhos para os dados se referem às variáveis e aos valores de entrada existentes. Além disso, verifique se o tamanho da carga é menor que 1 KB, o tamanho máximo permitido de uma carga útil.
Certifique-se de inserir os nomes corretos das variáveis, nomes de entrada e caminhos para os dados. Você também pode receber essa mensagem de erro se a carga da ação for maior que 1 KB.
-
Erro: não foi possível analisar sua expressão de conteúdo para a carga útil de
. Insira uma expressão de conteúdo com a sintaxe correta.<action-type>
É possível usar uma expressão de string que contenha strings (
'
), variáveis (string
'$variable.
), valores de entrada (variable-name
$input.
), concatenações de string e strings que contêminput-name
.path-to-datum
${}
. -
Erro: sua expressão de carga útil {
expression
} não é válida. O tipo de carga útil definido é JSON, então você deve especificar uma expressão que AWS IoT Events seria avaliada como uma string.Se o tipo de carga útil especificado for JSON, AWS IoT Events primeiro verifique se o serviço pode avaliar sua expressão como uma string. O resultado avaliado não pode ser um booliano ou um número. Se a validação falhar, você poderá receber esse erro.
-
Aviso: a ação foi executada, mas não foi possível avaliar sua expressão de conteúdo para que a carga da ação fosse um JSON válido. O tipo de carga útil definido é JSON.
Certifique-se de que AWS IoT Events pode avaliar sua expressão de conteúdo para a carga de ação como JSON válido, se você definir o tipo de carga como.
JSON
AWS IoT Events executa a ação mesmo que não AWS IoT Events consiga avaliar a expressão de conteúdo como JSON válido.
Para obter mais informações, consulte Habilitar o CloudWatch registro na Amazon ao desenvolver modelos AWS IoT Events de detectores.
Tipos de dados incompatíveis
Mensagem: tipos de dados incompatíveis [<inferred-types>
] encontrados para <reference>
na seguinte expressão: <expression>
Você pode receber um erro por um dos motivos a seguir:
-
Os resultados avaliados de suas referências não são compatíveis com outros operandos em suas expressões.
-
O tipo do argumento passado para uma função não é compatível.
Ao usar referências em expressões, verifique o seguinte:
-
Ao usar uma referência como operando com um ou mais operadores, verifique se todos os tipos de dados referenciados são compatíveis.
Por exemplo, na expressão a seguir, o inteiro
2
é um operando dos operadores==
e&&
. Para garantir que os operandos sejam compatíveis,$variable.testVariable + 1
e$variable.testVariable
devem referenciar um número inteiro ou decimal.Além disso, o inteiro
1
é um operando do operador+
. Portanto,$variable.testVariable
deve fazer referência a um número inteiro ou decimal.‘$variable.testVariable + 1 == 2 && $variable.testVariable’
-
Ao usar uma referência como argumento passado para uma função, verifique se a função é compatível com os tipos de dados aos quais você faz referência.
Por exemplo, a função a seguir
timeout("
requer uma string com aspas duplas como argumento. Caso use uma referência para o valor dotime-name
")timer-name
, você deverá referenciar uma string com aspas duplas.timeout("
timer-name
")nota
Para a função
convert(
, se você usar uma referência para o valor detype
,expression
)type
, o resultado avaliado da sua referência deverá serString
,Decimal
ouBoolean
.
Para ter mais informações, consulte Referências.
Falha ao enviar mensagem para AWS IoT Events
Mensagem: falha ao enviar mensagem para IoT Events
Você poderá ter esse erro pelos seguintes motivos:
A carga útil de mensagem de entrada não contêm
Input attribute Key
.O
Input attribute Key
não está no mesmo caminho JSON especificado na definição de entrada.A mensagem de entrada não corresponde ao esquema, conforme definido na AWS IoT Events entrada.
nota
A ingestão de dados de outros serviços também apresentará falhas.
Por exemplo AWS IoT Core, em, a AWS IoT regra falhará com a seguinte mensagem Verify the Input Attribute key.
Para resolver isso, certifique-se de que o esquema da mensagem de carga útil de entrada esteja em conformidade com a definição de AWS IoT Events entrada e que a localização correspondaInput attribute Key
. Para obter mais informações, consulte Como criar uma entrada no Painel de Navegação para saber como definir AWS IoT Events entradas.