

지원 종료 알림: 2026년 5월 20일에 AWS 에 대한 지원이 종료됩니다 AWS IoT Events. 2026년 5월 20일 이후에는 AWS IoT Events 콘솔 또는 AWS IoT Events 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 [AWS IoT Events 지원 종료를 참조하세요](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html).

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS IoT Events 감지기 모델 제한 사항 및 제한 사항
<a name="iotevents-restrictions-detector-model"></a>

감지기 모델을 생성할 때 고려해야 할 중요한 사항은 다음과 같습니다.

**`actions` 필드 사용 방법**  
`actions` 값은 객체의 목록입니다. 객체를 두 개 이상 가질 수 있지만 각 객체에는 하나의 작업만 허용됩니다.  

**Example**  

```
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "$variable.pressureThresholdBreached - 1"
                  }
                }
                {
                  "setVariable": {
                    "variableName": "temperatureIsTooHigh",
                    "value": "$variable.temperatureIsTooHigh - 1"
                  }
                }
              ]
```

**`condition` 필드 사용 방법**  
`condition`은(는) `transitionEvents`에 필수 항목이며 다른 경우에는 선택 사항입니다.  
해당 `condition` 필드가 없는 경우 이는 `"condition": true`와 같습니다.  
조건 표현식의 평가 결과는 부울 값이어야 합니다. 결과가 부울 값이 아닌 경우 해당 값은 `false`와 동일하며 이벤트에서 지정된 `nextState`로의 전환 또는 `actions`으로 시작되지 않습니다.

**변수 값의 사용 가능 여부**  
기본적으로 변수 값이 이벤트에 설정된 경우 새 값을 사용할 수 없거나 같은 그룹 내 다른 이벤트의 조건을 평가하는 데 사용할 수 없습니다. 새 값은 사용할 수 없거나 동일한 `onInput`, `onEnter` 또는 `onExit` 필드의 이벤트 조건에 사용되었습니다.  
감지기 모델 정의에서 `evaluationMethod` 파라미터를 설정하여 이 동작을 변경하십시오. `evaluationMethod`를 `SERIAL`로 설정하면 변수가 업데이트되고 이벤트가 정의된 순서대로 이벤트 조건이 평가됩니다. 그렇지 않고 `evaluationMethod`를 `BATCH`로 설정하거나 기본값으로 설정하면, 상태 내의 변수가 업데이트되고 모든 이벤트 조건이 평가된 후에만 상태 내의 이벤트가 수행됩니다.  
`"Dangerous"` 상태, `onInput` 필드에서 조건이 충족되는 경우(현재 입력의 압력이 70 이하인 경우), `"Pressure Okay"` 이벤트의 `"$variable.pressureThresholdBreached"`가 하나씩 감소합니다.   

```
            {
              "eventName": "Pressure Okay",
              "condition": "$input.PressureInput.sensorData.pressure <= 70",
              "actions": [
                {
                  "setVariable": {
                    "variableName": "pressureThresholdBreached",
                    "value": "$variable.pressureThresholdBreached - 1"
                  }
                }
              ]
            }
```
감지기는 `"$variable.pressureThresholdBreached"`가 0에 도달했을 때 (즉, 감지기가 70 이하의 압력 측정값을 연속으로 세 번 수신했을 때) `"Normal"` 상태로 다시 전환되어야 합니다. `transitionEvents`의 `"BackToNormal"` 이벤트는 `"$variable.pressureThresholdBreached"`가 1보다 작거나 같은지(0이 아님) 테스트하고 `"$input.PressureInput.sensorData.pressure"`에서 제공한 현재 값이 70 미만인지 다시 확인해야 합니다.  

```
          "transitionEvents": [
            {
              "eventName": "BackToNormal",
              "condition": "$input.PressureInput.sensorData.pressure <= 70 && $variable.pressureThresholdBreached <= 1",
              "nextState": "Normal"
            }
          ]
```
그렇지 않으면 조건에서 변수 값만 테스트할 경우 정상 판독값 2개와 과압 판독값이 뒤따르는 경우 조건을 충족하고 `"Normal"` 상태로 다시 전환됩니다. 조건은 이전에 입력이 처리되었을 때 `"$variable.pressureThresholdBreached"`에 제공된 값을 확인하는 것입니다. 이 경우 `"Overpressurized"` 이벤트에서 변수 값이 3으로 재설정되지만 이 새 값은 어떤 `condition`도 사용할 수 없다는 점에 유의하십시오.  
기본적으로 컨트롤이 `onInput` 필드에 들어갈 때마다 `condition`은(는) `onInput`에서 지정한 작업에 의해 변수가 변경되기 전의 입력 처리 시작 시점의 변수 값만 볼 수 있습니다. `onEnter` 및 `onExit`도 마찬가지입니다. 상태를 입력하거나 종료할 때 변수에 적용된 변경 사항은 동일한 `onEnter` 또는 `onExit` 필드에 지정된 다른 조건에서는 사용할 수 없습니다.

**감지기 모델 업데이트 시 지연 시간**  
감지기 모델을 업데이트, 삭제 및 재생성하는 경우([UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html) 참조), 생성된 모든 감지기(인스턴스)가 삭제되고 새 모델을 사용하여 감지기를 다시 생성하기까지 약간의 지연이 발생합니다. 새 감지기 모델이 적용되고 새 입력이 도착한 후에 다시 생성됩니다. 이 기간 동안에는 이전 버전의 감지기 모델에서 생성된 감지기가 입력을 계속 처리할 수 있습니다. 이 기간 동안에는 이전 감지기 모델에서 정의한 알림을 계속 받을 수 있습니다.

**입력 키의 공백**  
입력 키에는 공백이 허용되지만 키 참조는 입력 속성 정의와 표현식에서 키 값을 참조할 때 모두 백틱으로 묶어야 합니다. 예를 들어 다음과 같은 메시지 페이로드가 있다고 가정합니다.  

```
{
  "motor id": "A32",
  "sensorData" {
    "motor pressure": 56,
    "motor temperature": 39
  }
}
```
다음을 사용하여 입력을 정의합니다.  

```
{
  "inputName": "PressureInput",
  "inputDescription": "Pressure readings from a motor",
  "inputDefinition": {
    "attributes": [
      { "jsonPath": "sensorData.`motor pressure`" },
      { "jsonPath": "`motor id`" }
    ]
  }
}
```
조건 표현식에서는 백틱도 사용하여 이러한 키의 값을 참조해야 합니다.  

```
$input.PressureInput.sensorData.`motor pressure`
```