

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

# 4단계: 이메일 전송 AWS IoT 규칙 생성
<a name="iot-moisture-create-rule"></a>

 AWS IoT 규칙은 디바이스에서 메시지를 수신할 때 수행할 쿼리와 하나 이상의 작업을 정의합니다. AWS IoT 규칙 엔진은 디바이스에서 보낸 메시지를 수신하고 메시지의 데이터를 사용하여 일부 조치를 취해야 하는지 여부를 결정합니다. 자세한 내용은 [에 대한 규칙 AWS IoT](iot-rules.md) 단원을 참조하십시오.

이 자습서에서는 Raspberry Pi가 `aws/things/RaspberryPi/shadow/update`에 메시지를 게시합니다. 이것은 디바이스와 Thing Shadow 서비스에서 사용하는 내부 MQTT 주제입니다. Raspberry Pi는 다음 형식의 메시지를 게시합니다.

```
{
    "reported": {
        "moisture" : {{moisture-reading}},
        "temp" : {{temperature-reading}}
    }
}
```

수신되는 메시지에서 습도와 온도 데이터를 추출하는 쿼리를 생성합니다. 그리고 데이터를 가져와 습도 값이 임계값 미만일 경우 Amazon SNS 주제 구독자에게 전송하는 Amazon SNS 작업도 만듭니다.

**Amazon SNS 규칙 생성**

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iot/home)에서 **메시지 라우팅**을 선택한 다음 **규칙**을 선택합니다. **아직 규칙이 없습니다** 대화 상자가 나타나면 **규칙 생성**을 선택합니다. 또는 **규칙 생성**을 선택합니다.

1. **규칙 속성** 페이지에서 **규칙 이름**(예: **MoistureSensorRule**)을 입력하고 간단한 **규칙 설명**(예: **Sends an alert when soil moisture level readings are too low**)을 제공합니다.

1. **다음**을 선택하고 SQL 문을 구성합니다. **SQL 버전을** **2016-03-23**로 선택하고 다음 AWS IoT SQL 쿼리 문을 입력합니다.

   ```
   SELECT * FROM '$aws/things/RaspberryPi/shadow/update/accepted' WHERE state.reported.moisture < 400
   ```

   이 설명문은 `moisture` 값이 `400` 미만일 때 규칙 작업을 트리거합니다.
**참고**  
다른 값을 사용해야 할 수 있습니다. Raspberry Pi에서 코드를 실행한 후에 센서를 터치하거나, 물 속에 넣거나, 화분에 두면 센서에서 가져온 값을 볼 수 있습니다.

1. **다음**을 선택하고 규칙 작업을 첨부합니다. **작업 1**에서 **단순 알림 서비스**를 선택합니다. 이 규칙 작업에 대한 설명은 **메시지를 SNS 푸시 알림으로 보내기**입니다.

1. **SNS 주제**에서 [3단계: Amazon SNS 주제 생성 및 구독](iot-moisture-create-sns-topic.md), **MoistureSensorTopic**에서 생성한 주제를 선택하고 **메시지 형식**을 **RAW**로 둡니다. **IAM 역할**에서 **새 역할 생성**을 선택합니다. 역할 이름(예: **LowMoistureTopicRole**)을 입력한 후 **역할 생성**을 선택합니다.

1. **다음**을 선택하고 검토한 후 **생성**을 선택하여 규칙을 생성합니다.