

지원 종료 공지: 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)을 참조하세요.

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

# 로 데이터 스트림 내보내기 AWS 클라우드 (콘솔)
<a name="stream-manager-console"></a>

이 자습서에서는 AWS IoT 콘솔을 사용하여 스트림 관리자가 활성화된 AWS IoT Greengrass 그룹을 구성하고 배포하는 방법을 보여줍니다. 이 그룹에는 스트림 관리자의 스트림에 기록하는 사용자 정의 Lambda 함수가 포함되어 있으며, 이 함수는 자동으로 AWS 클라우드클라우드로 내보내집니다.

스트림 관리자를 사용하면 대용량 데이터 스트림을 보다 쉽고 안정적으로 수집, 처리 및 내보낼 수 있습니다. 이 튜토리얼에서는 IoT 데이터를 사용하는 `TransferStream` Lambda 함수를 생성합니다. Lambda 함수는 AWS IoT Greengrass 코어 SDK를 사용하여 스트림 관리자에서 스트림을 생성한 다음 읽고 씁니다. 그러면 스트림 관리자가 Kinesis Data Streams로 스트림을 내보냅니다. 다음 다이어그램은 이 워크플로를 보여 줍니다.

![\[스트림 관리 워크플로우의 다이어그램.\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/stream-manager-scenario.png)


이 자습서의 핵심은 사용자 정의 Lambda 함수가 AWS IoT Greengrass 코어 SDK의 `StreamManagerClient` 객체를 사용하여 스트림 관리자와 상호 작용하는 방법을 보여주는 것입니다. 간편성을 위해 이 튜토리얼에서 생성한 Python Lambda 함수는 시뮬레이션된 장치 데이터를 생성합니다.

## 사전 조건
<a name="stream-manager-console-prerequisites"></a>

이 자습서를 완료하려면 다음이 필요합니다.<a name="stream-manager-howto-prereqs"></a>
+ Greengrass 그룹 및 Greengrass 코어(v1.10 이상). Greengrass 그룹 및 코어를 생성하는 방법에 대한 자세한 내용은 [시작하기 AWS IoT Greengrass](gg-gs.md) 섹션을 참조하세요. 시작하기 자습서에는 AWS IoT Greengrass 코어 소프트웨어 설치 단계도 포함되어 있습니다.
**참고**  <a name="stream-manager-not-supported-openwrt"></a>
<a name="stream-manager-not-supported-openwrt-para"></a>스트림 관리자는 OpenWrt 배포에서 지원되지 않습니다.
+ 코어 장치에 설치된 Java 8 런타임(JDK 8).<a name="install-java8-runtime-general"></a>
  + Debian 기반 배포판(Raspbian 포함) 또는 Ubuntu 기반 배포판의 경우 다음 명령을 실행합니다.

    ```
    sudo apt install openjdk-8-jdk
    ```
  + Red Hat 기반 배포판(Amazon Linux 포함) 의 경우 다음 명령을 실행합니다.

    ```
    sudo yum install java-1.8.0-openjdk
    ```

    자세한 내용은 OpenJDK 설명서의 [OpenJDK 패키지 다운로드 및 설치 방법](https://openjdk.java.net/install/)을 참조하십시오.
+ AWS IoT Greengrass Core SDK for Python v1.5.0 이상. AWS IoT Greengrass Core SDK for Python에서 `StreamManagerClient`를 사용하려면 다음을 수행해야 합니다.
  + Python 3.7 이상을 코어 장치에 설치합니다.
  + Lambda 함수 배포 패키지에 SDK와 그 종속성을 포함시킵니다. 지침은 이 튜토리얼에 나와 있습니다.
**작은 정보**  
Java 또는 NodeJS로 `StreamManagerClient`를 사용할 수 있습니다. 예제 코드는 [AWS IoT Greengrass Core SDK for Java](https://github.com/aws/aws-greengrass-core-sdk-java/blob/master/samples/StreamManagerKinesis/src/main/java/com/amazonaws/greengrass/examples/StreamManagerKinesis.java) 및 [AWS IoT Greengrass Core SDK for Node.js](https://github.com/aws/aws-greengrass-core-sdk-js/blob/master/greengrassExamples/StreamManagerKinesis/index.js)를 참조하십시오.
+ Greengrass 그룹 AWS 리전 과 동일한의 Amazon Kinesis Data Streams에서 **MyKinesisStream** 생성된 라는 대상 스트림입니다. 자세한 내용은 *Amazon Kinesis Data Streams 개발자 안내서*에서 [스트림 생성](https://docs.aws.amazon.com/streams/latest/dev/fundamental-stream.html#create-stream)을 참조하십시오.
**참고**  
이 튜토리얼에서는 스트림 관리자가 데이터를 Kinesis Data Streams로 내보내고 이로 인해 AWS 계정에 요금이 청구됩니다. 요금 정보는 [Kinesis Data Streams 요금](https://aws.amazon.com/kinesis/data-streams/pricing/)을 참조하십시오.  
요금이 부과되지 않도록 하기 위해 Kinesis 데이터 스트림을 생성하지 않고 이 자습서를 실행할 수 있습니다. 이 경우 로그를 확인하여 스트림 관리자가 스트림을 Kinesis Data Streams로 내보내려고 시도했는지 확인합니다.
+ 다음 예제에 나오는 것처럼 대상 전송 스트립에 대한 `kinesis:PutRecords` 작업을 허용하는 [Greengrass 그룹 역할](group-role.md)에 추가된 IAM 정책입니다.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kinesis:PutRecords"
              ],
              "Resource": [
              "arn:aws:kinesis:us-east-1:123456789012:stream/MyKinesisStream"
              ]
          }
      ]
  }
  ```

------

자습서에는 다음과 같은 상위 수준 단계가 포함됩니다.

1. [Lambda 함수 배포 패키지 생성](#stream-manager-console-create-deployment-package)

1. [Lambda 함수 생성](#stream-manager-console-create-function)

1. [그룹에 함수 추가](#stream-manager-console-create-gg-function)

1. [스트림 관리자 활성화](#stream-manager-console-enable-stream-manager)

1. [로컬 로깅 구성](#stream-manager-console-configure-logging)

1. [그룹 배포](#stream-manager-console-create-deployment)

1. [애플리케이션 테스트](#stream-manager-console-test-application)

이 자습서를 완료하는 데 약 20분 정도 걸립니다.

## 1단계: Lambda 함수 배포 패키지 생성
<a name="stream-manager-console-create-deployment-package"></a>

이 단계에서는 Python 함수 코드와 종속성이 포함된 Lambda 함수 배포 패키지를 생성합니다. 나중에 AWS Lambda에서 Lambda 함수를 생성할 때 이 패키지를 업로드합니다. Lambda 함수는 AWS IoT Greengrass 코어 SDK를 사용하여 로컬 스트림을 생성하고 상호 작용합니다.

**참고**  
 사용자 정의 Lambda 함수는 [AWS IoT Greengrass Core SDK](lambda-functions.md#lambda-sdks-core)를 사용하여 스트림 관리자와 상호 작용해야 합니다. Greengrass 스트림 관리자의 요구 사항에 대한 자세한 내용은 [Greengrass 스트림 관리자 요구 사항](stream-manager.md#stream-manager-requirements)을 참조하십시오.

1.  [AWS IoT Greengrass Core SDK for Python](lambda-functions.md#lambda-sdks-core) v1.5.0 이상을 다운로드하십시오.

1. <a name="unzip-ggc-sdk"></a>다운로드한 패키지의 압축을 풀어 SDK를 가져옵니다. SDK는 `greengrasssdk` 폴더입니다.

1. <a name="install-python-sdk-dependencies-stream-manager"></a>Lambda 함수 배포 패키지에 SDK와 함께 포함시킬 패키지 종속성을 설치합니다.<a name="python-sdk-dependencies-stream-manager"></a>

   1. `requirements.txt` 파일이 포함된 SDK 디렉터리로 이동합니다. 이 파일은 종속성을 나열합니다.

   1. SDK 종속성을 설치합니다. 예를 들어 다음 `pip` 명령을 실행하여 현재 디렉터리에 설치합니다.

      ```
      pip install --target . -r requirements.txt
      ```

1. `transfer_stream.py`이라는 로컬 파일에 다음과 같은 Python 코드 함수를 저장합니다.
**작은 정보**  
 Java 및 NodeJS를 사용하는 예제 코드는 GitHub의 [AWS IoT Greengrass Core SDK for Java](https://github.com/aws/aws-greengrass-core-sdk-java/blob/master/samples/StreamManagerKinesis/src/main/java/com/amazonaws/greengrass/examples/StreamManagerKinesis.java) 및 [AWS IoT Greengrass Core SDK for Node.js](https://github.com/aws/aws-greengrass-core-sdk-js/blob/master/greengrassExamples/StreamManagerKinesis/index.js)를 참조하십시오.

   ```
   import asyncio
   import logging
   import random
   import time
   
   from greengrasssdk.stream_manager import (
       ExportDefinition,
       KinesisConfig,
       MessageStreamDefinition,
       ReadMessagesOptions,
       ResourceNotFoundException,
       StrategyOnFull,
       StreamManagerClient,
   )
   
   
   # This example creates a local stream named "SomeStream".
   # It starts writing data into that stream and then stream manager automatically exports  
   # the data to a customer-created Kinesis data stream named "MyKinesisStream". 
   # This example runs forever until the program is stopped.
   
   # The size of the local stream on disk will not exceed the default (which is 256 MB).
   # Any data appended after the stream reaches the size limit continues to be appended, and
   # stream manager deletes the oldest data until the total stream size is back under 256 MB.
   # The Kinesis data stream in the cloud has no such bound, so all the data from this script is
   # uploaded to Kinesis and you will be charged for that usage.
   
   
   def main(logger):
       try:
           stream_name = "SomeStream"
           kinesis_stream_name = "MyKinesisStream"
   
           # Create a client for the StreamManager
           client = StreamManagerClient()
   
           # Try deleting the stream (if it exists) so that we have a fresh start
           try:
               client.delete_message_stream(stream_name=stream_name)
           except ResourceNotFoundException:
               pass
   
           exports = ExportDefinition(
               kinesis=[KinesisConfig(identifier="KinesisExport" + stream_name, kinesis_stream_name=kinesis_stream_name)]
           )
           client.create_message_stream(
               MessageStreamDefinition(
                   name=stream_name, strategy_on_full=StrategyOnFull.OverwriteOldestData, export_definition=exports
               )
           )
   
           # Append two messages and print their sequence numbers
           logger.info(
               "Successfully appended message to stream with sequence number %d",
               client.append_message(stream_name, "ABCDEFGHIJKLMNO".encode("utf-8")),
           )
           logger.info(
               "Successfully appended message to stream with sequence number %d",
               client.append_message(stream_name, "PQRSTUVWXYZ".encode("utf-8")),
           )
   
           # Try reading the two messages we just appended and print them out
           logger.info(
               "Successfully read 2 messages: %s",
               client.read_messages(stream_name, ReadMessagesOptions(min_message_count=2, read_timeout_millis=1000)),
           )
   
           logger.info("Now going to start writing random integers between 0 and 1000 to the stream")
           # Now start putting in random data between 0 and 1000 to emulate device sensor input
           while True:
               logger.debug("Appending new random integer to stream")
               client.append_message(stream_name, random.randint(0, 1000).to_bytes(length=4, signed=True, byteorder="big"))
               time.sleep(1)
   
       except asyncio.TimeoutError:
           logger.exception("Timed out while executing")
       except Exception:
           logger.exception("Exception while running")
   
   
   def function_handler(event, context):
       return
   
   
   logging.basicConfig(level=logging.INFO)
   # Start up this sample code
   main(logger=logging.getLogger())
   ```

1. 다음 항목을 `transfer_stream_python.zip`라는 파일로 압축합니다. 이것이 Lambda 함수 배포 패키지입니다.
   + **transfer\$1stream.py**. 앱 로직.
   + **greengrasssdk**. MQTT 메시지를 게시하는 Python Greengrass Lambda 함수에 대한 필수 라이브러리입니다.

     [스트림 관리자 작업은](work-with-streams.md) Python용 AWS IoT Greengrass 코어 SDK 버전 1.5.0 이상에서 사용할 수 있습니다.
   +  AWS IoT Greengrass Core SDK for Python에 대해 설치한 종속성(예: `cbor2` 디렉터리).

   `zip` 파일을 생성할 때 이러한 항목만 포함시키고 포함 폴더는 포함시키지 않습니다.

## 2단계: Lambda 함수 생성
<a name="stream-manager-console-create-function"></a>

이 단계에서는 AWS Lambda 콘솔을 사용하여 Lambda 함수를 생성하고 배포 패키지를 사용하도록 구성합니다. 그런 다음 함수 버전을 게시하고 별칭을 생성합니다.

1. 먼저, Lambda 함수를 생성합니다.

   1. <a name="lambda-console-open"></a>에서 AWS Management Console**서비스를** 선택하고 AWS Lambda 콘솔을 엽니다.

   1. <a name="lambda-console-create-function"></a>**함수 생성**을 선택한 다음 **새로 작성**을 선택합니다.

   1. **기본 정보** 섹션에서 다음 값을 사용합니다.
      + [**함수 이름**]에 **TransferStream**을 입력합니다.
      + **실행 시간**에서 **Python 3.7**을 선택합니다.
      + **권한**의 경우, 기본 설정을 유지합니다. 이를 통해 기본 Lambda 권한을 부여하는 실행 역할을 생성합니다. 이 역할은에서 사용되지 않습니다 AWS IoT Greengrass.

   1. <a name="lambda-console-save-function"></a>페이지 하단에서 **함수 생성**을 선택합니다.

1. 이제 핸들러를 등록하고 Lambda 함수 배포 패키지를 업로드합니다.

   1. <a name="lambda-console-upload"></a>**코드** 탭의 **코드 소스**에서 **다음에서 업로드**를 선택합니다. 드롭다운에서 **.zip 파일**을 선택합니다.  
![\[.zip 파일이 강조 표시된 드롭다운의 업로드.\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. **업로드**를 선택한 다음 `transfer_stream_python.zip` 배포 패키지를 선택합니다. 그런 다음 **저장**을 선택합니다.

   1. <a name="lambda-console-runtime-settings-para"></a>함수의 **코드** 탭에 있는 **런타임 설정**에서 **편집**을 선택하고 다음 값을 입력합니다.
      + **실행 시간**에서 **Python 3.7**을 선택합니다.
      + **핸들러**에 **transfer\$1stream.function\$1handler**를 입력합니다.

   1. <a name="lambda-console-save-config"></a>**저장**을 선택합니다.
**참고**  
 AWS Lambda 콘솔의 **테스트** 버튼은이 함수에서 작동하지 않습니다. AWS IoT Greengrass 코어 SDK에는 AWS Lambda 콘솔에서 Greengrass Lambda 함수를 독립적으로 실행하는 데 필요한 모듈이 포함되어 있지 않습니다. 이러한 모듈(예: `greengrass_common`)은 Greengrass 코어에 배포된 후 함수에 제공됩니다.

1. 이제 Lambda 함수의 첫 번째 버전을 게시하고 [버전의 별칭](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)을 생성합니다.
**참고**  
Greengrass 그룹은 별칭(권장) 또는 버전을 기준으로 Lambda 함수를 참조할 수 있습니다. 별칭을 사용하면 함수 코드를 업데이트할 때 구독 테이블이나 그룹 정의를 변경할 필요가 없으므로 코드 업데이트를 더 쉽게 관리할 수 있습니다. 그 대신 새 함수 버전에 대한 별칭을 가리킵니다.

   1. <a name="shared-publish-function-version"></a>[**Actions**] 메뉴에서 [**Publish new revision**]을 선택합니다.

   1. <a name="shared-publish-function-version-description"></a>**버전 설명**에 **First version**을 입력한 후 **게시**를 선택합니다.

   1. **TransferStream: 1** 구성 페이지의 **작업** 메뉴에서 **별칭 생성**을 선택합니다.

   1. [**Create a new alias**] 페이지에서 다음 값을 사용합니다.
      + **이름**에 **GG\$1TransferStream**을 입력합니다.
      + **버전**에서 **1**을 선택합니다.
**참고**  
AWS IoT Greengrass 는 **\$1LATEST** 버전에 대해 Lambda 별칭을 지원하지 않습니다.

   1. **생성(Create)**을 선택합니다.

이제 Greengrass 그룹에 Lambda 함수를 추가할 준비가 되었습니다.

## 3단계: Greengrass 그룹에 Lambda 함수 추가
<a name="stream-manager-console-create-gg-function"></a>

이 단계에서 그룹에 Lambda 함수를 추가한 다음 수명 주기와 환경 변수를 구성합니다. 자세한 내용은 [그룹별 구성을 사용한 Lambda 함수 실행 제어](lambda-group-config.md) 단원을 참조하십시오.

1. <a name="console-gg-groups"></a> AWS IoT 콘솔 탐색 창의 **관리**에서 **Greengrass 디바이스**를 확장한 다음 **그룹(V1)을** 선택합니다.

1. <a name="group-choose-target-group"></a>대상 그룹을 선택합니다.

1. <a name="choose-add-lambda"></a>그룹 구성 페이지에서 **Lambda 함수** 탭을 선택합니다.

1. **내 Lambda 함수**에서 **추가**를 선택합니다.

1. **Lambda 함수 추가** 페이지에서 Lambda 함수에 대한 **Lambda 함수**를 선택합니다.

1. **Lambda 버전**의 경우 **Alias:GG\$1TransferStream**을 선택합니다.

   이제 Greengrass 그룹에서 Lambda 함수의 동작을 결정하는 속성을 구성합니다.

1. **Lambda 함수 구성** 섹션에서 다음과 같이 변경합니다.
   + **메모리 제한**을 32MB로 설정합니다.
   + **고정된** 경우 **True**를 선택합니다.
**참고**  
<a name="long-lived-lambda"></a>*수명이 긴*(또는 *고정된*) Lambda 함수는가 시작된 후 자동으로 AWS IoT Greengrass 시작되고 자체 컨테이너에서 계속 실행됩니다. 이는 간접 호출되면 시작되고 실행할 작업이 남아 있지 않으면 중지되는 *온디맨드* Lambda 함수와 상반됩니다. 자세한 내용은 [Greengrass Lambda 함수의 라이프사이클 구성](lambda-functions.md#lambda-lifecycle) 단원을 참조하십시오.

1. **Lambda 함수 추가**를 선택합니다.

## 4단계: 스트림 관리자 활성화
<a name="stream-manager-console-enable-stream-manager"></a>

이 단계에서는 스트림 관리자가 활성화되어 있는지 확인합니다.

1. 그룹 구성 페이지에서 **Lambda 함수** 탭을 선택합니다.

1. **시스템 Lambda 함수**에서 **스트림 관리자**를 선택하고 상태를 확인합니다. 비활성화된 경우 **편집**을 선택합니다. 그런 다음 **활성화** 및 **저장**을 선택합니다. 이 튜토리얼의 기본 파라미터 설정을 사용할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 스트림 관리자 구성](configure-stream-manager.md) 단원을 참조하십시오.

**참고**  <a name="ggstreammanager-function-config-console"></a>
콘솔을 사용하여 스트림 관리자를 활성화하고 그룹을 배포하는 경우 스트림 관리자의 메모리 크기가 기본 4GB로 설정됩니다. 메모리 크기를 최소 128,000KB로 설정하는 것이 좋습니다.

## 5단계: 로컬 로깅 구성
<a name="stream-manager-console-configure-logging"></a>

이 단계에서는 코어 디바이스의 파일 시스템에 로그를 기록하도록 그룹의 AWS IoT Greengrass 시스템 구성 요소, 사용자 정의 Lambda 함수 및 커넥터를 구성합니다. 로그를 사용하여 발생할 수 있는 문제를 해결할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass 로그를 사용한 모니터링](greengrass-logs-overview.md) 단원을 참조하십시오.

1. <a name="shared-group-settings-local-logs-configuration"></a>**로컬 로그 구성**에서 로컬 로깅이 구성되어 있는지 확인합니다.

1. <a name="shared-group-settings-local-logs-edit"></a>Greengrass 시스템 구성 요소 또는 사용자 정의 Lambda 함수에 대해 로그가 구성되지 않은 경우에는 **편집**을 선택합니다.

1. <a name="shared-group-settings-local-logs-event-source"></a>**사용자 Lambda 함수 로그 수준** 및 **Greengrass 시스템 로그 수준**을 선택합니다.

1. <a name="shared-group-settings-local-logs-save"></a>로깅 수준 및 디스크 공간 제한을 기본값으로 유지한 후 **저장**을 선택합니다.

## 6단계: Greengrass 그룹 배포
<a name="stream-manager-console-create-deployment"></a>

코어 장치에 그룹을 배포합니다.

1. <a name="shared-deploy-group-checkggc"></a> AWS IoT Greengrass 코어가 실행 중인지 확인합니다. 필요한 경우 Raspberry Pi 터미널에서 다음 명령을 실행합니다.

   1. 대몬(daemon)이 실행 중인지 확인하려면:

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      출력에 `root`에 대한 `/greengrass/ggc/packages/ggc-version/bin/daemon` 입력이 포함되어 있는 경우에는 대몬(daemon)이 실행 중인 것입니다.
**참고**  
경로의 버전은 AWS IoT Greengrass 코어 디바이스에 설치된 코어 소프트웨어 버전에 따라 다릅니다.

   1. 대몬(daemon)을 시작하려면:

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. <a name="shared-deploy-group-deploy"></a>그룹 구성 페이지에서 **배포**를 선택합니다.

1. <a name="shared-deploy-group-ipconfig"></a>

   1. **Lambda 함수** 탭의 **시스템 Lambda 함수** 섹션에서 **IP 감지기**를 선택하고 **편집**을 선택합니다.

   1. **IP 감지기 설정 편집** 대화 상자에서 **MQTT 브로커 엔드포인트 자동 탐지 및 재정의**를 선택합니다.

   1. **저장**을 선택합니다.

      이렇게 하면 장치가 IP 주소, DNS, 포트 번호 등 코어의 연결 정보를 자동으로 획득할 수 있습니다. 자동 감지가 권장되지만 수동으로 지정된 엔드포인트 AWS IoT Greengrass 도 지원합니다. 그룹이 처음 배포될 때만 검색 방법 메시지가 표시됩니다.
**참고**  
메시지가 표시되면 [Greengrass 서비스 역할을](service-role.md) 생성하고 이를 현재의와 연결할 AWS 계정 수 있는 권한을 부여합니다 AWS 리전. 이 역할을 통해 AWS IoT Greengrass 는 AWS 서비스의 리소스에 액세스할 수 있습니다.

      **배포** 페이지에 배포 타임스탬프, 버전 ID, 상태가 표시됩니다. 완료되면 배포에 대해 **성공적으로 완료했습니다** 상태가 표시되어야 합니다.

      문제 해결에 대한 도움말은 [문제 해결 AWS IoT Greengrass](gg-troubleshooting.md) 섹션을 참조하세요.

## 7단계: 애플리케이션 테스트
<a name="stream-manager-console-test-application"></a>

이 `TransferStream` Lambda 함수는 시뮬레이션된 장치 데이터를 생성합니다. 스트림 관리자가 대상 Kinesis 데이터 스트림으로 내보내는 스트림에 데이터를 기록합니다.

1. <a name="stream-manager-howto-test-open-kinesis-console"></a>Amazon Kinesis 콘솔의 **Kinesis Data Streams**에서 **MyKinesisStream**을 선택합니다.
**참고**  
대상 Kinesis 데이터 스트림 없이 튜토리얼을 실행한 경우 스트림 관리자(`GGStreamManager`)의 [로그 파일을 확인하십시오](stream-manager-cli.md#stream-manager-cli-logs). 오류 메시지에 `export stream MyKinesisStream doesn't exist`이 포함되어 있으면 테스트가 성공적입니다. 이 오류는 서비스가 스트림으로의 내보내기를 시도했지만 스트림이 존재하지 않는다는 것을 의미합니다.

1. <a name="stream-manager-howto-view-put-records"></a>**MyKinesisStream** 페이지에서 **모니터링**을 선택합니다. 테스트가 성공적이면 **Put Records(레코드 넣기)** 차트에 데이터가 표시되어야 합니다. 연결에 따라 데이터가 표시되기까지 1분 정도 걸릴 수 있습니다.
**중요**  
테스트를 마쳤을 때 추가 요금이 발생하지 않도록 Kinesis 데이터 스트림을 삭제합니다.  
또는 다음 명령을 실행해 Greengrass 대몬(daemon)을 중단합니다. 이렇게 하면 테스트를 계속할 준비가 될 때까지 코어가 메시지를 보내지 못하게 됩니다.  

   ```
   cd /greengrass/ggc/core/
   sudo ./greengrassd stop
   ```

1. 코어에서 **TransferStream** Lambda 함수를 제거합니다.

   1. <a name="console-gg-groups"></a> AWS IoT 콘솔 탐색 창의 **관리**에서 **Greengrass 디바이스**를 확장한 다음 **그룹(V1)을** 선택합니다.

   1. **Greengrass 그룹**에서 사용자 그룹을 선택합니다.

   1. **Lambdas** 페이지에서 **TransferStream** 함수에 줄임표(**...**)를 선택한 다음 **함수 제거**를 선택합니다.

   1. **작업**에서 **배포**를 선택합니다.

로깅 정보를 보거나 스트림 문제를 해결하려면 로그에서 `TransferStream` 및 `GGStreamManager` 함수를 확인합니다. 파일 시스템에서 AWS IoT Greengrass 로그를 읽을 수 있는 `root` 권한이 있어야 합니다.
+ `TransferStream`은 `greengrass-root/ggc/var/log/user/region/account-id/TransferStream.log`에 로그 항목을 기록합니다.
+ `GGStreamManager`은 `greengrass-root/ggc/var/log/system/GGStreamManager.log`에 로그 항목을 기록합니다.

추가 문제 해결 정보가 필요한 경우 **사용자 Lambda로그**의 [로깅 수준을 **디버그 로그**로 설정한](#stream-manager-console-configure-logging) 다음 그룹을 다시 배포할 수 있습니다.

## 다음 사항도 참조하세요.
<a name="stream-manager-console-see-also"></a>
+ [AWS IoT Greengrass 코어에서 데이터 스트림 관리](stream-manager.md)
+ [AWS IoT Greengrass 스트림 관리자 구성](configure-stream-manager.md)
+ [StreamManagerClient를 사용하여 스트림 작업](work-with-streams.md)
+ [지원되는 AWS 클라우드 대상에 대한 구성 내보내기](stream-export-configurations.md)
+ [로 데이터 스트림 내보내기 AWS 클라우드 (CLI)](stream-manager-cli.md)