

Aviso de fim do suporte: em 20 de maio de 2026, AWS encerrará o suporte para AWS IoT Events. Depois de 20 de maio de 2026, você não poderá mais acessar o AWS IoT Events console ou os AWS IoT Events recursos. Para obter mais informações, consulte [AWS IoT Events Fim do suporte](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

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

# Solução de problemas AWS IoT Events
<a name="iotevents-troubleshooting"></a>

 Este guia de solução de problemas fornece soluções para problemas comuns que você pode encontrar ao usar AWS IoT Events. Navegue pelos tópicos para identificar e resolver problemas com detecção de eventos, acesso a dados, permissões, integrações de serviços, configurações de dispositivos e muito mais. Com recomendações de solução de problemas para AWS IoT Events console, API, CLI, erros, latência e integrações, este guia tem como objetivo resolver rapidamente seus problemas para que você possa criar aplicativos orientados a eventos confiáveis e escaláveis.

**Topics**
+ [AWS IoT Events Problemas e soluções comuns](iotevents-error-messages.md)
+ [Solução de problemas de um modelo de detector executando análises em AWS IoT Events](iotevents-analyze-api.md)

# AWS IoT Events Problemas e soluções comuns
<a name="iotevents-error-messages"></a>

Consulte a seção a seguir para solucionar erros e encontrar possíveis soluções para resolver problemas com AWS IoT Events.

**Topics**
+ [Erros na criação do modelo do detector](#create-detector-model)
+ [Atualizações de um modelo de detector excluído](#update-detector-model)
+ [Falha no gatilho da ação (ao atender a uma condição)](#no-action)
+ [Falha no gatilho de ação (ao ultrapassar um limite)](#trigger-action)
+ [Uso incorreto de estados](#wrong-state)
+ [Mensagem de conexão](#connection-aborted-error)
+ [InvalidRequestException mensagem](#invalid-request)
+ [`action.setTimer`Erros do Amazon CloudWatch Logs](#cw-logs-timer)
+ [Erros de CloudWatch carga útil da Amazon](#cw-logs-payload)
+ [Tipos de dados incompatíveis](#troubleshoot-expressions-incompatible-data-types)
+ [Falha ao enviar mensagem para AWS IoT Events](#failed-to-send-to-iot-events)

## Erros na criação do modelo do detector
<a name="create-detector-model"></a>

Eu recebo erros quando tento criar um modelo de detector.

### Solução
<a name="w2aac42c11b7b5b1b1"></a>

 Ao criar um modelo de detector, considere as limitações a seguir. 
+ Somente uma ação é permitida em cada campo `action`.
+ O `condition` é exigido para `transitionEvents`. É opcional para eventos `OnEnter`, `OnInput` e `OnExit`. 
+ Se o campo `condition` estiver vazio, o resultado avaliado da expressão da condição será equivalente a `true`. 
+ 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 gatilho `actions` ou a transição para o `nextState` especificado no evento. 

Para obter mais informações, consulte [AWS IoT Events restrições e limitações do modelo de detector](iotevents-restrictions-detector-model.md). 

## Atualizações de um modelo de detector excluído
<a name="update-detector-model"></a>

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.

### Solução
<a name="w2aac42c11b9b5b1b1"></a>

Se você atualizar, excluir ou recriar um modelo de detector (consulte [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html)), 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)
<a name="no-action"></a>

O detector falha em acionar uma ação ou transição para um novo estado quando a condição é atendida.

### Solução
<a name="w2aac42c11c11b5b1b1"></a>

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](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-conditional-expressions.html). 

## Falha no gatilho de ação (ao ultrapassar um limite)
<a name="trigger-action"></a>

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.

### Solução
<a name="w2aac42c11c13b5b1b1"></a>

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
<a name="wrong-state"></a>

O detector entra nos estados errados quando eu tento enviar mensagens para as entradas usando `BatchPutMessage`.

### Solução
<a name="w2aac42c11c15b5b1b1"></a>

 Se você costuma [BatchPutMessage](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)enviar várias mensagens para 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
<a name="connection-aborted-error"></a>

Recebo um erro `('Connection aborted.', error(54, 'Connection reset by peer'))` quando tento chamar ou invocar uma API.

### Solução
<a name="w2aac42c11c17b5b1b1"></a>

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
<a name="invalid-request"></a>

Eu recebo InvalidRequestException quando tento ligar `CreateDetectorModel` `UpdateDetectorModel` APIs e.

### Solução
<a name="w2aac42c11c19b5b1b1"></a>

Verifique o seguinte, para ajudar a resolver esse problema. Para obter mais informações, consulte [CreateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateDetectorModel.html) e [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html).
+ Certifique-se de não usar `seconds` e `durationExpression` como parâmetros de `SetTimerAction` 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
<a name="cw-logs-timer"></a>

Você pode configurar o Amazon CloudWatch Logs para monitorar instâncias do modelo de AWS IoT Events detector. A seguir estão os erros comuns gerados por AWS IoT Events, quando você usa`action.setTimer`. 
+ **Erro:** a sua expressão de duração para o temporizador chamado `<timer-name>` não pôde ser avaliada como um número.

### Solução
<a name="w2aac42c11c21b5b1b3b1b1"></a>

   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 `<timer-name>` é 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.

### Solução
<a name="w2aac42c11c21b5b3b3b1b1"></a>

   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 `<timer-name>` é 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.

### Solução
<a name="w2aac42c11c21b5b5b3b1b1"></a>

   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 `<timer-name>` 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. 

### Solução
<a name="w2aac42c11c21b5b7b3b1b1"></a>

   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.variable-name`) e valores de entrada (`$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.

### Solução
<a name="w2aac42c11c21b5b9b3b1b1"></a>

   Veja a [SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html)ação para garantir que você especificou os parâmetros corretos e, em seguida, ajuste o cronômetro novamente. 

Para obter mais informações, consulte [Habilitar o CloudWatch registro na Amazon ao desenvolver modelos AWS IoT Events de detectores](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs). 

## Erros de CloudWatch carga útil da Amazon
<a name="cw-logs-payload"></a>

Você pode configurar o Amazon CloudWatch Logs para monitorar instâncias do modelo de AWS IoT Events detector. 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.

### Solução
<a name="w2aac42c11c23b5b1b3b1b1"></a>

   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 `<action-type>`. Insira uma expressão de conteúdo com a sintaxe correta.

### Solução
<a name="w2aac42c11c23b5b3b3b1b1"></a>

   É possível usar uma expressão de string que contenha strings (`'string'`), variáveis (`$variable.variable-name`), valores de entrada (`$input.input-name.path-to-datum`), concatenações de string e strings que contêm `${}`.
+ **Erro:** sua expressão de carga \$1*expression*\$1 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.

### Solução
<a name="w2aac42c11c23b5b5b5b1b1"></a>

   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.

### Solução
<a name="w2aac42c11c23b5b7b3b1b1"></a>

   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](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs).

## Tipos de dados incompatíveis
<a name="troubleshoot-expressions-incompatible-data-types"></a>

Mensagem: tipos de dados incompatíveis [`<inferred-types>`] encontrados para `<reference>` na seguinte expressão: `<expression>`

### Solução
<a name="w2aac42c11c25b5b1b1"></a>

 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:<a name="expression-reference-type-compatibility"></a>
+ 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("time-name")` requer uma string com aspas duplas como argumento. Se você usar uma referência para o *timer-name* valor, deverá referenciar uma string com aspas duplas.

  ```
  timeout("timer-name")
  ```
**nota**  
Para a `convert(type, expression)` função, se você usar uma referência para o *type* valor, o resultado avaliado da sua referência deverá ser`String`,`Decimal`, ou`Boolean`.

Para obter mais informações, consulte [AWS IoT Events referência para entradas e variáveis em expressões](iotevents-expressions.md#expression-reference). 

## Falha ao enviar mensagem para AWS IoT Events
<a name="failed-to-send-to-iot-events"></a>

Mensagem: falha ao enviar mensagem para IoT Events

### Solução
<a name="w2aac42c11c27b5b1b1"></a>

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.

**Example**  
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 corresponda`Input attribute Key`. Para obter mais informações, consulte [Crie uma entrada para modelos em AWS IoT Events](create-input-overview.md) para saber como definir AWS IoT Events entradas.

# Solução de problemas de um modelo de detector executando análises em AWS IoT Events
<a name="iotevents-analyze-api"></a>

AWS IoT Events pode analisar seu modelo de detector e gerar resultados de análise sem enviar dados de entrada para seu modelo de detector. AWS IoT Events executa uma série de análises descritas nesta seção para verificar seu modelo de detector. Essa solução avançada de solução de problemas também resume as informações de diagnóstico, incluindo o nível de gravidade e a localização, para que você possa encontrar e corrigir rapidamente possíveis problemas em seu modelo de detector. Para obter mais informações sobre tipos de erros de diagnóstico e mensagens para seu modelo de detector, consulte [Análise do modelo de detector e informações de diagnóstico para AWS IoT Events](analyze-diagnostic-information.md).

Você pode usar o AWS IoT Events console, a [API](https://docs.aws.amazon.com/iotevents/latest/apireference/), [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/iotevents/index.html) ou o [AWS SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) para visualizar mensagens de erro de diagnóstico da análise do seu modelo de detector.

**nota**  
Você deve corrigir todos os erros antes de publicar o seu modelo de detector.
Recomendamos que você analise os avisos e tome as medidas necessárias antes de usar seu modelo de detector em ambientes de produção. Caso contrário, o modelo do detector pode não funcionar conforme o esperado.
É possível ter até 10 análises no status `RUNNING` ao mesmo tempo.

Para saber como analisar seu modelo de detector, consulte [Analise um modelo de detector para AWS IoT Events (Console)](analyze-api-console.md) ou [Analise um modelo de detector em AWS IoT Events (AWS CLI)](analyze-api-api.md). 

**Topics**
+ [Análise do modelo de detector e informações de diagnóstico para AWS IoT Events](analyze-diagnostic-information.md)
+ [Analise um modelo de detector para AWS IoT Events (Console)](analyze-api-console.md)
+ [Analise um modelo de detector em AWS IoT Events (AWS CLI)](analyze-api-api.md)

# Análise do modelo de detector e informações de diagnóstico para AWS IoT Events
<a name="analyze-diagnostic-information"></a>

As análises do modelo do detector reúnem as seguintes informações de diagnóstico:
+ **Nível**: o nível de severidade do resultado da análise. Com base no nível de gravidade, os resultados da análise se enquadram em três categorias gerais:
  + **Informação** (`INFO`): um resultado de informação informa sobre um campo significativo em seu modelo de detector. Esse tipo de resultado geralmente não requer ação imediata.
  + **Aviso** (`WARNING`): um resultado de aviso chama atenção especial para campos que podem causar problemas em seu modelo de detector. Recomendamos que você analise os avisos e tome as medidas necessárias antes de usar seu modelo de detector em ambientes de produção. Caso contrário, o modelo do detector pode não funcionar conforme o esperado.
  + **Error** (`ERROR`): um resultado de erro notifica você sobre um problema encontrado em seu modelo de detector. O AWS IoT Events executa automaticamente esse conjunto de análises quando você tenta publicar o modelo do detector. Você deve corrigir todos os erros antes de publicar o modelo do detector.
+ **Localização**: contém informações que podem ser usadas para localizar o campo em seu modelo de detector ao qual o resultado da análise faz referência. Um local normalmente inclui o nome do estado, o nome do evento de transição, o nome do evento e a expressão (por exemplo, `in state TemperatureCheck in onEnter in event Init in action setVariable`).
+ **Tipo**: o tipo do resultado da análise. Os tipos de análise entram nas seguintes categorias:
  + `supported-actions`— AWS IoT Events pode invocar ações quando um evento específico ou evento de transição é detectado. É possível definir ações integradas para usar um temporizador, definir uma variável ou enviar dados para outros serviços da AWS . Você deve especificar ações que funcionem com outros AWS serviços em uma AWS região em que os AWS serviços estejam disponíveis. 
  + `service-limits`— As cotas de serviço, também conhecidas como limites, são o número máximo ou mínimo de recursos ou operações de serviço para sua AWS conta. A menos que especificado de outra forma, cada cota é específica para a região. Dependendo das necessidades de sua empresa, é possível atualizar seu modelo de detector para evitar limites ou solicitar um aumento de cota. Você pode solicitar aumentos para algumas cotas e outras cotas não podem ser aumentadas. Para mais informações, consulte [Cotas do ](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-quotas.html).
+ **`structure`**: o modelo do detector deve ter todos os componentes necessários, como estados, e seguir uma estrutura compatível com o AWS IoT Events . Um modelo de detector deve ter pelo menos um estado e uma condição que avalie os dados de entrada recebidos para detectar eventos significativos. Quando um evento é detectado, o modelo do detector passa para o próximo estado e pode invocar ações. Esses eventos são conhecidos como eventos de transição. Um evento de transição deve direcionar o próximo estado a ser inserido.
+ **`expression-syntax`**: o AWS IoT Events fornece várias maneiras de especificar valores ao criar e atualizar modelos de detectores. É possível usar literais, operadores, funções, referências e modelos de substituição nas expressões. Você pode usar expressões para especificar valores literais ou AWS IoT Events avaliar as expressões antes de especificar valores específicos. Sua expressão deve seguir a sintaxe necessária. Para obter mais informações, consulte [Expressões para filtrar, transformar e processar dados de eventos](iotevents-expressions.md).

  As expressões do modelo Detector AWS IoT Events podem fazer referência a dados específicos ou a um recurso.
  + **`data-type`**: o AWS IoT Events é compatível com tipos de dados inteiros, decimais, strings e boolianos. Se AWS IoT Events puder converter automaticamente os dados de um tipo de dados em outro durante a avaliação da expressão, esses tipos de dados são compatíveis.
**nota**  
Inteiro e decimal são os únicos tipos de dados compatíveis suportados pelo AWS IoT Events.
AWS IoT Events não é possível avaliar expressões aritméticas porque não é AWS IoT Events possível converter um inteiro em uma string.
  + **`referenced-data`**: é preciso definir os dados referenciados em seu modelo de detector antes de poder usar os dados. Por exemplo, se quiser enviar dados para uma tabela do DynamoDB, você deve definir uma variável que faça referência ao nome da tabela antes de poder usar a variável em uma expressão (`$variable.TableName`).
  + **`referenced-resource`**: os recursos que o modelo do detector usa devem estar disponíveis. É preciso definir recursos para poder usá-los. Por exemplo, você deseja criar um modelo de detector para monitorar a temperatura de uma estufa. É preciso definir uma entrada (`$input.TemperatureInput`) para rotear os dados de temperatura recebidos para o modelo do detector antes de poder usar o `$input.TemperatureInput.sensorData.temperature` para referenciar a temperatura.

Consulte a seção a seguir para solucionar erros e encontrar possíveis soluções a partir da análise do seu modelo de detector.

## Solucione erros do modelo do detector em AWS IoT Events
<a name="troubleshoot-error-messages"></a>

Os tipos de erros descritos acima fornecem informações de diagnóstico sobre um modelo de detector e correspondem às mensagens que você pode recuperar. Use essas mensagens e soluções sugeridas para solucionar erros com seu modelo de detector.

**Topics**
+ [`Location`](#analyze-location)
+ [`supported-actions`](#analyze-supported-actions)
+ [`service-limits`](#analyze-service-limits)
+ [`structure`](#analyze-structure)
+ [`expression-syntax`](#analyze-expression-syntax)
+ [`data-type`](#analyze-data-type)
+ [`referenced-data`](#analyze-referenced-data)
+ [`referenced-resource`](#analyze-referenced-resource)

### `Location`
<a name="analyze-location"></a>

Um resultado de análise com informações sobre a `Location` corresponde à seguinte mensagem de erro: 
+ **Mensagem**: contém informações adicionais sobre o resultado da análise. Isso pode ser uma informação, um aviso ou uma mensagem de erro.

#### Solução
<a name="w2aac42c13c13b9b7b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se tiver especificado uma ação que o AWS IoT Events atualmente não é compatível. Para ver uma de ações compatíveis, consulte [Ações suportadas para receber dados e acionar ações em AWS IoT Events](iotevents-supported-actions.md).

### `supported-actions`
<a name="analyze-supported-actions"></a>

Um resultado de análise com informações sobre `supported‐actions`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** Tipo de ação inválido presente na definição da ação:*action-definition*.

#### Solução
<a name="w2aac42c13c13b9b9b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se tiver especificado uma ação que o AWS IoT Events atualmente não é compatível. Para ver uma de ações compatíveis, consulte [Ações suportadas para receber dados e acionar ações em AWS IoT Events](iotevents-supported-actions.md).
+ **Mensagem:** a DetectorModel definição tem uma *aws-service* ação, mas o *aws-service* serviço não é suportado na região*region-name*.

#### Solução
<a name="w2aac42c13c13b9b9b5b3b3b1b1"></a>

   Você pode receber essa mensagem de erro se a ação especificada for suportada pelo AWS IoT Events, mas a ação não estiver disponível na sua região atual. Isso pode ocorrer quando você tenta enviar dados para um AWS serviço que não está disponível na região. Você também deve escolher a mesma região para ambas AWS IoT Events e para os AWS serviços que está usando.

### `service-limits`
<a name="analyze-service-limits"></a>

Um resultado de análise com informações sobre `service‐limits`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** A expressão de conteúdo permitida na carga útil excedeu o limite de *content-expression-size* bytes no estado do evento*event-name*. *state-name*

#### Solução
<a name="w2aac42c13c13b9c11b5b1b3b1b1"></a>

   você poderá receber essa mensagem de erro se a expressão de conteúdo do sua carga útil for maior que 1024 bytes. O tamanho da expressão de conteúdo de uma carga pode ser de até 1024 bytes.
+ **Mensagem:** O número de estados permitidos na definição do modelo do detector excedeu o limite*states-per-detector-model*.

#### Solução
<a name="w2aac42c13c13b9c11b5b3b3b1b1"></a>

   você pode receber essa mensagem de erro se o modelo do detector tiver mais de 20 estados. Um modelo de detector pode ter até 20 estados.
+ **Mensagem:** A duração do cronômetro *timer-name* deve ser de pelo menos *minimum-timer-duration* segundos.

#### Solução
<a name="w2aac42c13c13b9c11b5b5b3b1b1"></a>

   você pode receber essa mensagem de erro se a duração do temporizador for inferior a 60 segundos. Recomendamos que a duração de um temporizador esteja entre 60 e 31622400 segundos. Se você especificar uma expressão para a duração do temporizador, o resultado avaliado da expressão de duração será arredondado para baixo para o número inteiro mais próximo.
+ **Mensagem:** O número de ações permitidas por evento excedeu o limite *actions-per-event* na definição do modelo do detector

#### Solução
<a name="w2aac42c13c13b9c11b5b7b3b1b1"></a>

   você pode receber essa mensagem de erro se o evento tiver mais de 10 ações. Você pode ter até dez ações para cada evento no seu modelo de detector.
+ **Mensagem:** O número de eventos de transição permitidos por estado excedeu o limite *transition-events-per-state* na definição do modelo do detector.

#### Solução
<a name="w2aac42c13c13b9c11b5b9b3b1b1"></a>

   você pode receber essa mensagem de erro se o estado tiver mais de 20 eventos de transição. Você pode ter até 20 eventos de transição para cada estado no seu modelo de detector.
+ **Mensagem:** O número de eventos permitidos por estado excedeu o limite *events-per-state* na definição do modelo do detector

#### Solução
<a name="w2aac42c13c13b9c11b5c11b3b1b1"></a>

   você pode receber essa mensagem de erro se o estado tiver mais de 20 eventos. Você pode ter até 20 eventos para cada estado no seu modelo de detector.
+ **Mensagem:** o número máximo de modelos de detector que podem ser associados a uma única entrada. *input-name*A entrada é usada em rotas *detector-models-per-input* de modelos de detectores.

#### Solução
<a name="w2aac42c13c13b9c11b5c13b3b1b1"></a>

   você pode receber essa mensagem de aviso se tentar rotear uma entrada para mais de 10 modelos de detectores. Você pode ter até 10 modelos de detectores diferentes associados a um único modelo de detector.

### `structure`
<a name="analyze-structure"></a>

Um resultado de análise com informações sobre `structure`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** As ações podem ter apenas um tipo definido, mas encontraram uma ação com *number-of-types* tipos. Divida em ações separadas.

#### Solução
<a name="w2aac42c13c13b9c13b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se tiver especificado duas ou mais ações em um único campo usando operações de API para criar ou atualizar o seu modelo de detector. É possível definir uma matriz de objetos de `Action`. Certifique-se de definir cada ação como um objeto separado.
+ **Mensagem:** As TransitionEvent *transition-event-name* transições para um estado inexistente. *state-name*

#### Solução
<a name="w2aac42c13c13b9c13b5b3b3b1b1"></a>

   você pode receber essa mensagem de erro se não AWS IoT Events conseguir encontrar o próximo estado ao qual seu evento de transição fez referência. Verifique se o próximo estado está definido e se você inseriu o nome correto do estado.
+ **Mensagem:** Eles DetectorModelDefinition tinham um nome de estado compartilhado: estado encontrado *state-name* com *number-of-states* repetições.

#### Solução
<a name="w2aac42c13c13b9c13b5b5b3b1b1"></a>

   você pode receber essa mensagem de erro se usar o mesmo nome para um ou mais estados. Certifique-se de dar um nome exclusivo a cada estado em seu modelo de detector. Esse nome do estado deve ter de 1 a 128 caracteres. Os caracteres válidos são a-z, A-Z, 0-9, \$1 (sublinhado) e - (hífen).
+ **Mensagem:** A definição initialStateName *initial-state-name* não correspondia a um estado definido.

#### Solução
<a name="w2aac42c13c13b9c13b5b7b3b1b1"></a>

   você pode receber essa mensagem de erro se o nome do estado inicial estiver incorreto. O modelo do detector permanece no estado inicial (início) até que uma entrada chegue. Quando uma entrada chega, o modelo do detector passa imediatamente para o próximo estado. Verifique se o nome do estado inicial seja o nome de um estado definido e se você inseriu o nome correto.
+ **Mensagem:** a definição do modelo do detector deve usar pelo menos uma entrada em uma condição.

#### Solução
<a name="w2aac42c13c13b9c13b5b9b3b1b1"></a>

   você pode receber esse erro se não tiver especificado uma entrada em uma condição. É necessário usar pelo menos uma entrada em pelo menos uma condição. Caso contrário, AWS IoT Events não avalia os dados recebidos.
+ **Mensagem:** Somente um de segundos e DurationExpression podem ser configurados. SetTimer

#### Solução
<a name="w2aac42c13c13b9c13b5c11b3b1b1"></a>

   Você pode receber essa mensagem de erro se tiver usado `seconds` e `durationExpression` para o seu temporizador. Certifique-se de usar um `seconds` ou `durationExpression` como parâmetros de `SetTimerAction`. Para obter mais informações, consulte [SetTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html) na *Referência de APIs do AWS IoT Events *.
+  **Mensagem:** uma ação em seu modelo de detector está inacessível. Verifique a condição que inicia a ação. 

#### Solução
<a name="w2aac42c13c13b9c13b5c15b3b1b1"></a>

   se uma ação em seu modelo de detector estiver inacessível, a condição do evento será avaliada como falsa. Verifique a condição do evento que contém a ação para garantir que ela seja avaliada como verdadeira. Quando a condição do evento é avaliada como verdadeira, a ação deve se tornar acessível.
+ **Mensagem:** um atributo de entrada está sendo lido, mas isso pode ser causado pela expiração do temporizador.

#### Solução
<a name="w2aac42c13c13b9c13b5c17b3b1b1"></a>

   o valor de um atributo de entrada pode ser lido quando ocorre uma das seguintes situações: 
  + Um novo valor de entrada foi recebido.
  + Quando um temporizador no detector expirar.

  

  Para garantir que um atributo de entrada seja avaliado somente quando o novo valor dessa entrada for recebido, inclua uma chamada para a função `triggerType(“Message”)` em sua condição da seguinte maneira:

  A condição original que está sendo avaliada no modelo do detector: 

  ```
  if ($input.HeartBeat.status == “OFFLINE”)
  ```

  O relatório ficaria semelhante ao seguinte: 

  ```
  if ( triggerType("MESSAGE") &&  $input.HeartBeat.status == “OFFLINE”)
  ```

  onde uma chamada para a função `triggerType(“Message”)` vem antes da entrada inicial fornecida na condição. Ao usar essa técnica, a função `triggerType("Message")` será avaliada como verdadeira e satisfará a condição de receber um novo valor de entrada. Para obter mais informações sobre o uso da função `triggerType`, pesquise `triggerType` na seção [Expressões](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-expressions.html) no *Guia do desenvolvedor do AWS IoT Events * 
+ **Mensagem:** um estado em seu modelo de detector está inacessível. Verifique a condição que causará uma transição para o estado desejado.

#### Solução
<a name="w2aac42c13c13b9c13b5c19b3b1b1"></a>

   se um estado em seu modelo de detector estiver inacessível, uma condição que causa uma transição de entrada para esse estado será avaliada como falsa. Verifique se as condições das transições de entrada para esse estado inacessível em seu modelo de detector são avaliadas como verdadeiras, para que o estado desejado possa se tornar acessível.
+ **Mensagem:** um temporizador expirando pode causar o envio de uma quantidade inesperada de mensagens.

#### Solução
<a name="w2aac42c13c13b9c13b5c21b3b1b1"></a>

   para evitar que o modelo do detector entre em um estado infinito de envio de uma quantidade inesperada de mensagens porque o temporizador expirou, considere usar uma chamada para a função `triggerType("Message")`, nas condições do modelo do detector da seguinte forma: 

  A condição original que está sendo avaliada no modelo do detector: 

  ```
  if (timeout("awake"))
  ```

  seria transformada em uma condição semelhante à seguinte: 

  ```
   if (triggerType("MESSAGE") && timeout("awake")) 
  ```

  onde uma chamada para a função `triggerType(“Message”)` vem antes da entrada inicial fornecida na condição.

  Essa alteração impede o início de ações do temporizador em seu detector, evitando o envio de um loop infinito de mensagens. Para obter mais informações sobre como usar as ações do temporizador em seu detector, consulte a página [Usar ações integradas](https://docs.aws.amazon.com/iotevents/latest/developerguide/built-in-actions.html) do *Guia do desenvolvedor do AWS IoT Events *

### `expression-syntax`
<a name="analyze-expression-syntax"></a>

Um resultado de análise com informações sobre `expression‐syntax`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** Sua expressão de carga \$1*expression*\$1 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.

#### Solução
<a name="w2aac42c13c13b9c15b5b1b3b1b1"></a>

   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 não for bem-sucedida, você poderá receber esse erro.
+ **Mensagem:** `SetVariableAction.value` deve ser uma expressão. Falha ao analisar o valor '' *variable-value*

#### Solução
<a name="w2aac42c13c13b9c15b5b3b3b1b1"></a>

   é possível usar `SetVariableAction` para definir uma variável com um `name` e `value`. `value` pode ser uma string, número ou valor booliano. Também é possível especificar uma expressão para o `value`. Para obter mais informações [SetVariableAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetVariableAction.html), consulte a *Referência AWS IoT Events da API*.
+ **Mensagem:** Não foi possível analisar sua expressão dos atributos (*attribute-name*) para a ação do DynamoDB. Insira a expressão com a sintaxe correta.

#### Solução
<a name="w2aac42c13c13b9c15b5b5b3b1b1"></a>

   é necessário usar expressões para todos os parâmetros nos modelos de substituição `DynamoDBAction`. Para obter mais informações, consulte [Dynamo DBAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBAction.html) na *Referência da AWS IoT Events API*.
+ **Mensagem:** Não foi possível analisar sua expressão do TableName para a ação do Dynamo. DBv2 Insira a expressão com a sintaxe correta.

#### Solução
<a name="w2aac42c13c13b9c15b5b7b3b1b1"></a>

   a entrada `tableName` em `DynamoDBv2Action` deve ser uma string. Você deve usar uma expressão para o `tableName`. As expressões aceitam literais, operadores, funções, referências e modelos de substituição. Para obter mais informações, consulte [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html) na *Referência da AWS IoT Events API*.
+ **Mensagem:** não foi possível avaliar a sua expressão como um JSON válido. A DBv2 ação do Dynamo só é compatível com o tipo de carga JSON.

#### Solução
<a name="w2aac42c13c13b9c15b5b9b3b1b1"></a>

   o tipo de carga útil para `DynamoDBv2` deve ser JSON. Certifique-se de que AWS IoT Events possa avaliar sua expressão de conteúdo para a carga útil em JSON válido. Para obter mais informações, consulte [Dynamo DBv2 Action](https://docs.aws.amazon.com/iotevents/latest/apireference/API_DynamoDBv2Action.html), na *Referência da AWS IoT Events API*. 
+ **Mensagem:** Não foi possível analisar sua expressão de conteúdo para a carga de. *action-type* Insira uma expressão de conteúdo com a sintaxe correta.

#### Solução
<a name="w2aac42c13c13b9c15b5c11b3b1b1"></a>

   a expressão de conteúdo pode conter cadeias de caracteres ('*string*'), variáveis (\$1variable. *variable-name*), valores de entrada (\$1input. *input-name*. *path-to-datum*), concatenações de strings e strings que contêm. `${}` 
+ **Mensagem:** as cargas personalizadas não devem estar vazias.

#### Solução
<a name="w2aac42c13c13b9c15b5c13b3b1b1"></a>

   Você pode receber essa mensagem de erro se escolher **Carga personalizada** para sua ação e não inserir uma expressão de conteúdo no AWS IoT Events console. Se escolher **Carga personalizada**, deverá inserir uma expressão de conteúdo em **Carga personalizada**. Para obter mais informações, consulte [Carga útil](https://docs.aws.amazon.com/iotevents/latest/apireference/API_Payload.html) na *Referência da API do AWS IoT Events *.
+ **Mensagem:** Falha ao analisar a expressão de duração '*duration-expression*' para o cronômetro ''. *timer-name*

#### Solução
<a name="w2aac42c13c13b9c15b5c15b3b1b1"></a>

   o resultado avaliado da sua expressão de duração para o temporizador deve ser um valor entre 60 e 31622400. O resultado avaliado da duração é arredondado para baixo para o número inteiro mais próximo.
+ **Mensagem:** Falha ao analisar a expressão '*expression*' para *action-name*

#### Solução
<a name="w2aac42c13c13b9c15b5c17b3b1b1"></a>

   você pode receber essa mensagem se a expressão da ação especificada tiver uma sintaxe incorreta. Certifique-se de inserir uma expressão com a sintaxe correta. Para obter mais informações, consulte [Sintaxe para filtrar dados do dispositivo e definir ações no AWS IoT Events](iotevents-expressions.md#expression-syntax).
+ **Mensagem:** Seu *fieldName* formulário não `IotSitewiseAction` pôde ser analisado. Você deve usar a sintaxe correta na expressão.

#### Solução
<a name="w2aac42c13c13b9c15b5c19b3b1b1"></a>

   Você pode receber esse erro se AWS IoT Events não conseguir analisar seu formulário*fieldName*. `IotSitewiseAction` Certifique-se de *fieldName* usar uma expressão que AWS IoT Events possa ser analisada. Para obter mais informações, consulte [IotSiteWiseAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_IotSiteWiseAction.html) na *Referência de APIs do AWS IoT Events *.

### `data-type`
<a name="analyze-data-type"></a>

Um resultado de análise com informações sobre `data‐type`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** A expressão *duration-expression* de duração do cronômetro não *timer-name* é válida, ela deve retornar um número.

#### Solução
<a name="w2aac42c13c13b9c17b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se AWS IoT Events não conseguir avaliar a expressão de duração do cronômetro para um número. Certifique-se de que seu `durationExpression` possa ser convertido em um número. Outros tipos de dados, como o booliano, não são compatíveis. 
+ **Mensagem:** *condition-expression* A expressão não é uma expressão de condição válida.

#### Solução
<a name="w2aac42c13c13b9c17b5b3b3b1b1"></a>

   você pode receber essa mensagem de erro se não AWS IoT Events conseguir avaliá-la como um valor booleano. `condition-expression` O valor booliano deve ser `TRUE` ou `FALSE`. Certifique-se de que sua expressão de condição possa ser convertida em um valor booliano. Se o resultado não for um valor booliano, ele é equivalente a `FALSE` e não invoca as ações ou a transição para o `nextState` especificado no evento.
+ **Mensagem:** Tipos de dados incompatíveis [*inferred-types*] encontrados *reference* na seguinte expressão: *expression*

#### Solução
<a name="w2aac42c13c13b9c17b5b5b3b1b1"></a>

   **Solução**: todas as expressões para o mesmo atributo ou variável de entrada no modelo do detector devem fazer referência ao mesmo tipo de dados. 

  Use as informações a seguir para resolver o problema:<a name="expression-reference-type-compatibility"></a>
  + 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("time-name")` requer uma string com aspas duplas como argumento. Se você usar uma referência para o *timer-name* valor, deverá referenciar uma string com aspas duplas.

    ```
    timeout("timer-name")
    ```
**nota**  
Para a `convert(type, expression)` função, se você usar uma referência para o *type* valor, o resultado avaliado da sua referência deverá ser`String`,`Decimal`, ou`Boolean`.

  Para obter mais informações, consulte [AWS IoT Events referência para entradas e variáveis em expressões](iotevents-expressions.md#expression-reference).
+ **Mensagem:** Tipos de dados incompatíveis [*inferred-types*] usados com*reference*. Isso pode levar a um erro de runtime.

#### Solução
<a name="w2aac42c13c13b9c17b5b7b3b1b1"></a>

   você pode receber essa mensagem de aviso se duas expressões para o mesmo atributo de entrada ou variável fizerem referência a dois tipos de dados. Certifique-se de que suas expressões para o mesmo atributo ou variável de entrada façam referência ao mesmo tipo de dados no modelo do detector.
+ **Mensagem:** Os tipos de dados [*inferred‐types*] que você inseriu para o operador [*operator*] não são compatíveis com a seguinte expressão: '*expression*'

#### Solução
<a name="w2aac42c13c13b9c17b5b9b3b1b1"></a>

   você pode receber essa mensagem de erro se sua expressão combinar tipos de dados que não são compatíveis com um operador especificado. Por exemplo, na expressão a seguir, o operador `+` é compatível com os tipos de dados Inteiro, Decimal e String, mas não com operandos do tipo de dados booliano.

  ```
  true + false
  ```

  Você deve se certificar de que os tipos de dados usados com um operador sejam compatíveis.
+ **Mensagem:** Os tipos de dados [*inferred‐types*] encontrados *input‐attribute* não são compatíveis e podem causar um erro de tempo de execução.

#### Solução
<a name="w2aac42c13c13b9c17b5c11b3b1b1"></a>

   você pode receber essa mensagem de erro se duas expressões para o mesmo atributo de entrada fizerem referência a dois tipos de dados para o `OnEnterLifecycle` de um estado ou para o `OnInputLifecycle` e `OnExitLifecycle` de um estado. Certifique-se de que suas expressões em `OnEnterLifecycle` (ou, `OnInputLifecycle` e`OnExitLifecycle`) façam referência ao mesmo tipo de dados para cada estado do seu modelo de detector.
+ **Mensagem:** A expressão da carga útil [*expression*] não é válida. Especifique uma expressão que seria avaliada como uma string em runtime porque o tipo de carga é o formato JSON.

#### Solução
<a name="w2aac42c13c13b9c17b5c13b3b1b1"></a>

   você pode receber esse erro se o tipo de carga útil especificado for JSON, mas não AWS IoT Events conseguir  avaliar sua expressão como uma String. Certifique-se de que o resultado avaliado seja uma string, não um booliano ou um número. 
+ **Mensagem:** Sua expressão interpolada \$1*interpolated-expression*\$1 deve ser avaliada como um valor inteiro ou booleano em tempo de execução. Caso contrário, sua expressão de carga útil \$1*payload-expression*\$1 não poderá ser analisada em tempo de execução como JSON válido.

#### Solução
<a name="w2aac42c13c13b9c17b5c15b3b1b1"></a>

   você pode receber essa mensagem de erro se não AWS IoT Events conseguir avaliar sua expressão interpolada como um número inteiro ou um valor booleano. Certifique-se de que sua expressão interpolada possa ser convertida em um valor inteiro ou booliano, pois não há suporte para outros tipos de dados, como string.
+ **Mensagem:** O tipo de expressão no `IotSitewiseAction` campo *expression* é definido como tipo *defined‐type* e inferido como tipo*inferred‐type*. O tipo definido e o tipo inferido devem ser iguais.

#### Solução
<a name="w2aac42c13c13b9c17b5c17b3b1b1"></a>

   você pode receber essa mensagem de erro se sua expressão no `propertyValue` de `IotSitewiseAction` tiver um tipo de dados definido de forma diferente do tipo de dados inferido por AWS IoT Events. Certifique-se de usar o mesmo tipo de dados para todas as instâncias dessa expressão em seu modelo de detector.
+ **Mensagem:** Os tipos de dados [*inferred-types*] usados para `setTimer` ação não são avaliados `Integer` para a seguinte expressão: *expression*

#### Solução
<a name="w2aac42c13c13b9c17b5c19b3b1b1"></a>

   você pode receber essa mensagem de erro se o tipo de dados inferido para sua expressão de duração não for integral ou decimal. Verifique se o seu `durationExpression` pode ser convertido em um número. Outros armazenamentos de dados, como booliano e string, não são compatíveis.
+ **Mensagem:** Os tipos de dados [*inferred-types*] usados com operandos do operador de comparação [*operator*] não são compatíveis na seguinte expressão: *expression*

#### Solução
<a name="w2aac42c13c13b9c17b5c21b3b1b1"></a>

   Os tipos de dados inferidos para os operandos da expressão condicional (*expression*) do seu modelo de detector não *operator* coincidem. Os operandos devem ser usados com os tipos de dados correspondentes em todas as outras partes do seu modelo de detector.

**dica**  
Você pode usar `convert` para alterar o tipo de dados de uma expressão em seu modelo de detector. Para obter mais informações, consulte [Funções para usar em AWS IoT Events expressões](iotevents-expressions.md#expression-function).

### `referenced-data`
<a name="analyze-referenced-data"></a>

Um resultado de análise com informações sobre `referenced‐data`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** Detectado cronômetro quebrado: o cronômetro *timer-name* é usado em uma expressão, mas nunca é definido.

#### Solução
<a name="w2aac42c13c13b9c19b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se usar um temporizador que não esteja definido. Você deve definir um temporizador antes de usá-lo em uma expressão. Além disso, certifique-se de inserir nome correto do temporizador.
+ **Mensagem:** Variável quebrada detectada: a variável *variable-name* é usada em uma expressão, mas nunca é definida.

#### Solução
<a name="w2aac42c13c13b9c19b5b3b3b1b1"></a>

   você pode receber essa mensagem de erro se usar uma variável que não esteja definida. Você deve definir uma variável antes de usá-la em uma expressão. Além disso, verifique se o nome correto da variável foi inserido.
+ **Mensagem:** variável quebrada detectada: uma variável é usada em uma expressão antes de ser definida como um valor.

#### Solução
<a name="w2aac42c13c13b9c19b5b5b3b1b1"></a>

   cada variável deve ser atribuída a um valor antes de poder ser avaliada em uma expressão. Defina o valor da variável antes de cada uso para que seu valor possa ser recuperado. Além disso, verifique se o nome correto da variável foi inserido.

### `referenced-resource`
<a name="analyze-referenced-resource"></a>

Um resultado de análise com informações sobre `referenced‐resource`, corresponde às seguintes mensagens de erro: 
+ **Mensagem:** a definição do modelo do detector contém uma referência a uma entrada que não existe.

#### Solução
<a name="w2aac42c13c13b9c21b5b1b3b1b1"></a>

   você pode receber essa mensagem de erro se usar expressões para referenciar uma entrada que não existe. Certifique-se de que sua expressão faça referência a uma entrada existente e insira o nome correto da entrada. Se não tiver uma entrada, crie uma primeiro.
+ **Mensagem:** A definição do modelo do detector contém informações inválidas InputName: *input-name*

#### Solução
<a name="w2aac42c13c13b9c21b5b3b3b1b1"></a>

   você pode receber essa mensagem de erro se o modelo do detector contiver um nome de entrada inválido. Certifique-se de que inseriu o nome da entrada correto. Esse nome deve ter de 1 a 128 caracteres. Os caracteres válidos são a-z, A-Z, 0-9, \$1 (sublinhado) e - (hífen).

# Analise um modelo de detector para AWS IoT Events (Console)
<a name="analyze-api-console"></a>

AWS IoT Events permite monitorar e reagir aos dados de IoT detectando eventos e acionando ações com a API. AWS IoT Events As etapas a seguir usam o AWS IoT Events console para analisar um modelo de detector.

**nota**  
Depois de AWS IoT Events começar a analisar seu modelo de detector, você tem até 24 horas para recuperar os resultados da análise.

A análise do modelo do detector pode ajudá-lo a otimizar seus modelos, identificar possíveis problemas e garantir que eles funcionem conforme o esperado. Por exemplo, em um parque eólico, a análise do modelo do detector pode revelar se o modelo identifica corretamente possíveis falhas na engrenagem com base em padrões de vibração anormais. Ou, se o modelo acionar alertas de manutenção com precisão quando as velocidades do vento excederem os limites operacionais seguros. Ao refinar um modelo com base na análise, você pode melhorar a manutenção preditiva, reduzir o tempo de inatividade e melhorar a eficiência geral da produção de energia.

**Para analisar um modelo de detector**

1. Faça login no [console do AWS IoT Events](https://console.aws.amazon.com/iotevents/).

1. No painel de navegação, selecione **Modelos de detector**.

1. Em **Modelos de detector**, escolha o modelo do detector alvo.

1. Na página do modelo do detector, escolha **Editar**.

1. No canto superior direito, escolha **Executar análise**.  
![\[Captura de tela de como analisar modelos de detectores no console do AWS IoT Events .\]](http://docs.aws.amazon.com/pt_br/iotevents/latest/developerguide/images/analyzeAPI1.png)

   Veja a seguir um exemplo de resultado de análise no AWS IoT Events console.  
![\[Captura de tela de como analisar modelos de detectores no console do AWS IoT Events .\]](http://docs.aws.amazon.com/pt_br/iotevents/latest/developerguide/images/analyzeAPI2.png)

# Analise um modelo de detector em AWS IoT Events (AWS CLI)
<a name="analyze-api-api"></a>

A análise programática de seus modelos de AWS IoT Events detectores fornece informações valiosas sobre sua estrutura, comportamento e desempenho. Essa abordagem baseada em API permite análise automatizada, integração com seus fluxos de trabalho existentes e a capacidade de realizar operações em massa em vários modelos de detectores. Ao aproveitar a [StartDetectorModelAnalysis](https://docs.aws.amazon.com/iotevents/latest/apireference/API_StartDetectorModelAnalysis.html)API, você pode iniciar exames detalhados de seus modelos, ajudando a identificar possíveis problemas, otimizar fluxos lógicos e garantir que o processamento de eventos de IoT esteja alinhado aos requisitos de sua empresa.

As etapas a seguir usam o AWS CLI para analisar um modelo de detector.

**Para analisar um modelo de detector usando AWS CLI**

1. Execute o comando a seguir para iniciar uma análise.

   ```
   aws iotevents start-detector-model-analysis --cli-input-json file://file-name.json
   ```
**nota**  
*file-name*Substitua pelo nome do arquivo que contém a definição do modelo do detector.  
**Example Definição do modelo de detector**  

   ```
   {
       "detectorModelDefinition": {
           "states": [
               {
                   "stateName": "TemperatureCheck",
                   "onInput": {
                       "events": [
                           {
                               "eventName": "Temperature Received",
                               "condition": "isNull($input.TemperatureInput.sensorData.temperature)==false",
                               "actions": [
                                   {
                                       "iotTopicPublish": {
                                           "mqttTopic": "IoTEvents/Output"
                                       }
                                   }
                               ]
                           }
                       ],
                       "transitionEvents": []
                   },
                   "onEnter": {
                       "events": [
                           {
                               "eventName": "Init",
                               "condition": "true",
                               "actions": [
                                   {
                                       "setVariable": {
                                           "variableName": "temperatureChecked",
                                           "value": "0"
                                       }
                                   }
                               ]
                           }
                       ]
                   },
                   "onExit": {
                       "events": []
                   }
               }
           ],
           "initialStateName": "TemperatureCheck"
       }
   }
   ```

   Se você usar o AWS CLI para analisar um modelo de detector existente,  escolha uma das opções a seguir para recuperar a definição do modelo de detector:
   + Se você quiser usar o AWS IoT Events console, faça o seguinte:

     1. No painel de navegação à esquerda, escolha **Modelos de detector**.

     1. Em **Modelos de detector**, escolha o modelo do detector alvo.

     1. Escolha **Exportar modelo de detector** em **Ação** para baixar o modelo do detector. O modelo do detector é salvo em JSON.

     1. Abra o arquivo JSON do modelo do detector.

     1. Você só precisa do objeto `detectorModelDefinition`. Remova o seguinte:
        + O primeiro colchete (`{`) na parte superior da página
        + A linha `detectorModel`
        + O objeto `detectorModelConfiguration`
        + O último colchete (`}`) na parte inferior da página

     1. Salve o arquivo.
   + Se você quiser usar o AWS CLI, faça o seguinte:

     1. Execute o comando a seguir em um terminal.

        ```
        aws iotevents describe-detector-model --detector-model-name detector-model-name
        ```

     1. *detector-model-name*Substitua pelo nome do modelo do seu detector.

     1. Copie o objeto `detectorModelDefinition` em um editor de textos.

     1. Adicione colchetes (`{}`) fora do `detectorModelDefinition`.

     1. Salve o arquivo em JSON.  
**Example Exemplo de resposta**  

   ```
   {
       "analysisId": "c1133390-14e3-4204-9a66-31efd92a4fed"
   }
   ```

1. Copie a ID da análise da saída.

1. Execute o comando a seguir para recuperar o status da análise.

   ```
   aws iotevents describe-detector-model-analysis --analysis-id "analysis-id"
   ```
**nota**  
*analysis-id*Substitua pela ID de análise que você copiou.  
**Example Exemplo de resposta**  

   ```
   {
       "status": "COMPLETE"
   }
   ```

   O status pode ser um dos valores a seguir:
   + `RUNNING`— AWS IoT Events está analisando seu modelo de detector. O processo pode levar até um minuto para ser concluído.
   + `COMPLETE`— AWS IoT Events terminou de analisar seu modelo de detector.
   + `FAILED`— AWS IoT Events não foi possível analisar seu modelo de detector. Tente novamente mais tarde.

1. Execute o comando a seguir para recuperar um ou mais resultados de análise do modelo de detector.
**nota**  
*analysis-id*Substitua pela ID de análise que você copiou.

   ```
   aws iotevents get-detector-model-analysis-results --analysis-id "analysis-id"
   ```  
**Example Exemplo de resposta**  

   ```
   {
       "analysisResults": [
           {
               "type": "data-type",
               "level": "INFO",
               "message": "Inferred data types [Integer] for $variable.temperatureChecked",
               "locations": []
           },
           {
               "type": "referenced-resource",
               "level": "ERROR",
               "message": "Detector Model Definition contains reference to Input 'TemperatureInput' that does not exist.",
               "locations": [
                   {
                       "path": "states[0].onInput.events[0]"
                   }
               ]
           }
       ]
   }
   ```

**nota**  
Depois de AWS IoT Events começar a analisar seu modelo de detector, você tem até 24 horas para recuperar os resultados da análise.