

지원 종료 공지: 2026년 10월 7일에는에 대한 지원을 중단할 AWS 예정입니다 AWS IoT Greengrass Version 1. 2026년 10월 7일 이후에는 더 이상 AWS IoT Greengrass V1 리소스에 액세스할 수 없습니다. 자세한 내용은 [에서 마이그레이션 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)을 참조하세요.

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

# IoT Analytics 커넥터
<a name="iot-analytics-connector"></a>

**주의**  <a name="connectors-extended-life-phase-warning"></a>
이 커넥터는 수명 연장 단계로 전환되었으며 AWS IoT Greengrass 는 기능, 기존 기능의 개선 사항, 보안 패치 또는 버그 수정을 제공하는 업데이트를 릴리스하지 않을 예정입니다.** 자세한 내용은 [AWS IoT Greengrass Version 1 유지 관리 정책](maintenance-policy.md) 단원을 참조하십시오.

IoT Analytics 커넥터는 로컬 디바이스 데이터를 로 전송합니다 AWS IoT 분석. 이 커넥터를 중앙 허브로 사용하여 Greengrass 코어 장치의 센서 및 [연결된 클라이언트 장치](what-is-gg.md#greengrass-devices)에서 데이터를 수집할 수 있습니다. 커넥터는 현재 AWS 계정 및 리전의 AWS IoT 분석 채널로 데이터를 전송합니다. 기본 대상 채널 및 동적으로 지정된 채널에 데이터를 전송할 수 있습니다.

**참고**  
AWS IoT Analytics 는 IoT 데이터를 수집, 저장, 처리 및 쿼리할 수 있는 완전 관리형 서비스입니다. 에서는 AWS IoT 분석데이터를 추가로 분석하고 처리할 수 있습니다. 예를 들어, 이 기능을 사용하여 머신 상태를 모니터링하도록 ML 모델을 훈련하거나 새 모델링 전략을 테스트할 수 있습니다. 자세한 내용은 [란 무엇입니까 AWS IoT Analytics?](https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html)를 참조하세요. *AWS IoT Analytics 사용 설명서*의 .

커넥터는 [입력 MQTT 주제](#iot-analytics-connector-data-input)에 대한 형식이 지정된 데이터 및 형식이 지정되지 않은 데이터를 수락합니다. 이 커넥터는 대상 채널이 인라인으로 지정되는 두 개의 미리 지정된 주제를 지원합니다. 또한 [구독에서 구성](connectors.md#connectors-inputs-outputs)되는 고객 정의 주제에 대한 메시지도 수신할 수 있습니다. 이 커넥터를 사용하여 고정 주제에 게시되는 클라이언트 장치의 메시지를 라우팅하거나 리소스 제한 장치의 비정형 또는 스택 종속 데이터를 처리할 수 있습니다.

이 커넥터는 [https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-batchputmessage](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-batchputmessage) API를 사용하여 데이터를(JSON 또는 base64 인코딩 문자열로) 대상 채널에 전송합니다. 이 커넥터는 원시 데이터를 API 요구 사항에 적합한 형식으로 처리할 수 있습니다. 이 커넥터는 채널별 대기열에서 입력 메시지를 버퍼링하고 배치를 비동기적으로 처리합니다. 이 커넥터는 대기열 작성 및 배치 작성 동작을 제어하고 메모리 사용을 제한할 수 있는 파라미터를 제공합니다. 예를 들어 최대 대기열 크기, 배치 간격, 메모리 크기, 활성 채널 수를 구성할 수 있습니다.

이 커넥터의 버전은 다음과 같습니다.


| 버전 | ARN | 
| --- | --- | 
| 4 | `arn:aws:greengrass:{{region}}::/connectors/IoTAnalytics/versions/4` | 
| 3 | `arn:aws:greengrass:{{region}}::/connectors/IoTAnalytics/versions/3` | 
| 2 | `arn:aws:greengrass:{{region}}::/connectors/IoTAnalytics/versions/2` | 
| 1 | `arn:aws:greengrass:{{region}}::/connectors/IoTAnalytics/versions/1` | 

버전 변경 사항에 대한 자세한 내용은 [Changelog](#iot-analytics-connector-changelog)를 참조하십시오.

## 요구 사항
<a name="iot-analytics-connector-req"></a>

이 커넥터에는 다음과 같은 요구 사항이 있습니다.

------
#### [ Version 3 - 4 ]
+ <a name="conn-req-ggc-v1.9.3"></a>AWS IoT Greengrass 코어 소프트웨어 v1.9.3 이상.
+ <a name="conn-req-py-3.7-and-3.8"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7 또는 3.8입니다.
**참고**  <a name="use-runtime-py3.8"></a>
Python 3.8을 사용하려면 다음 명령을 실행하여 기본 Python 3.7 설치 폴더에서 설치된 Python 3.8 바이너리로 연결되는 심볼릭 링크를 만드십시오.  

  ```
  sudo ln -s {{path-to-python-3.8}}/python3.8 /usr/bin/python3.7
  ```
이렇게 하면 AWS IoT Greengrass에 대한 Python 요구 사항을 충족하도록 장치가 구성됩니다.
+ <a name="conn-iot-analytics-req-regions"></a>이 커넥터는 [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)와 [AWS IoT 분석](https://docs.aws.amazon.com/general/latest/gr/iot-analytics.html)에서 모두 지원되는 Amazon Web Services 리전에서만 사용할 수 있습니다.
+ <a name="conn-iot-analytics-req-ita-config"></a>모든 관련 AWS IoT 분석 엔터티 및 워크플로가 생성되고 구성됩니다. 엔터티에는 채널, 파이프라인, 데이터스토어 및 데이터 세트가 포함됩니다. 자세한 내용은 *AWS IoT Analytics 사용 설명서*의 [AWS CLI](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html) 또는 [콘솔](https://docs.aws.amazon.com/iotanalytics/latest/userguide/quickstart.html) 절차를 참조하십시오. 
**참고**  
대상 AWS IoT 분석 채널은 동일한 계정을 사용해야 하며이 커넥터와 AWS 리전 동일한에 있어야 합니다.
+ <a name="conn-iot-analytics-req-iam-policy"></a>다음 예제와 같이, 대상 채널에 대한 `iotanalytics:BatchPutMessage` 작업을 허용하는 [Greengrass 그룹 역할](group-role.md)에 IAM 정책을 추가해야 합니다. 채널은 현재 AWS 계정 및 리전에 있어야 합니다.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Stmt1528133056761",
              "Action": [
                  "iotanalytics:BatchPutMessage"
              ],
              "Effect": "Allow",
              "Resource": [
              "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:channel/{{channel_1_name}}",
      "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:channel/{{channel_2_name}}"
              ]
          }
      ]
  }
  ```

------

  <a name="set-up-group-role"></a>그룹 역할 요구 사항의 경우, 필수 권한을 부여하도록 역할을 구성하고 역할이 그룹에 추가되었는지 확인해야 합니다. 자세한 내용은 [Greengrass 그룹 역할 관리(콘솔)](group-role.md#manage-group-role-console) 또는 [Greengrass 그룹 역할 관리(CLI)](group-role.md#manage-group-role-cli)을 참조하세요.

------
#### [ Versions 1 - 2 ]
+ <a name="conn-req-ggc-v1.7.0"></a>AWS IoT Greengrass 코어 소프트웨어 v1.7 이상.
+ 코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ <a name="conn-iot-analytics-req-regions"></a>이 커넥터는 [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)와 [AWS IoT 분석](https://docs.aws.amazon.com/general/latest/gr/iot-analytics.html)에서 모두 지원되는 Amazon Web Services 리전에서만 사용할 수 있습니다.
+ <a name="conn-iot-analytics-req-ita-config"></a>모든 관련 AWS IoT 분석 엔터티 및 워크플로가 생성되고 구성됩니다. 엔터티에는 채널, 파이프라인, 데이터스토어 및 데이터 세트가 포함됩니다. 자세한 내용은 *AWS IoT Analytics 사용 설명서*의 [AWS CLI](https://docs.aws.amazon.com/iotanalytics/latest/userguide/getting-started.html) 또는 [콘솔](https://docs.aws.amazon.com/iotanalytics/latest/userguide/quickstart.html) 절차를 참조하십시오. 
**참고**  
대상 AWS IoT 분석 채널은 동일한 계정을 사용해야 하며이 커넥터와 AWS 리전 동일한에 있어야 합니다.
+ <a name="conn-iot-analytics-req-iam-policy"></a>다음 예제와 같이, 대상 채널에 대한 `iotanalytics:BatchPutMessage` 작업을 허용하는 [Greengrass 그룹 역할](group-role.md)에 IAM 정책을 추가해야 합니다. 채널은 현재 AWS 계정 및 리전에 있어야 합니다.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Stmt1528133056761",
              "Action": [
                  "iotanalytics:BatchPutMessage"
              ],
              "Effect": "Allow",
              "Resource": [
              "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:channel/{{channel_1_name}}",
      "arn:aws:iotanalytics:{{us-east-1}}:{{123456789012}}:channel/{{channel_2_name}}"
              ]
          }
      ]
  }
  ```

------

  <a name="set-up-group-role"></a>그룹 역할 요구 사항의 경우, 필수 권한을 부여하도록 역할을 구성하고 역할이 그룹에 추가되었는지 확인해야 합니다. 자세한 내용은 [Greengrass 그룹 역할 관리(콘솔)](group-role.md#manage-group-role-console) 또는 [Greengrass 그룹 역할 관리(CLI)](group-role.md#manage-group-role-cli)을 참조하세요.

------

## 파라미터
<a name="iot-analytics-connector-param"></a>

`MemorySize`  
이 커넥터에 할당할 메모리 양(KB)입니다.  
 AWS IoT 콘솔의 표시 이름: **메모리 크기**  
필수: `true`  
유형: `string`  
유효한 패턴: `^[0-9]+$`

`PublishRegion`  
 AWS IoT 분석 채널 AWS 리전 이 생성되는 입니다. 커넥터와 동일한 리전을 사용합니다.  
이 리전은 [그룹 역할](#iot-analytics-connector-req)에서 지정되는 채널의 리전과도 일치해야 합니다.
 AWS IoT 콘솔의 표시 이름: **리전 게시**  
필수: `false`  
유형: `string`  
유효한 패턴: `^$|([a-z]{2}-[a-z]+-\\d{1})`

`PublishInterval`  
수신된 데이터 배치를에 게시하는 간격(초)입니다 AWS IoT 분석.  
 AWS IoT 콘솔의 표시 이름: **게시 간격**  
필수: `false`  
유형: `string`  
기본값: `1`  
유효한 패턴: `$|^[0-9]+$`

`IotAnalyticsMaxActiveChannels`  
커넥터가 적극적으로 감시하는 최대 AWS IoT 분석 채널 수입니다. 이 값은 0보다 커야 하며 최소한 커넥터가 지정된 시간에 게시할 것으로 예상되는 채널 수와 같아야 합니다.  
이 파라미터를 사용하면 커넥터가 지정된 시간에 관리할 수 있는 총 대기열 수를 제한하여 메모리 사용을 제한할 수 있습니다. 대기된 메시지를 모두 전송하면 대기열이 삭제됩니다.  
 AWS IoT 콘솔의 표시 이름: **최대 활성 채널 수**  
필수: `false`  
유형: `string`  
기본값: `50`  
유효한 패턴: `^$|^[1-9][0-9]*$`

`IotAnalyticsQueueDropBehavior`  
대기열이 가득 차 있을 때 채널 대기열에서 메시지를 삭제하기 위한 동작입니다.  
 AWS IoT 콘솔의 표시 이름: **대기열 삭제 동작**  
필수: `false`  
유형: `string`  
유효한 값: `DROP_NEWEST` 또는 `DROP_OLDEST`  
기본값: `DROP_NEWEST`  
유효한 패턴: `^DROP_NEWEST$|^DROP_OLDEST$`

`IotAnalyticsQueueSizePerChannel`  
메시지가 제출되거나 삭제되기 전에 메모리에 유지할 최대 메시지 수입니다(채널당). 이 값은 0보다 커야 합니다.  
 AWS IoT 콘솔의 표시 이름: **채널당 최대 대기열 크기**  
필수: `false`  
유형: `string`  
기본값: `2048`  
유효한 패턴: `^$|^[1-9][0-9]*$`

`IotAnalyticsBatchSizePerChannel`  
한 배치 요청에서 AWS IoT 분석 채널로 보낼 최대 메시지 수입니다. 이 값은 0보다 커야 합니다.  
 AWS IoT 콘솔의 표시 이름: **채널당 배치할 최대 메시지 수**  
필수: `false`  
유형: `string`  
기본값: `5`  
유효한 패턴: `^$|^[1-9][0-9]*$`

`IotAnalyticsDefaultChannelName`  
이 커넥터가 고객 정의 입력 주제로 전송되는 메시지에 사용하는 AWS IoT 분석 채널의 이름입니다.  
 AWS IoT 콘솔의 표시 이름: **기본 채널 이름**  
필수: `false`  
유형: `string`  
유효한 패턴: `^[a-zA-Z0-9_]$`

`IsolationMode`  <a name="IsolationMode"></a>
이 커넥터의 [컨테이너화](connectors.md#connector-containerization) 모드입니다. 기본값은 입니다. 즉`GreengrassContainer`, 커넥터는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.  
그룹의 기본 컨테이너화 설정은 커넥터에는 적용되지 않습니다.
 AWS IoT 콘솔의 표시 이름: **컨테이너 격리 모드**  
필수: `false`  
유형: `string`  
유효한 값: `GreengrassContainer` 또는 `NoContainer`  
유효한 패턴: `^NoContainer$|^GreengrassContainer$`

### 커넥터 만들기 예(AWS CLI)
<a name="iot-analytics-connector-create"></a>

다음 CLI 명령은 IoT Analytics 커넥터가 포함된 초기 버전을 사용하여 `ConnectorDefinition`을 생성합니다.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyIoTAnalyticsApplication",
            "ConnectorArn": "arn:aws:greengrass:{{region}}::/connectors/IoTAnalytics/versions/3",
            "Parameters": {
                "MemorySize": "65535",
                "PublishRegion": "us-west-1",
                "PublishInterval": "2",
                "IotAnalyticsMaxActiveChannels": "25",
                "IotAnalyticsQueueDropBehavior": "DROP_OLDEST",
                "IotAnalyticsQueueSizePerChannel": "1028",
                "IotAnalyticsBatchSizePerChannel": "5",
                "IotAnalyticsDefaultChannelName": "my_channel"
            }
        }
    ]
}'
```

**참고**  
이 커넥터의 Lambda 함수에는 [수명이 긴](lambda-functions.md#lambda-lifecycle) 수명 주기가 있습니다.

 AWS IoT Greengrass 콘솔의 커넥터 페이지에서 커넥터를 추가할 수 **있습니다**. 자세한 내용은 [Greengrass 커넥터 시작하기(콘솔)](connectors-console.md) 단원을 참조하십시오.

## 입력 데이터
<a name="iot-analytics-connector-data-input"></a>

이 커넥터는 사전 정의 및 고객 정의 MQTT 주제에 대한 데이터를 수락합니다. 게시자는 Greengrass 장치, Lambda 함수 또는 기타 커넥터일 수 있습니다.

미리 정의된 주제  
이 커넥터는 게시자가 인라인으로 채널 이름을 지정하도록 허용하는 다음 두 가지 정형 MQTT 주제를 지원합니다.  
+ `iotanalytics/channels/+/messages/put` 주제에 대한 [형식이 지정된 메시지](#iot-analytics-connector-data-input-json)입니다. 이러한 입력 메시지에 있는 IoT 데이터는 JSON 또는 base64 인코딩 문자열로 형식 지정해야 합니다.
+ `iotanalytics/channels/+/messages/binary/put` 주제에 대한 형식이 지정되지 않은 메시지입니다. 이 주제에서 수신된 입력 메시지는 바이너리 데이터로 처리되며 모든 데이터 유형을 포함할 수 있습니다.

  미리 정의된 주제에 게시하려면 `+` 와일드카드를 채널 이름으로 바꿉니다. 예제:

  ```
  iotanalytics/channels/my_channel/messages/put
  ```

고객 정의 주제  
커넥터는 구독에서 구성한 모든 MQTT 주제에 대한 입력 메시지를 수락하도록 허용하는 `#` 주제 구문을 지원합니다. 구독에 `#` 와일드카드만 사용하는 대신 주제 경로를 지정하는 것이 좋습니다. 이러한 메시지는 커넥터에 지정하는 기본 채널로 전송됩니다.  
고객 정의 주제에 대한 입력 메시지는 바이너리 데이터로 처리됩니다. 이러한 메시지는 모든 메시지 형식을 사용할 수 있으며 모든 데이터 유형을 포함할 수 있습니다. 고객 정의 주제를 사용하여 고정 주제에 게시하는 장치의 메시지를 라우팅할 수 있습니다. 또한 이 주제를 사용하여 데이터를 커넥터에 전송할 형식 지정된 메시지로 처리할 수 없는 클라이언트 장치의 입력 데이터를 수락할 수 있습니다.  
구독 및 MQTT 주제에 대한 자세한 내용은 [입력 및 출력](connectors.md#connectors-inputs-outputs) 단원을 참조하십시오.

그룹 역할은 모든 대상 채널에 대한 `iotanalytics:BatchPutMessage` 작업을 허용해야 합니다. 자세한 내용은 [요구 사항](#iot-analytics-connector-req) 단원을 참조하십시오.

**주제 필터:** `iotanalytics/channels/+/messages/put`  <a name="iot-analytics-connector-data-input-json"></a>
이 주제를 사용하여 형식 지정된 메시지를 커넥터에 전송하고 대상 채널을 동적으로 지정합니다. 또한 이 주제를 사용하여 응답 출력에서 반환되는 ID를 지정할 수 있습니다. 커넥터는 보내는 아웃바운드 `BatchPutMessage` 요청의 각 메시지에 대해 IDs가 고유한지 확인합니다 AWS IoT 분석. 중복 ID가 있는 메시지는 취소됩니다.  
이 주제에 전송되는 입력 데이터는 다음 메시지 형식을 사용해야 합니다.    
**메시지 속성**    
`request`  
지정된 채널에 전송되는 데이터입니다.  
필수: `true`  
유형: 다음 속성을 포함하는 `object`:    
`message`  
JSON 또는 base64 인코딩 문자열인 장치 또는 센서 데이터입니다.  
필수: `true`  
유형: `string`  
`id`  
요청에 대한 임의의 ID입니다. 이 속성은 입력 요청을 출력 응답에 매핑하는 데 사용됩니다. 지정하면 응답 객체의 `id` 속성이 이 값으로 설정됩니다. 이 속성을 생략하면 커넥터가 ID를 생성합니다.  
필수: `false`  
유형: `string`  
유효한 패턴: `.*`  
**입력 예**  

```
{
    "request": {
        "message" : "{\"temp\":23.33}"
    },
    "id" : "req123"
}
```

**주제 필터:** `iotanalytics/channels/+/messages/binary/put`  
이 주제를 사용하여 형식이 지정되지 않은 메시지를 커넥터에 전송하고 대상 채널을 동적으로 지정합니다.  
커넥터 데이터는 이 주제에 대해 수신된 입력 메시지를 구문 분석하지 않습니다. 이러한 메시지는 바이너리로 처리합니다. 메시지를 보내기 전에 커넥터 AWS IoT 분석는 `BatchPutMessage` API 요구 사항을 준수하도록 메시지를 인코딩하고 형식을 지정합니다.  
+ 커넥터는 원시 데이터를 base64로 인코딩하고 인코딩된 페이로드를 발신 `BatchPutMessage` 요청에 포함시킵니다.
+ 커넥터는 ID를 생성하고 각 입력 메시지에 할당합니다.
**참고**  
커넥터의 응답 출력에는 이러한 입력 메시지에 대한 ID 상호 관계가 포함되지 않습니다.  
**메시지 속성**  
없음.

**주제 필터:** `#`  
이 주제를 사용하여 모든 메시지 형식을 기본 채널로 전송합니다. 이 기능은 클라이언트 장치가 고정 주제에 게시하는 경우 또는 데이터를 커넥터 [지원 메시지 형식](#iot-analytics-connector-data-input-json)으로 처리할 수 없는 클라이언트 장치의 기본 채널로 데이터를 전송하려는 경우에 유용합니다.  
생성하는 구독에서 주제 구문을 정의하여 이 커넥터를 데이터 소스에 연결합니다. 구독에 `#` 와일드카드만 사용하는 대신 주제 경로를 지정하는 것이 좋습니다.  
커넥터 데이터는 이 입력 주제에 게시되는 메시지를 구문 분석하지 않습니다. 모든 입력 메시지는 바이너리 데이터로 처리됩니다. 메시지를 보내기 전에 커넥터 AWS IoT 분석는 `BatchPutMessage` API 요구 사항을 준수하도록 메시지를 인코딩하고 형식을 지정합니다.  
+ 커넥터는 원시 데이터를 base64로 인코딩하고 인코딩된 페이로드를 발신 `BatchPutMessage` 요청에 포함시킵니다.
+ 커넥터는 ID를 생성하고 각 입력 메시지에 할당합니다.
**참고**  
커넥터의 응답 출력에는 이러한 입력 메시지에 대한 ID 상호 관계가 포함되지 않습니다.  
**메시지 속성**  
없음.

## 출력 데이터
<a name="iot-analytics-connector-data-output"></a>

이 커넥터는 상태 정보를 MQTT 주제에 출력 데이터로 게시합니다. 이 정보에는 수신하고 전송하는 각 입력 메시지에 AWS IoT 분석 대해에서 반환하는 응답이 포함됩니다 AWS IoT 분석.

<a name="topic-filter"></a>**구독의 주제 필터**  
`iotanalytics/messages/put/status`

**출력 예: 성공**  

```
{
    "response" : {
        "status" : "success"
    },
    "id" : "req123"
}
```

**출력 예: 실패**  

```
{
    "response" : {
        "status" : "fail",
        "error" : "ResourceNotFoundException",
        "error_message" : "A resource with the specified name could not be found."
    },
    "id" : "req123"
}
```
커넥터가 재시도 가능한 오류(예: 연결 오류)를 감지하면 다음 배치에서 게시를 재시도합니다. 지수 백오프는 AWS SDK에서 처리합니다. 재시도할 수 있는 오류가 있는 요청은 `IotAnalyticsQueueDropBehavior` 파라미터에 따라 추가 게시를 위해 다시 채널 대기열에 추가됩니다.

## 사용 예
<a name="iot-analytics-connector-usage"></a>

<a name="connectors-setup-intro"></a>다음 상위 수준 단계를 사용하여 커넥터를 사용해 보는 데 이용할 수 있는 예제 Python 3.7 Lambda 함수를 설정합니다.

**참고**  <a name="connectors-setup-get-started-topics"></a>
다른 Python 런타임을 사용하는 경우 Python3.x에서 Python 3.7로의 심볼릭 링크를 만들 수 있습니다.
[커넥터 시작하기(콘솔)](connectors-console.md) 및 [커넥터 시작하기(CLI)](connectors-cli.md) 주제에는 예제 Twilio 알림 커넥터를 구성하고 배포하는 방법을 보여주는 자세한 단계가 포함되어 있습니다.

1. 커넥터에 대한 [요구 사항](#iot-analytics-connector-req)을 충족하는지 확인합니다.

   <a name="set-up-group-role"></a>그룹 역할 요구 사항의 경우, 필수 권한을 부여하도록 역할을 구성하고 역할이 그룹에 추가되었는지 확인해야 합니다. 자세한 내용은 [Greengrass 그룹 역할 관리(콘솔)](group-role.md#manage-group-role-console) 또는 [Greengrass 그룹 역할 관리(CLI)](group-role.md#manage-group-role-cli)을 참조하세요.

1. <a name="connectors-setup-function"></a>입력 데이터를 커넥터로 보내는 Lambda 함수를 생성하고 게시합니다.

   [예제 코드](#iot-analytics-connector-usage-example)를 PY 파일로 저장합니다. <a name="connectors-setup-function-sdk"></a>[Python용AWS IoT Greengrass 코어 SDK](lambda-functions.md#lambda-sdks-core)를 다운로드하고 압축을 풉니다. 그런 다음 루트 수준에서 PY 파일과 `greengrasssdk` 폴더를 포함하는 zip 패키지를 생성합니다. 이 zip 패키지는 AWS Lambda에 업로드하는 배포 패키지입니다.

   <a name="connectors-setup-function-publish"></a>Python 3.7 Lambda 함수를 생성한 후 함수 버전을 게시하고 별칭을 만듭니다.

1. Greengrass 그룹을 구성합니다.

   1. <a name="connectors-setup-gg-function"></a>별칭으로 Lambda 함수를 추가합니다(권장). Lambda 수명 주기를 수명이 긴 함수(또는 CLI의 `"Pinned": true`)로 구성합니다.

   1. 커넥터를 추가하고 해당 [파라미터](#iot-analytics-connector-param)를 구성합니다.

   1. 커넥터가 [입력 데이터](#iot-analytics-connector-data-input)를 수신하고 지원되는 주제 필터에서 [출력 데이터](#iot-analytics-connector-data-output)를 전송할 수 있도록 허용하는 구독을 추가합니다.
      + <a name="connectors-setup-subscription-input-data"></a>Lambda 함수를 소스로, 커넥터를 대상으로 설정하고 지원되는 입력 주제 필터를 사용합니다.
      + <a name="connectors-setup-subscription-output-data"></a>커넥터를 소스로, AWS IoT Core 를 대상으로 설정하고 지원되는 출력 주제 필터를 사용합니다. 이 구독을 사용하여 AWS IoT 콘솔에서 상태 메시지를 볼 수 있습니다.

1. <a name="connectors-setup-deploy-group"></a>그룹을 배포합니다.

1. <a name="connectors-setup-test-sub"></a> AWS IoT 콘솔의 **테스트** 페이지에서 출력 데이터 주제를 구독하여 커넥터의 상태 메시지를 확인합니다. 예제 Lambda 함수는 수명이 긴 함수로 그룹이 배포된 직후 메시지 전송을 시작합니다.

   테스트를 마치면 Lambda 수명 주기를 온디맨드 함수(또는 CLI의 `"Pinned": false`)로 설정하고 그룹을 배포할 수 있습니다. 이렇게 하면 함수가 메시지 전송을 중지합니다.

### 예제
<a name="iot-analytics-connector-usage-example"></a>

다음 예제 Lambda 함수는 커넥터에 입력 메시지를 보냅니다.

```
import greengrasssdk
import time
import json
 
iot_client = greengrasssdk.client('iot-data')
send_topic = 'iotanalytics/channels/my_channel/messages/put'
 
def create_request_with_all_fields():
    return  {
        "request": {
            "message" : "{\"temp\":23.33}"
        },
        "id" : "req_123"
    }
 
def publish_basic_message():
    messageToPublish = create_request_with_all_fields()
    print("Message To Publish: ", messageToPublish)
    iot_client.publish(topic=send_topic,
        payload=json.dumps(messageToPublish))
 
publish_basic_message()
 
def lambda_handler(event, context):
    return
```

## 한도
<a name="iot-analytics-connector-limits"></a>

이 커넥터에는 다음 제한이 적용됩니다.
+ [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotanalytics.html#IoTAnalytics.Client.batch_put_message](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotanalytics.html#IoTAnalytics.Client.batch_put_message) 작업에 AWS SDK for Python (Boto3) 대해에서 부과하는 모든 제한입니다 AWS IoT 분석 .
+  AWS IoT 분석 [ BatchPutMessage](https://docs.aws.amazon.com/iotanalytics/latest/userguide/api.html#cli-iotanalytics-batchputmessage) API에서 부과하는 모든 할당량입니다. 자세한 내용은 AWS IoT Analytics 의에 대한 [ Service Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-analytics.html#limits_iot_analytics) 참조하세요*AWS 일반 참조*.
  + 채널별로 초당 100,000개의 메시지.
  + 배치당 100개의 메시지.
  + 메시지당 128KB.

  이 API는 채널 이름(채널 ARN이 아님)을 사용하므로, 데이터를 교차 리전 또는 교차 계정 채널로 전송하는 작업은 지원되지 않습니다.
+  AWS IoT Greengrass 코어에서 부과하는 모든 할당량입니다. 자세한 내용은의 AWS IoT Greengrass 코어에 대한 [ Service Quotas](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#limits_greengrass)를 참조하세요*AWS 일반 참조*.

  다음 할당량도 특정하게 적용될 수 있습니다.
  + 장치에서 전송되는 최대 메시지 크기는 128KB입니다.
  + Greengrass 코어 라우터에서 최대 메시지 대기열 크기는 2.5MB입니다.
  + 주제 문자열의 최대 길이는 256바이트의 UTF-8 인코딩 문자입니다.

## 라이선스
<a name="iot-analytics-connector-license"></a>

IoT Analytics 커넥터에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.<a name="boto-3-licenses"></a>
+ [AWS SDK for Python (Boto3)](https://pypi.org/project/boto3/)/Apache 라이선스 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache 라이선스 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF 라이선스
+ [docutils](https://pypi.org/project/docutils/)/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인
+ [jmespath](https://pypi.org/project/jmespath/)/MIT 라이선스
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache 라이선스 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT 라이선스

이 커넥터는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="iot-analytics-connector-changelog"></a>

다음 표에서는 의 각 릴리스에서 변경된 중요 사항에 대해 설명합니다.


| 버전 | 변경 사항 | 
| --- | --- | 
| 4 | 커넥터에 대한 컨테이너화 모드를 구성하는 `IsolationMode` 파라미터가 추가되었습니다. | 
| 3 | <a name="upgrade-runtime-py3.7"></a>Lambda 런타임 요구 사항을 변경하는 Python 3.7로 런타임을 업그레이드했습니다. | 
| 2 | 과도한 로깅을 줄이도록 고정합니다. | 
| 1 | 최초 릴리스입니다. | 

<a name="one-conn-version"></a>Greengrass 그룹은 한 번에 하나의 커넥터 버전만 포함할 수 있습니다. 커넥터 버전 업그레이드에 대한 자세한 내용은 [커넥터 버전 업그레이드](connectors.md#upgrade-connector-versions)을 참조하십시오.

## 다음 사항도 참조하세요.
<a name="iot-analytics-connector-see-also"></a>
+ [Greengrass 커넥터를 사용하여 서비스 및 프로토콜과 통합](connectors.md)
+ [Greengrass 커넥터 시작하기(콘솔)](connectors-console.md)
+ [Greengrass 커넥터 시작하기(CLI)](connectors-cli.md)
+  [란 무엇입니까 AWS IoT Analytics?](https://docs.aws.amazon.com/iotanalytics/latest/userguide/welcome.html) *AWS IoT Analytics 사용 설명서*의