

Avviso di fine del supporto: il 20 maggio 2026, AWS terminerà il supporto per AWS IoT Events. Dopo il 20 maggio 2026, non potrai più accedere alla AWS IoT Events console o AWS IoT Events alle risorse. Per ulteriori informazioni, consulta [AWS IoT Events Fine del supporto](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invia messaggi come input a un rilevatore in AWS IoT Events
<a name="iotevents-batch-put-messages"></a>

Ora hai definito un input che identifica i campi importanti nei messaggi inviati da un dispositivo (vedi[Crea un AWS IoT Events input per acquisire i dati del dispositivo](iotevents-create-input.md)). Nella sezione precedente, avete creato un messaggio `detector model` che risponde a un evento di sovrapressione in un motore (vedete). [Crea un modello di rilevatore per rappresentare gli stati del dispositivo in AWS IoT Events](iotevents-create-detector.md)

Per completare l'esempio, inviate messaggi da un dispositivo (in questo caso un computer su cui è AWS CLI installato il dispositivo) come input al rilevatore. 

**Nota**  
Quando create un modello di rilevatore o ne aggiornate uno esistente, occorrono alcuni minuti prima che il modello di rilevatore nuovo o aggiornato inizi a ricevere messaggi e a creare rilevatori (istanze). Se aggiorni il modello del rilevatore, durante questo periodo potresti continuare a vedere il comportamento basato sulla versione precedente.

Utilizzate il AWS CLI comando seguente per inviare un messaggio con dati che superano la soglia.

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

Il file "`highPressureMessage.json`" contiene quanto segue.

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

È necessario modificare il valore `messageId` in ogni messaggio inviato. Se non lo modifichi, il AWS IoT Events sistema deduplica i messaggi. AWS IoT Events ignora un messaggio se contiene lo `messageID` stesso messaggio di un altro messaggio inviato negli ultimi cinque minuti.

A questo punto, viene creato un rilevatore (istanza) per monitorare gli eventi del motore. `"Fulton-A32"` Questo rilevatore entra `"Normal"` nello stato al momento della creazione. Ma poiché abbiamo inviato un valore di pressione superiore alla soglia, passa immediatamente allo `"Dangerous"` stato. In tal modo, il rilevatore invia un messaggio all'endpoint Amazon SNS il cui ARN è. `arn:aws:sns:us-east-1:123456789012:underPressureAction`

Esegui il AWS CLI comando seguente per inviare un messaggio con dati inferiori alla soglia di pressione.

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

Il file `normalPressureMessage.json` contiene quanto segue.

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

È necessario modificare il `messageId` file ogni volta che si richiama il `BatchPutMessage` comando entro un periodo di cinque minuti. Invia il messaggio altre due volte. Dopo che il messaggio è stato inviato tre volte, il rilevatore (istanza) del motore "`Fulton-A32`" invia un messaggio all'`"arn:aws:sns:us-east-1:123456789012:pressureClearedAction"`endpoint Amazon SNS e rientra nello stato. `"Normal"`

**Nota**  
Puoi inviare più messaggi contemporaneamente con. `BatchPutMessage` Tuttavia, l'ordine in cui questi messaggi vengono elaborati non è garantito. Per garantire che i messaggi (input) vengano elaborati in ordine, inviateli uno alla volta e aspettate una risposta corretta ogni volta che viene chiamata l'API.

Di seguito sono riportati alcuni esempi di payload di messaggi SNS creati dal modello di rilevatore, descritto in questa sezione.

**sull'evento «Pressure Threshold Breached»**

```
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"
}
```

**sull'evento «Normal Pressure Restored»**

```
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 hai definito dei timer, il loro stato attuale viene mostrato anche nei payload dei messaggi SNS.

I payload dei messaggi contengono informazioni sullo stato del rilevatore (istanza) al momento dell'invio del messaggio (ovvero al momento dell'esecuzione dell'azione SNS). È possibile utilizzare l'[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)operazione per ottenere informazioni simili sullo stato del rilevatore.