

지원 종료 알림: 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-error-messages"></a>

오류를 해결하고 문제를 해결할 수 있는 해결 방법을 찾으려면 다음 섹션을 참조하세요 AWS IoT Events.

**Topics**
+ [감지기 모델 생성 오류](#create-detector-model)
+ [삭제된 감지기 모델 업데이트](#update-detector-model)
+ [작업 트리거 실패(조건 충족 시)](#no-action)
+ [작업 트리거 실패(임계값 위반 시)](#trigger-action)
+ [잘못된 상태 사용](#wrong-state)
+ [연결 메시지](#connection-aborted-error)
+ [InvalidRequestException 메시지](#invalid-request)
+ [Amazon CloudWatch Logs `action.setTimer` 오류](#cw-logs-timer)
+ [Amazon CloudWatch 페이로드 오류](#cw-logs-payload)
+ [호환되지 않는 데이터 유형](#troubleshoot-expressions-incompatible-data-types)
+ [에 메시지를 보내지 못했습니다. AWS IoT Events](#failed-to-send-to-iot-events)

## 감지기 모델 생성 오류
<a name="create-detector-model"></a>

감지기 모델을 생성하려고 하면 오류가 발생합니다.

### Solution
<a name="w2aac42c11b7b5b1b1"></a>

 감지기 모델을 생성할 때 다음 제한 사항을 고려해야 합니다.
+ 각 `action` 필드에는 한 가지 작업만 허용됩니다.
+ `transitionEvents`에서 `condition`은(는) 필수입니다. `OnEnter`, `OnInput` 및 `OnExit` 이벤트는 선택 사항입니다.
+ `condition` 필드가 비어 있는 경우 조건 표현식의 평가 결과는 `true`와 같습니다.
+ 조건 표현식을 평가 결과는 부울 값이어야 합니다. 결과가 부울 값이 아닌 경우 이 값은 `false`와 같으며 `actions` 또는 이벤트에서 지정된 `nextState`로 전환을 트리거하지 않습니다.

자세한 내용은 [AWS IoT Events 감지기 모델 제한 사항 및 제한 사항](iotevents-restrictions-detector-model.md) 섹션을 참조하십시오.

## 삭제된 감지기 모델 업데이트
<a name="update-detector-model"></a>

몇 분 전에 감지기 모델을 업데이트하거나 삭제했지만 MQTT 메시지 또는 SNS 경보를 통해 이전 감지기 모델의 상태 업데이트를 계속 받고 있습니다.

### Solution
<a name="w2aac42c11b9b5b1b1"></a>

감지기 모델을 업데이트, 삭제 또는 재생성하는 경우 ([UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html) 참조) 모든 감지기 인스턴스가 삭제되고 새 모델이 사용되기까지 지연이 발생합니다. 이 기간 동안에는 이전 버전의 감지기 모델 인스턴스가 입력을 계속 처리할 수 있습니다. 이전 감지기 모델에서 정의한 경보를 계속 받을 수 있습니다. 업데이트를 다시 확인하거나 오류를 보고하기 전에 7분 이상 기다리십시오.

## 작업 트리거 실패(조건 충족 시)
<a name="no-action"></a>

조건이 충족되지만 감지기가 동작을 트리거하지 못하거나 새 상태로 전환하지 못합니다.

### Solution
<a name="w2aac42c11c11b5b1b1"></a>

감지기 조건식의 평가 결과가 부울 값인지 확인하십시오. 결과가 부울 값이 아닌 경우 이 값은 `false`와 같으며 `action` 또는 이벤트에서 지정된 `nextState`로 전환을 트리거하지 않습니다. 자세한 정보는 [조건 표현식 조건](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-conditional-expressions.html)을 참조하십시오.

## 작업 트리거 실패(임계값 위반 시)
<a name="trigger-action"></a>

조건식의 변수가 지정된 값에 도달해도 감지기가 동작 또는 이벤트 전환을 트리거하지 않습니다.

### Solution
<a name="w2aac42c11c13b5b1b1"></a>

`setVariable`을 `onInput`, `onEnter` 또는 `onExit`로 업데이트하면 현재 처리 주기 동안 `condition`을 평가할 때 새 값이 사용되지 않습니다. 대신 현재 주기가 완료될 때까지 원래 값이 사용됩니다. 감지기 모델 정의에서 `evaluationMethod` 파라미터를 설정하여 이 동작을 변경할 수 있습니다. `evaluationMethod`를 `SERIAL`로 설정하면 이벤트가 정의된 순서대로 변수가 업데이트되고 이벤트 조건이 평가됩니다. `evaluationMethod`를 `BATCH`(기본값)로 설정하면 변수가 업데이트되고 모든 이벤트 조건이 평가된 후에만 이벤트가 수행됩니다.

## 잘못된 상태 사용
<a name="wrong-state"></a>

`BatchPutMessage`를 사용하여 입력으로 메시지를 보내려고 하면 감지기가 잘못된 상태로 들어갑니다.

### Solution
<a name="w2aac42c11c15b5b1b1"></a>

 [BatchPutMessage](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html)를 사용하여 여러 메시지를 입력으로 보내는 경우 메시지 또는 입력이 처리되는 순서가 보장되지 않습니다. 순서를 보장하려면 메시지를 한 번에 하나씩 보내고 성공이 확인될 때까지 매번 `BatchPutMessage` 동안 기다리십시오.

## 연결 메시지
<a name="connection-aborted-error"></a>

API를 직간접적으로 호출하려고 하면 `('Connection aborted.', error(54, 'Connection reset by peer'))` 오류가 발생합니다.

### Solution
<a name="w2aac42c11c17b5b1b1"></a>

OpenSSL이 TLS 1.1 이상 버전을 사용하여 연결을 설정하는지 확인하십시오. 대부분의 Linux 배포판이나 Windows 버전 7 이상에서는 이것이 기본값이어야 합니다. macOS 사용자는 OpenSSL을 업그레이드해야 할 수도 있습니다.

## InvalidRequestException 메시지
<a name="invalid-request"></a>

`CreateDetectorModel` 및 `UpdateDetectorModel` API 호출을 시도하면 잘못된 요청 이상이 발생합니다.

### Solution
<a name="w2aac42c11c19b5b1b1"></a>

다음에 따라 문제를 해결하십시오. 자세한 내용은[CreateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_CreateDetectorModel.html) 및 [UpdateDetectorModel](https://docs.aws.amazon.com/iotevents/latest/apireference/API_UpdateDetectorModel.html)을 참조하십시오.
+ `seconds`와 `durationExpression`을 동시에 `SetTimerAction`의 파라미터로 사용하지 않도록 하십시오.
+ `durationExpression`에 대한 문자열 표현식이 유효한지 확인하십시오. 문자열 표현식에는 숫자, 변수(`$variable.<variable-name>`) 또는 입력 값(`$input.<input-name>.<path-to-datum>`)이 포함될 수 있습니다.

## Amazon CloudWatch Logs `action.setTimer` 오류
<a name="cw-logs-timer"></a>

Amazon CloudWatch Logs를 설정하여 AWS IoT Events 감지기 모델 인스턴스를 모니터링할 수 있습니다. 다음은를 사용할 AWS IoT Events때에서 발생하는 일반적인 오류입니다`action.setTimer`.
+ **오류:** `{{<timer-name>}}`으로 이름이 지정된 타이머의 기간 표현식을 숫자로 평가할 수 없습니다.

### Solution
<a name="w2aac42c11c21b5b1b3b1b1"></a>

   `durationExpression`의 문자열 표현식을 숫자로 변환할 수 있는지 확인하십시오. 부울과 같은 다른 데이터 유형은 허용되지 않습니다.
+ **오류:** `{{<timer-name>}}`으로 이름이 지정된 타이머에 대한 기간 표현식의 평가 결과가 31622440보다 큽니다. 정확성을 보장하려면 지속 시간 표현식이 60\~31622400 사이의 값을 참조해야 합니다.

### Solution
<a name="w2aac42c11c21b5b3b3b1b1"></a>

   타이머의 지속 시간이 31622400초 이하인지 확인하십시오. 지속 시간의 평가된 결과는 가장 가까운 정수로 내림됩니다.
+ **오류:** `{{<timer-name>}}`으로 이름이 지정된 타이머에 대한 지속 시간 표현식의 평가 결과가 60보다 작습니다. 정확성을 보장하려면 지속 시간 표현식이 60\~31622400 사이의 값을 참조해야 합니다.

### Solution
<a name="w2aac42c11c21b5b5b3b1b1"></a>

   타이머의 지속 시간이 60초 이상인지 확인하십시오. 지속 시간의 평가된 결과는 가장 가까운 정수로 내림됩니다.
+ **오류:** `{{<timer-name>}}`으로 이름이 지정된 타이머의 지속 시간 표현식을 평가할 수 없습니다. 변수 이름, 입력 이름, 데이터 경로를 확인하여 기존 변수와 입력을 참조하는지 확인하십시오.

### Solution
<a name="w2aac42c11c21b5b7b3b1b1"></a>

   문자열 표현식이 기존 변수와 입력을 참조하는지 확인하십시오. 문자열 표현식에는 숫자, 변수(`$variable.{{variable-name}}`) 및 입력 값(`$input.{{input-name}}.{{path-to-datum}}`)이 포함될 수 있습니다.
+ **오류:** `<timer-name>` 이름의 타이머를 설정하지 못했습니다. 지속 시간 표현식을 확인한 후 다시 시도해 주십시오.

### Solution
<a name="w2aac42c11c21b5b9b3b1b1"></a>

   [setTimerAction](https://docs.aws.amazon.com/iotevents/latest/apireference/API_SetTimerAction.html) 작업을 참조하여 올바른 파라미터를 지정했는지 확인한 다음 타이머를 다시 설정하십시오.

자세한 내용은 [AWS IoT Events 감지기 모델 개발 시 Amazon CloudWatch 로깅 활성화](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs)를 참조하세요.

## Amazon CloudWatch 페이로드 오류
<a name="cw-logs-payload"></a>

Amazon CloudWatch Logs를 설정하여 AWS IoT Events 감지기 모델 인스턴스를 모니터링할 수 있습니다. 다음은 작업 페이로드를 구성할 AWS IoT Events때에서 생성되는 일반적인 오류 및 경고입니다.
+ **오류:** 작업에 대한 표현식을 평가할 수 없습니다. 변수 이름, 입력 이름 및 데이터 경로가 기존 변수 및 입력 값을 참조하는지 확인하십시오. 또한 페이로드 크기가 최대 허용 크기인 1KB 미만인지 확인하십시오.

### Solution
<a name="w2aac42c11c23b5b1b3b1b1"></a>

   올바른 변수 이름, 입력 이름 및 데이터 경로를 입력했는지 확인하십시오. 작업 페이로드가 1KB보다 큰 경우에도 이 오류 메시지가 표시될 수 있습니다.
+ **오류:** `{{<action-type>}}`의 페이로드에 대한 콘텐츠 표현식을 파싱할 수 없습니다. 올바른 조건을 사용하여 콘텐츠 표현식을 입력합니다.

### Solution
<a name="w2aac42c11c23b5b3b3b1b1"></a>

   콘텐츠 표현식은 문자열(`'{{string}}'`), 변수(`$variable.{{variable-name}}`), 입력 값(`$input.{{input-name}}.{{path-to-datum}}`), 문자열 연결 및 `${}`를 포함하는 문자열을 포함할 수 있습니다.
+ **오류:** 페이로드 표현식 {{{expression}}}이 유효하지 않습니다. 정의된 페이로드 유형은 JSON이므로 문자열로 AWS IoT Events 평가할 표현식을 지정해야 합니다.

### Solution
<a name="w2aac42c11c23b5b5b5b1b1"></a>

   지정된 페이로드 유형이 JSON인 경우 AWS IoT Events 먼저 서비스가 표현식을 문자열로 평가할 수 있는지 확인합니다. 평가된 결과는 부울 또는 숫자일 수 없습니다. 검증에 실패하면 이 오류가 발생할 수 있습니다.
+ **경고:** 작업이 실행되었지만 작업 페이로드에 대한 콘텐츠 표현식을 유효한 JSON으로 평가할 수 없습니다. 정의된 페이로드 유형은 JSON입니다.

### Solution
<a name="w2aac42c11c23b5b7b3b1b1"></a>

   가 콘텐츠 표현식을 유효한 JSON으로 평가할 AWS IoT Events 수 없더라도 페이로드 유형을 로 정의하면 AWS IoT Events 가 `JSON` AWS IoT Events 작업 페이로드의 콘텐츠 표현식을 유효한 JSON으로 평가할 수 있는지 확인합니다.

자세한 내용은 [AWS IoT Events 감지기 모델 개발 시 Amazon CloudWatch 로깅 활성화](https://docs.aws.amazon.com/iotevents/latest/developerguide/best-practices.html#best-practices-cw-logs)를 참조하세요.

## 호환되지 않는 데이터 유형
<a name="troubleshoot-expressions-incompatible-data-types"></a>

메시지: 다음 표현식 `<reference>`에 `<expression>`으로 호환되지 않는 데이터 유형 [`<inferred-types>`]이 있습니다.

### Solution
<a name="w2aac42c11c25b5b1b1"></a>

 다음과 같은 이유 중 하나로 오류가 발생할 수 있습니다.
+ 참조의 평가 결과는 표현식의 다른 피연산자와 호환되지 않습니다.
+ 함수에 전달된 인수 유형은 지원되지 않습니다.

표현식에서 참조를 사용하는 경우 다음을 확인하십시오.<a name="expression-reference-type-compatibility"></a>
+ 하나 이상의 연산자와 함께 참조를 피연산자로 사용하는 경우, 참조하는 모든 데이터 유형이 호환되는지 확인하십시오.

  예를 들어, 다음 표현식에서 정수 `2`는 및 연산자 `==`와 `&&` 모두의 피연산자입니다. 피연산자를 호환하기 위해서는 `$variable.testVariable + 1` 및 `$variable.testVariable`이 정수 또는 10진수를 참조해야 합니다.

  또한 정수 `1`은(는) `+` 연산자의 피연산자입니다. 따라서 `$variable.testVariable`은(는) 정수 또는 10진수를 참조해야 합니다.

  ```
  ‘$variable.testVariable + 1 == 2 && $variable.testVariable’
  ```
+ 참조를 함수에 전달된 인수로 사용하는 경우, 함수가 참조하는 데이터 유형을 지원하는지 확인하십시오.

  예를 들어, 다음 `timeout("{{time-name}}")` 함수에는 큰따옴표가 있는 문자열이 인수로 필요합니다. {{타이머 이름}} 값에 대한 참조를 사용하는 경우 큰따옴표가 있는 문자열을 참조해야 합니다.

  ```
  timeout("{{timer-name}}")
  ```
**참고**  
`convert({{type}}, {{expression}})` 함수의 경우 {{유형}} 값에 대한 참조를 사용하는 경우 참조의 평가 결과는 `String`, `Decimal` 또는 `Boolean`이어야 합니다.

자세한 내용은 [AWS IoT Events 표현식의 입력 및 변수에 대한 참조](iotevents-expressions.md#expression-reference) 단원을 참조하십시오.

## 에 메시지를 보내지 못했습니다. AWS IoT Events
<a name="failed-to-send-to-iot-events"></a>

메시지: Iot Events에 메시지를 보내지 못했습니다.

### Solution
<a name="w2aac42c11c27b5b1b1"></a>

다음과 같은 이유로 오류가 발생할 수 있습니다.
+ 입력 메시지 페이로드에 `Input attribute Key`가 포함되어 있지 않습니다.
+ `Input attribute Key`가 입력 정의에 지정된 것과 동일한 JSON 경로에 있지 않습니다.
+ 입력 메시지가 AWS IoT Events 입력에 정의된 스키마와 일치하지 않습니다.

**참고**  
다른 서비스에서 데이터 모으기를 할 때도 오류가 발생합니다.

**Example**  
예를 들어 AWS IoT Core에서 AWS IoT 규칙은 다음 메시지와 함께 실패합니다. `Verify the Input Attribute key.` 

이 문제를 해결하려면 입력 페이로드 메시지 스키마가 AWS IoT Events 입력 정의를 준수하고 `Input attribute Key` 위치가 일치하는지 확인합니다. 자세한 내용은 [에서 모델에 대한 입력 생성 AWS IoT Events](create-input-overview.md) 단원을 참조하여 AWS IoT Events 입력을 정의하는 방법을 알아보십시오.