

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

# Crea un modello di rilevatore per rappresentare gli stati del dispositivo in AWS IoT Events
<a name="iotevents-create-detector"></a>

Nel[Crea un AWS IoT Events input per acquisire i dati del dispositivo](iotevents-create-input.md), ne hai creato uno `input` basato su un messaggio che riporta i dati sulla pressione di un motore. Per continuare con l'esempio, ecco un modello di rilevatore che risponde a un evento di sovrapressione in un motore.

Si creano due stati: "`Normal`«e"». `Dangerous` Ogni rilevatore (istanza) entra nello stato `Normal` "" quando viene creato. L'istanza viene creata quando arriva un input con un valore univoco per `key` `motorid` "».

Se l'istanza del rilevatore riceve una lettura della pressione pari o superiore a 70, entra nello stato `Dangerous` "" e invia un messaggio Amazon SNS come avviso. Se le letture della pressione tornano alla normalità (meno di 70) per tre ingressi consecutivi, il rilevatore torna allo stato "`Normal`" e invia un altro messaggio Amazon SNS come tutto chiaro.

Questo modello di rilevatore di esempio presuppone che tu abbia creato due argomenti Amazon SNS i cui Amazon Resource Names ARNs () sono mostrati nella definizione come e. `"targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction"` `"targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction"` 

Per ulteriori informazioni, consulta la [Amazon Simple Notification Service Developer Guide](https://docs.aws.amazon.com/sns/latest/dg/) e, più specificamente, la documentazione dell'[CreateTopic](https://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html)operazione nel *riferimento all'API di Amazon Simple Notification Service*.

Questo esempio presuppone inoltre che tu abbia creato un ruolo AWS Identity and Access Management (IAM) con le autorizzazioni appropriate. L'ARN di questo ruolo è mostrato nella definizione del modello di rivelatore come. `"roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole"` Segui i passaggi [Configurazione delle autorizzazioni per AWS IoT Events](iotevents-permissions.md) per creare questo ruolo e copia l'ARN del ruolo nella posizione appropriata nella definizione del modello del rilevatore.

È possibile creare il modello del rilevatore utilizzando il seguente comando. AWS CLI 

```
aws iotevents create-detector-model  --cli-input-json file://motorDetectorModel.json
```

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

```
{
  "detectorModelName": "motorDetectorModel",
  "detectorModelDefinition": {
    "states": [
      {
        "stateName": "Normal",
        "onEnter": {
          "events": [
            {
              "eventName": "init",
              "condition": "true",
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "0"
                  }
                }
              ]
            }
          ]
        },
        "onInput": {
          "transitionEvents": [
            {
              "eventName": "Overpressurized",
              "condition": "$input.PressureInput.sensorData.pressure > 70",
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "$variable.pressureThresholdBreached + 3"
                  }
                }
              ],
              "nextState": "Dangerous"
            }
          ]
        }
      }, 
      {
        "stateName": "Dangerous",
        "onEnter": {
          "events": [
            {
              "eventName": "Pressure Threshold Breached",
              "condition": "$variable.pressureThresholdBreached > 1",
              "actions": [
                {
                  "sns": {
                    "targetArn": "arn:aws:sns:us-east-1:123456789012:underPressureAction"
                  }
                }
              ]
            }
          ]
        },
        "onInput": {
          "events": [
            {
              "eventName": "Overpressurized",
              "condition": "$input.PressureInput.sensorData.pressure > 70",
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "3"
                  }
                }
              ]
            },
            {
              "eventName": "Pressure Okay",
              "condition": "$input.PressureInput.sensorData.pressure <= 70",
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "$variable.pressureThresholdBreached - 1"
                  }
                }
              ]
            }
          ],
          "transitionEvents": [
            {
              "eventName": "BackToNormal",
              "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1",
              "nextState": "Normal"
            }
          ]
        },
        "onExit": {
          "events": [
            {
              "eventName": "Normal Pressure Restored",
              "condition": "true",
              "actions": [
                {
                  "sns": {
                    "targetArn": "arn:aws:sns:us-east-1:123456789012:pressureClearedAction"
                  }
                }
              ]
            }
          ]
        }
      }
    ],
    "initialStateName": "Normal"
  },
  "key" : "motorid",
  "roleArn": "arn:aws:iam::123456789012:role/IoTEventsRole"
}
```