

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

# Envie mensagens como entradas para um detector em AWS IoT Events
<a name="iotevents-batch-put-messages"></a>

Agora você definiu uma entrada que identifica os campos importantes nas mensagens enviadas de um dispositivo (consulte [Crie uma AWS IoT Events entrada para capturar dados do dispositivo](iotevents-create-input.md)). Na seção anterior, você criou um `detector model` que responde a um evento de sobrepressão em um motor (consulte [Crie um modelo de detector para representar os estados do dispositivo no AWS IoT Events](iotevents-create-detector.md)).

Para concluir o exemplo, envie mensagens de um dispositivo (neste caso, um computador com a AWS CLI instalada) como entradas para o detector. 

**nota**  
Quando cria um modelo de detector ou atualiza um existente, leva vários minutos até que o modelo de detector novo ou atualizado comece a receber mensagens e criar detectores (instâncias). Se atualizar o modelo do detector, durante esse período poderá continuar vendo o comportamento com base na versão anterior.

Use o AWS CLI comando a seguir para enviar uma mensagem com dados que ultrapassam o limite.

```
aws iotevents-data batch-put-message --cli-input-json file://highPressureMessage.json --cli-binary-format raw-in-base64-out
```

O arquivo “`highPressureMessage.json`” contém o código a seguir.

```
{
  "messages": [
    {
      "messageId": "00001",
      "inputName": "PressureInput",
      "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 80, \"temperature\": 39} }"
    }
  ]
}
```

Você deve alterar o `messageId` em cada mensagem enviada. Se você não alterar, o AWS IoT Events sistema desduplica as mensagens. AWS IoT Events ignora uma mensagem se ela tiver a `messageID` mesma mensagem que foi enviada nos últimos cinco minutos.

Nesse ponto, um detector (instância) é criado para monitorar os eventos do motor `"Fulton-A32"`. Esse detector entra no estado `"Normal"` quando é criado. Mas como enviamos um valor de pressão acima do limite, ele imediatamente passa para o estado `"Dangerous"`. Ao fazer isso, o detector envia uma mensagem para o endpoint do Amazon SNS cujo ARN é `arn:aws:sns:us-east-1:123456789012:underPressureAction`.

Execute o AWS CLI comando a seguir para enviar uma mensagem com dados abaixo do limite de pressão.

```
aws iotevents-data batch-put-message --cli-input-json file://normalPressureMessage.json --cli-binary-format raw-in-base64-out
```

O arquivo `normalPressureMessage.json` contém o seguinte.

```
{
  "messages": [
    {
      "messageId": "00002",
      "inputName": "PressureInput",
      "payload": "{\"motorid\": \"Fulton-A32\", \"sensorData\": {\"pressure\": 60, \"temperature\": 29} }"
    }
  ]
}
```

Você deve alterar o `messageId` no arquivo sempre que invocar o comando `BatchPutMessage` em um período de cinco minutos. Envie a mensagem mais duas vezes. Depois que a mensagem é enviada três vezes, o detector (instância) do motor “`Fulton-A32`” envia uma mensagem para o endpoint do Amazon SNS `"arn:aws:sns:us-east-1:123456789012:pressureClearedAction"` e entra novamente no estado `"Normal"`.

**nota**  
É possível enviar várias mensagens ao mesmo tempo com o `BatchPutMessage`. No entanto, a ordem em que essas mensagens são processadas não é garantida. Para garantir que as mensagens (entradas) sejam processadas em ordem, envie-as uma de cada vez e aguarde uma resposta bem-sucedida sempre que a API for chamada.

Confira a seguir exemplos de cargas úteis de mensagens do SNS criadas pelo exemplo do modelo de detector descrito nesta seção.

**no evento “Limite de pressão violado”**

```
IoT> {
  "eventTime":1558129816420,
  "payload":{
    "actionExecutionId":"5d7444df-a655-3587-a609-dbd7a0f55267",
    "detector":{
      "detectorModelName":"motorDetectorModel",
      "keyValue":"Fulton-A32",
      "detectorModelVersion":"1"
    },
    "eventTriggerDetails":{
      "inputName":"PressureInput",
      "messageId":"00001",
      "triggerType":"Message"
    },
    "state":{
      "stateName":"Dangerous",
      "variables":{
        "pressureThresholdBreached":3
      },
      "timers":{}
    }
  },
  "eventName":"Pressure Threshold Breached"
}
```

**no evento “Pressão normal restaurada”**

```
IoT> {
  "eventTime":1558129925568,
  "payload":{
    "actionExecutionId":"7e25fd38-2533-303d-899f-c979792a12cb",
    "detector":{
      "detectorModelName":"motorDetectorModel",
      "keyValue":"Fulton-A32",
      "detectorModelVersion":"1"
    },
    "eventTriggerDetails":{
      "inputName":"PressureInput",
      "messageId":"00004",
      "triggerType":"Message"
    },
    "state":{
      "stateName":"Dangerous",
      "variables":{
        "pressureThresholdBreached":0
      },
      "timers":{}
    }
  },
  "eventName":"Normal Pressure Restored"
}
```

Se você definiu um temporizador, o estado atual dele também será mostrado nas cargas úteis de mensagens do SNS.

As cargas úteis de mensagens contêm informações sobre o estado do detector (instância) no momento em que a mensagem foi enviada (ou seja, no momento em que a ação do SNS foi executada). É possível usar a operação [https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_DescribeDetector.html](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_DescribeDetector.html) para obter informações semelhantes sobre o estado do detector.