

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

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

# 에 데이터 수집 AWS IoT 분석
<a name="ingest-data"></a>

쿼리할 수 있는 데이터 스토어에 데이터를 저장하는 파이프라인으로 데이터를 라우팅하는 채널이 있으면 AWS IoT 분석로 메시지 데이터를 보낼 준비가 된 것입니다. 여기에서는 AWS IoT 분석로 데이터를 가져오는 두 가지 방법을 보여줍니다. 메시지 브로커 또는 `BatchPutMessage` API를 사용하여 AWS IoT 메시지를 보낼 수 있습니다 AWS IoT 분석 .

**Topics**
+ [AWS IoT 메시지 브로커 사용](#iot-message-broker)
+ [BatchPutMessage API 사용](#batchputmessage-api)

## AWS IoT 메시지 브로커 사용
<a name="iot-message-broker"></a>

 AWS IoT 메시지 브로커를 사용하려면 규칙 엔진을 사용하여 AWS IoT 규칙을 생성합니다. 규칙은 특정 주제가 있는 메시지를 로 라우팅합니다 AWS IoT 분석. 하지만 이 규칙을 사용하려면 먼저 필요한 권한을 부여하는 역할을 생성해야 합니다.

### IAM 역할 생성
<a name="create-iam-role"></a>

 AWS IoT 메시지를 AWS IoT 분석 채널로 라우팅하려면 규칙을 설정합니다. 그러나 먼저 AWS IoT 분석 채널로 메시지 데이터를 전송할 수 있는 권한을 해당 규칙에게 부여하는 IAM 역할을 생성해야 합니다.

다음 명령을 실행해 역할을 생성합니다.

```
aws iam create-role --role-name myAnalyticsRole --assume-role-policy-document file://arpd.json
```

`arpd.json` 파일 내용은 다음과 같은 형식으로 보입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

그런 다음 정책 문서를 역할에 연결합니다.

```
aws iam put-role-policy --role-name myAnalyticsRole --policy-name myAnalyticsPolicy --policy-document file://pd.json
```

`pd.json` 파일 내용은 다음과 같은 형식으로 보입니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotanalytics:BatchPutMessage",
            "Resource": [
                "arn:aws:iotanalytics:{{us-east-1}}:{{111122223333}}:channel/{{your-channel}}"
            ]
        }
    ]
}
```

------

### AWS IoT 규칙 생성
<a name="create-iot-rule"></a>

채널로 메시지를 보내는 AWS IoT 규칙을 생성합니다.

```
aws iot create-topic-rule --rule-name analyticsTestRule --topic-rule-payload file://rule.json
```

`rule.json` 파일 내용은 다음과 같은 형식으로 보입니다.

```
{
    "sql": "SELECT * FROM 'iot/test'",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [ {
        "iotAnalytics": {
            "channelName": "mychannel",
            "roleArn": "arn:aws:iam::{{your-account-number}}:role/myAnalyticsRole"
        }
    } ]
}
```

`iot/test`를 라우팅해야 하는 메시지의 MQTT 주제로 바꿉니다. 채널 이름과 역할을 이전 단원에서 생성한 이름과 역할로 바꿉니다.

### 에 MQTT 메시지 전송 AWS IoT 분석
<a name="send-mqtt-messages"></a>

규칙을 채널에 조인하고, 채널을 파이프라인에 조인하고, 파이프라인을 데이터 스토어에 조인한 후에는 규칙과 일치하는 모든 데이터가 이제 쿼리할 준비가 된 데이터 스토어 AWS IoT 분석 로 전달됩니다. 이를 테스트하기 위해 AWS IoT 콘솔을 사용하여 메시지를 보낼 수 있습니다.

**참고**  
보내는 메시지 페이로드(데이터)의 필드 이름입니다 AWS IoT 분석.  
영숫자와 밑줄(\_)만 포함해야 하며, 다른 특수 문자는 허용되지 않습니다.
알파벳 문자나 1개의 밑줄(\_)로 시작해야 합니다.
하이픈(-)은 포함할 수 없습니다.
정규 표현식 조건: “`^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$`“.
255자를 초과할 수 없습니다
대소문자를 구분하지 않습니다. 동일한 페이로드에서 `foo` 및 `FOO`라는 필드 이름은 중복으로 간주합니다.
예를 들어, 메시지 페이로드에서 `{"temp_01": 29}` 또는 `{"_temp_01": 29}`는 유효하지만, `{"temp-01": 29}`, `{"01_temp": 29}` 또는 `{"__temp_01": 29}`는 잘못된 것입니다.

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iot/)의 왼쪽 탐색 창에서 **테스트**를 선택합니다.  
![AWS IoT 콘솔의 “모니터” 페이지의 스크린샷입니다.](http://docs.aws.amazon.com/ko_kr/iotanalytics/latest/userguide/images/choose-test.png)

1. [MQTT client] 페이지에서 [**Publish**] 섹션의 [**Specify a topic**]에 **iot/test**를 입력합니다. 메시지 페이로드 섹션에서 다음 JSON 내용이 존재하는지 확인하고, 그렇지 않은 경우 내용을 입력합니다.

   ```
   {
       "message": "Hello from the IoT console"
   }
   ```

1. [**Publish to topic**]을 선택합니다.  
![AWS IoT 콘솔의 "테스트" 페이지 스크린샷.](http://docs.aws.amazon.com/ko_kr/iotanalytics/latest/userguide/images/publish.png)

   이렇게 하면 앞서 생성한 데이터 스토어로 라우팅할 메시지가 게시됩니다.

## BatchPutMessage API 사용
<a name="batchputmessage-api"></a>

메시지 데이터를 로 가져오는 또 다른 방법은 `BatchPutMessage` API 명령을 사용하는 AWS IoT 분석 것입니다. 이 방법을 사용하면 특정 주제가 포함된 메시지를 채널로 라우팅하는 AWS IoT 규칙을 설정할 필요가 없습니다. 그러나 채널로 데이터/메시지를 전송하는 디바이스는 AWS SDK로 생성된 소프트웨어를 실행할 수 있거나를 사용하여를 호출 AWS CLI 할 수 있어야 합니다`BatchPutMessage`.

1. 전송할 메시지를 포함하는 `messages.json` 파일을 생성합니다(이 예제에서는 단 하나의 메시지만 전송).

   ```
   [
       { "messageId": "message01", "payload": "{ \"message\": \"Hello from the CLI\" }" }
   ]
   ```

1. `batch-put-message` 명령을 실행합니다.

   ```
   aws iotanalytics batch-put-message  --channel-name mychannel  --messages file://messages.json --cli-binary-format raw-in-base64-out
   ```

   오류가 없다면, 다음과 같은 출력을 확인할 수 있습니다.

   ```
   {
       "batchPutMessageErrorEntries": []
   }
   ```