

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

# 스트림 관리자를 사용하는 사용자 지정 구성 요소 생성
<a name="use-stream-manager-in-custom-components"></a>

사용자 지정 Greengrass 구성 요소의 스트림 관리자를 사용하여 IoT 디바이스 데이터를 저장하고 처리하고 내보낼 수 있습니다. 이 섹션의 절차와 예제를 사용하여 스트림 관리자와 함께 작동하는 구성 요소 레시피, 아티팩트, 애플리케이션을 생성합니다. 구성 요소 개발 및 테스트 방법에 대한 자세한 내용은 [AWS IoT Greengrass 구성 요소 생성](create-components.md) 섹션을 참조하세요.

**Topics**
+ [스트림 관리자를 사용하는 구성 요소 레시피 정의](#stream-manager-recipes)
+ [애플리케이션 코드에서 스트림 관리자에 연결](#connect-to-stream-manager)

## 스트림 관리자를 사용하는 구성 요소 레시피 정의
<a name="stream-manager-recipes"></a>

사용자 지정 구성 요소에서 스트림 관리자를 사용하려면 `aws.greengrass.StreamManager` 구성 요소를 종속성으로 정의해야 합니다. 스트림 관리자 SDK도 제공해야 합니다. 다음 태스크를 완료하여 원하는 언어로 스트림 관리자 SDK를 다운로드하고 사용하세요.

### Java용 스트림 관리자 SDK 사용
<a name="use-stream-manager-sdk-java"></a>

Java용 스트림 관리자 SDK는 구성 요소를 컴파일하는 데 사용할 수 있는 JAR 파일로 제공됩니다. 그런 다음 스트림 관리자 SDK가 포함된 애플리케이션 JAR을 생성하고, 애플리케이션 JAR을 구성 요소 아티팩트로 정의하고, 구성 요소 수명 주기에서 애플리케이션 JAR을 실행할 수 있습니다.

**Java용 스트림 관리자 SDK를 사용하려면**

1. [Java JAR용 스트림 관리자 SDK 파일](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-java/blob/main/sdk/aws-greengrass-stream-manager-sdk-java.jar)을 다운로드합니다.

1. 다음 중 하나를 수행하여 Java 애플리케이션과 스트림 관리자 SDK JAR 파일에서 구성 요소 아티팩트를 생성합니다.
   + 애플리케이션을 스트림 관리자 SDK JAR이 포함된 JAR 파일로 빌드하고 구성 요소 레시피에서 해당 JAR 파일을 실행합니다.
   + 스트림 관리자 SDK JAR을 구성 요소 아티팩트로 정의합니다. 구성 요소 레시피에서 애플리케이션을 실행할 때 해당 아티팩트를 클래스 경로에 추가합니다.

   구성 요소 레시피는 다음 예제와 유사할 수 있습니다. 이 구성 요소는 `StreamManagerS3.jar`에 스트림 관리자 SDK JAR이 포함된 [StreamManagerS3.java](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-java/blob/main/samples/StreamManagerS3/src/main/java/com/amazonaws/greengrass/examples/StreamManagerS3.java) 예제의 수정된 버전을 실행합니다.

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

   ```
   {
     "RecipeFormatVersion": "2020-01-25",
     "ComponentName": "com.example.StreamManagerS3Java",
     "ComponentVersion": "1.0.0",
     "ComponentDescription": "Uses stream manager to upload a file to an S3 bucket.",
     "ComponentPublisher": "Amazon",
     "ComponentDependencies": {
       "aws.greengrass.StreamManager": {
         "VersionRequirement": "^2.0.0"
       }
     },
     "Manifests": [
       {
         "Lifecycle": {
           "Run": "java -jar {artifacts:path}/StreamManagerS3.jar"
         },
         "Artifacts": [
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Java/1.0.0/StreamManagerS3.jar"
           }
         ]
       }
     ]
   }
   ```

------
#### [ YAML ]

   ```
   ---
   RecipeFormatVersion: '2020-01-25'
   ComponentName: com.example.StreamManagerS3Java
   ComponentVersion: 1.0.0
   ComponentDescription: Uses stream manager to upload a file to an S3 bucket.
   ComponentPublisher: Amazon
   ComponentDependencies:
     aws.greengrass.StreamManager:
       VersionRequirement: "^2.0.0"
   Manifests:
     - Lifecycle:
         Run: java -jar {artifacts:path}/StreamManagerS3.jar
       Artifacts:
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Java/1.0.0/StreamManagerS3.jar
   ```

------

   구성 요소 개발 및 테스트 방법에 대한 자세한 내용은 [AWS IoT Greengrass 구성 요소 생성](create-components.md) 섹션을 참조하세요.

### Python용 스트림 관리자 SDK 사용
<a name="use-stream-manager-sdk-python"></a>

Python용 스트림 관리자 SDK는 구성 요소에 포함할 수 있는 소스 코드로 사용할 수 있습니다. 스트림 관리자 SDK의 ZIP 파일을 생성하고 ZIP 파일을 구성 요소 아티팩트로 정의한 다음 구성 요소 수명 주기에 SDK의 요구 사항을 설치합니다.

**Python용 스트림 관리자 SDK를 사용하려면**

1. [aws-greengrass-stream-manager-sdk-python](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python) 리포지토리를 복제하거나 다운로드합니다.

   ```
   git clone git@github.com:aws-greengrass/aws-greengrass-stream-manager-sdk-python.git
   ```

1. Python용 스트림 관리자 SDK의 소스 코드를 포함하는 `stream_manager` 폴더를 포함한 ZIP 파일을 생성합니다. 이 ZIP 파일을 구성 요소를 설치할 때 AWS IoT Greengrass 코어 소프트웨어가 압축을 풀 수 있는 구성 요소 아티팩트로 제공할 수 있습니다. 해결 방법:

   1. 이전 단계에서 복제하거나 다운로드한 리포지토리가 포함된 폴더를 엽니다.

      ```
      cd aws-greengrass-stream-manager-sdk-python
      ```

   1. `stream_manager` 폴더를 `stream_manager_sdk.zip`이라는 이름의 ZIP 파일로 압축합니다.

------
#### [ Linux or Unix ]

      ```
      zip -rv stream_manager_sdk.zip stream_manager
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      tar -acvf stream_manager_sdk.zip stream_manager
      ```

------
#### [ PowerShell ]

      ```
      Compress-Archive stream_manager stream_manager_sdk.zip
      ```

------

   1. `stream_manager_sdk.zip` 파일에 `stream_manager` 폴더와 해당 콘텐츠가 포함되어 있는지 확인합니다. 다음 명령을 실행하여 ZIP 파일의 내용을 나열합니다.

------
#### [ Linux or Unix ]

      ```
      unzip -l stream_manager_sdk.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      tar -tf stream_manager_sdk.zip
      ```

------

       출력은 다음과 유사합니다.

      ```
      Archive:  aws-greengrass-stream-manager-sdk-python/stream_manager.zip
        Length      Date    Time    Name
      ---------  ---------- -----   ----
              0  02-24-2021 20:45   stream_manager/
            913  02-24-2021 20:45   stream_manager/__init__.py
           9719  02-24-2021 20:45   stream_manager/utilinternal.py
           1412  02-24-2021 20:45   stream_manager/exceptions.py
           1004  02-24-2021 20:45   stream_manager/util.py
              0  02-24-2021 20:45   stream_manager/data/
         254463  02-24-2021 20:45   stream_manager/data/__init__.py
          26515  02-24-2021 20:45   stream_manager/streammanagerclient.py
      ---------                     -------
         294026                     8 files
      ```

1. 스트림 관리자 SDK 아티팩트를 구성 요소의 아티팩트 폴더에 복사합니다. 구성 요소는 스트림 관리자 SDK ZIP 파일 외에도 SDK의 `requirements.txt` 파일을 사용하여 스트림 관리자 SDK의 종속성을 설치합니다. {{\~/greengrass-components}}를 로컬 개발에 사용하는 폴더의 경로로 바꿉니다.

------
#### [ Linux or Unix ]

   ```
   cp {stream_manager_sdk.zip,requirements.txt} {{~/greengrass-components}}/artifacts/com.example.StreamManagerS3Python/1.0.0/
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   robocopy . {{%USERPROFILE%\greengrass-components}}\artifacts\com.example.StreamManagerS3Python\1.0.0 stream_manager_sdk.zip
   robocopy . {{%USERPROFILE%\greengrass-components}}\artifacts\com.example.StreamManagerS3Python\1.0.0 requirements.txt
   ```

------
#### [ PowerShell ]

   ```
   cp .\stream_manager_sdk.zip,.\requirements.txt {{~\greengrass-components}}\artifacts\com.example.StreamManagerS3Python\1.0.0\
   ```

------

1. 구성 요소 레시피를 생성합니다. 레시피에서 다음을 수행합니다.

   1. `stream_manager_sdk.zip` 및 `requirements.txt`를 아티팩트로 정의합니다.

   1. Python 애플리케이션을 아티팩트로 정의합니다.

   1. 설치 수명 주기에서 `requirements.txt`의 스트림 관리자 SDK 요구 사항을 설치합니다.

   1. 실행 수명 주기에서 스트림 관리자 SDK를 `PYTHONPATH`에 추가하고 Python 애플리케이션을 실행합니다.

   구성 요소 레시피는 다음 예제와 유사할 수 있습니다. 이 구성 요소는 [stream\_manager\_s3.py](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python/blob/main/samples/stream_manager_s3.py) 예제를 실행합니다.

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

   ```
   {
     "RecipeFormatVersion": "2020-01-25",
     "ComponentName": "com.example.StreamManagerS3Python",
     "ComponentVersion": "1.0.0",
     "ComponentDescription": "Uses stream manager to upload a file to an S3 bucket.",
     "ComponentPublisher": "Amazon",
     "ComponentDependencies": {
       "aws.greengrass.StreamManager": {
         "VersionRequirement": "^2.0.0"
       }
     },
     "Manifests": [
       {
         "Platform": {
           "os": "linux"
         },
         "Lifecycle": {
           "install": "pip3 install --user -r {artifacts:path}/requirements.txt",
           "Run": "export PYTHONPATH=$PYTHONPATH:{artifacts:decompressedPath}/stream_manager_sdk; python3 {artifacts:path}/stream_manager_s3.py"
         },
         "Artifacts": [
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_sdk.zip",
             "Unarchive": "ZIP"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_s3.py"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/requirements.txt"
           }
         ]
       },
       {
         "Platform": {
           "os": "windows"
         },
         "Lifecycle": {
           "install": "pip3 install --user -r {artifacts:path}/requirements.txt",
           "Run": "set \"PYTHONPATH=%PYTHONPATH%;{artifacts:decompressedPath}/stream_manager_sdk\" & py -3 {artifacts:path}/stream_manager_s3.py"
         },
         "Artifacts": [
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_sdk.zip",
             "Unarchive": "ZIP"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_s3.py"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/requirements.txt"
           }
         ]
       }
     ]
   }
   ```

------
#### [ YAML ]

   ```
   ---
   RecipeFormatVersion: '2020-01-25'
   ComponentName: com.example.StreamManagerS3Python
   ComponentVersion: 1.0.0
   ComponentDescription: Uses stream manager to upload a file to an S3 bucket.
   ComponentPublisher: Amazon
   ComponentDependencies:
     aws.greengrass.StreamManager:
       VersionRequirement: "^2.0.0"
   Manifests:
     - Platform:
         os: linux
       Lifecycle:
         install: pip3 install --user -r {artifacts:path}/requirements.txt
         Run: |
           export PYTHONPATH=$PYTHONPATH:{artifacts:decompressedPath}/stream_manager_sdk
           python3 {artifacts:path}/stream_manager_s3.py
       Artifacts:
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_sdk.zip
           Unarchive: ZIP
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_s3.py
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/requirements.txt
     - Platform:
         os: windows
       Lifecycle:
         install: pip3 install --user -r {artifacts:path}/requirements.txt
         Run: |
           set "PYTHONPATH=%PYTHONPATH%;{artifacts:decompressedPath}/stream_manager_sdk"
           py -3 {artifacts:path}/stream_manager_s3.py
       Artifacts:
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_sdk.zip
           Unarchive: ZIP
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/stream_manager_s3.py
         - URI: s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3Python/1.0.0/requirements.txt
   ```

------

   구성 요소 개발 및 테스트 방법에 대한 자세한 내용은 [AWS IoT Greengrass 구성 요소 생성](create-components.md) 섹션을 참조하세요.

### JavaScript용 스트림 관리자 SDK 사용
<a name="use-stream-manager-sdk-javascript"></a>

JavaScript용 스트림 관리자 SDK는 구성 요소에 포함할 수 있는 소스 코드로 사용할 수 있습니다. 스트림 관리자 SDK의 ZIP 파일을 생성하고, ZIP 파일을 구성 요소 아티팩트로 정의한 다음, 구성 요소 수명 주기에 SDK를 설치합니다.

**JavaScript용 스트림 관리자 SDK를 사용하려면**

1. [aws-greengrass-stream-manager-sdk-js](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-js) 리포지토리를 복제하거나 다운로드합니다.

   ```
   git clone git@github.com:aws-greengrass/aws-greengrass-stream-manager-sdk-js.git
   ```

1. JavaScript용 스트림 관리자 SDK의 소스 코드를 포함하는 `aws-greengrass-stream-manager-sdk` 폴더를 포함한 ZIP 파일을 생성합니다. 이 ZIP 파일을 구성 요소를 설치할 때 AWS IoT Greengrass 코어 소프트웨어가 압축을 풀 수 있는 구성 요소 아티팩트로 제공할 수 있습니다. 해결 방법:

   1. 이전 단계에서 복제하거나 다운로드한 리포지토리가 포함된 폴더를 엽니다.

      ```
      cd aws-greengrass-stream-manager-sdk-js
      ```

   1. `aws-greengrass-stream-manager-sdk` 폴더를 `stream-manager-sdk.zip`이라는 이름의 ZIP 파일로 압축합니다.

------
#### [ Linux or Unix ]

      ```
      zip -rv stream-manager-sdk.zip aws-greengrass-stream-manager-sdk
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      tar -acvf stream-manager-sdk.zip aws-greengrass-stream-manager-sdk
      ```

------
#### [ PowerShell ]

      ```
      Compress-Archive aws-greengrass-stream-manager-sdk stream-manager-sdk.zip
      ```

------

   1. `stream-manager-sdk.zip` 파일에 `aws-greengrass-stream-manager-sdk` 폴더와 해당 콘텐츠가 포함되어 있는지 확인합니다. 다음 명령을 실행하여 ZIP 파일의 내용을 나열합니다.

------
#### [ Linux or Unix ]

      ```
      unzip -l stream-manager-sdk.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      tar -tf stream-manager-sdk.zip
      ```

------

       출력은 다음과 유사합니다.

      ```
      Archive:  stream-manager-sdk.zip
        Length      Date    Time    Name
      ---------  ---------- -----   ----
              0  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/
            369  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/package.json
           1017  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/util.js
           8374  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/utilInternal.js
           1937  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/exceptions.js
              0  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/data/
         353343  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/data/index.js
          22599  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/client.js
            216  02-24-2021 22:36   aws-greengrass-stream-manager-sdk/index.js
      ---------                     -------
         387855                     9 files
      ```

1. 스트림 관리자 SDK 아티팩트를 구성 요소의 아티팩트 폴더에 복사합니다. {{\~/greengrass-components}}를 로컬 개발에 사용하는 폴더의 경로로 바꿉니다.

------
#### [ Linux or Unix ]

   ```
   cp stream-manager-sdk.zip {{~/greengrass-components}}/artifacts/com.example.StreamManagerS3JS/1.0.0/
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   robocopy . {{%USERPROFILE%\greengrass-components}}\artifacts\com.example.StreamManagerS3JS\1.0.0 stream-manager-sdk.zip
   ```

------
#### [ PowerShell ]

   ```
   cp .\stream-manager-sdk.zip {{~\greengrass-components}}\artifacts\com.example.StreamManagerS3JS\1.0.0\
   ```

------

1. 구성 요소 레시피를 생성합니다. 레시피에서 다음을 수행합니다.

   1. `stream-manager-sdk.zip`을 아티팩트로 정의합니다.

   1. JavaScript 애플리케이션을 아티팩트로 정의합니다.

   1. 설치 수명 주기에서 `stream-manager-sdk.zip` 아티팩트의 스트림 관리자 SDK를 설치합니다. 이 `npm install` 명령은 스트림 관리자 SDK와 해당 종속 항목을 포함한 `node_modules` 폴더를 생성합니다.

   1. 실행 수명 주기에서 `node_modules` 폴더를 `NODE_PATH`에 추가하고 JavaScript 애플리케이션을 실행합니다.

   구성 요소 레시피는 다음 예제와 유사할 수 있습니다. 이 구성 요소는 [StreamManagerS3](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-js/blob/main/samples/StreamManagerS3/index.js) 예제를 실행합니다.

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

   ```
   {
     "RecipeFormatVersion": "2020-01-25",
     "ComponentName": "com.example.StreamManagerS3JS",
     "ComponentVersion": "1.0.0",
     "ComponentDescription": "Uses stream manager to upload a file to an S3 bucket.",
     "ComponentPublisher": "Amazon",
     "ComponentDependencies": {
       "aws.greengrass.StreamManager": {
         "VersionRequirement": "^2.0.0"
       }
     },
     "Manifests": [
       {
         "Platform": {
           "os": "linux"
         },
         "Lifecycle": {
           "install": "npm install {artifacts:decompressedPath}/stream-manager-sdk/aws-greengrass-stream-manager-sdk",
           "Run": "export NODE_PATH=$NODE_PATH:{work:path}/node_modules; node {artifacts:path}/index.js"
         },
         "Artifacts": [
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3JS/1.0.0/stream-manager-sdk.zip",
             "Unarchive": "ZIP"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3JS/1.0.0/index.js"
           }
         ]
       },
       {
         "Platform": {
           "os": "windows"
         },
         "Lifecycle": {
           "install": "npm install {artifacts:decompressedPath}/stream-manager-sdk/aws-greengrass-stream-manager-sdk",
           "Run": "set \"NODE_PATH=%NODE_PATH%;{work:path}/node_modules\" & node {artifacts:path}/index.js"
         },
         "Artifacts": [
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3JS/1.0.0/stream-manager-sdk.zip",
             "Unarchive": "ZIP"
           },
           {
             "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.StreamManagerS3JS/1.0.0/index.js"
           }
         ]
       }
     ]
   }
   ```

------
#### [ YAML ]

   ```
   ---
   RecipeFormatVersion: '2020-01-25'
   ComponentName: com.example.StreamManagerS3JS
   ComponentVersion: 1.0.0
   ComponentDescription: Uses stream manager to upload a file to an S3 bucket.
   ComponentPublisher: Amazon
   ComponentDependencies:
     aws.greengrass.StreamManager:
       VersionRequirement: "^2.0.0"
   Manifests:
     - Platform:
         os: linux
       Lifecycle:
         install: npm install {artifacts:decompressedPath}/stream-manager-sdk/aws-greengrass-stream-manager-sdk
         Run: |
           export NODE_PATH=$NODE_PATH:{work:path}/node_modules
           node {artifacts:path}/index.js
       Artifacts:
         - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.StreamManagerS3JS/1.0.0/stream-manager-sdk.zip
           Unarchive: ZIP
         - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.StreamManagerS3JS/1.0.0/index.js
     - Platform:
         os: windows
       Lifecycle:
         install: npm install {artifacts:decompressedPath}/stream-manager-sdk/aws-greengrass-stream-manager-sdk
         Run: |
           set "NODE_PATH=%NODE_PATH%;{work:path}/node_modules"
           node {artifacts:path}/index.js
       Artifacts:
         - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.StreamManagerS3JS/1.0.0/stream-manager-sdk.zip
           Unarchive: ZIP
         - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.StreamManagerS3JS/1.0.0/index.js
   ```

------

   구성 요소 개발 및 테스트 방법에 대한 자세한 내용은 [AWS IoT Greengrass 구성 요소 생성](create-components.md) 섹션을 참조하세요.

## 애플리케이션 코드에서 스트림 관리자에 연결
<a name="connect-to-stream-manager"></a>

애플리케이션의 스트림 관리자에 연결하려면 스트림 관리자 SDK에서 `StreamManagerClient`의 인스턴스를 생성합니다. 이 클라이언트는 기본 포트 8088의 스트림 관리자 구성 요소 또는 지정한 포트에 연결합니다. 인스턴스를 생성한 후 `StreamManagerClient`를 사용하는 방법에 대한 자세한 내용은 [StreamManagerClient를 사용하여 스트림 작업](work-with-streams.md) 섹션을 참조하세요.

**Example 예: 기본 포트를 사용하여 스트림 관리자에 연결**  

```
import com.amazonaws.greengrass.streammanager.client.StreamManagerClient;

public class MyStreamManagerComponent {

    void connectToStreamManagerWithDefaultPort() {
        StreamManagerClient client = StreamManagerClientFactory.standard().build();
        
        // Use the client.
    }
}
```

```
from stream_manager import (
    StreamManagerClient
)
              
def connect_to_stream_manager_with_default_port():
    client = StreamManagerClient()
    
    # Use the client.
```

```
const {
    StreamManagerClient
} = require('aws-greengrass-stream-manager-sdk');

function connectToStreamManagerWithDefaultPort() {
    const client = new StreamManagerClient();
    
    // Use the client.
}
```

**Example 예: 기본값이 아닌 포트를 사용하여 스트림 관리자에 연결**  
기본 포트가 아닌 포트로 스트림 관리자를 구성하는 경우 [프로세스 간 통신](interprocess-communication.md)을 사용하여 구성 요소 구성에서 포트를 검색해야 합니다.  
`port` 구성 파라미터에는 스트림 관리자를 배포할 때 `STREAM_MANAGER_SERVER_PORT`에서 지정하는 값이 포함되어 있습니다.

```
void connectToStreamManagerWithCustomPort() {
    EventStreamRPCConnection eventStreamRpcConnection = IPCUtils.getEventStreamRpcConnection();
    GreengrassCoreIPCClient greengrassCoreIPCClient = new GreengrassCoreIPCClient(eventStreamRpcConnection);
    List<String> keyPath = new ArrayList<>();
    keyPath.add("port");

    GetConfigurationRequest request = new GetConfigurationRequest();
    request.setComponentName("aws.greengrass.StreamManager");
    request.setKeyPath(keyPath);
    GetConfigurationResponse response =
            greengrassCoreIPCClient.getConfiguration(request, Optional.empty()).getResponse().get();
    String port = response.getValue().get("port").toString();
    System.out.print("Stream Manager is running on port: " + port);

    final StreamManagerClientConfig config = StreamManagerClientConfig.builder()
            .serverInfo(StreamManagerServerInfo.builder().port(Integer.parseInt(port)).build()).build();

    StreamManagerClient client = StreamManagerClientFactory.standard().withClientConfig(config).build();
    
    // Use the client.
}
```

```
import awsiot.greengrasscoreipc
from awsiot.greengrasscoreipc.model import (
    GetConfigurationRequest
)
from stream_manager import (
    StreamManagerClient
)

TIMEOUT = 10

def connect_to_stream_manager_with_custom_port():
    # Use IPC to get the port from the stream manager component configuration.
    ipc_client = awsiot.greengrasscoreipc.connect()
    request = GetConfigurationRequest()
    request.component_name = "aws.greengrass.StreamManager"
    request.key_path = ["port"]
    operation = ipc_client.new_get_configuration()
    operation.activate(request)
    future_response = operation.get_response()
    response = future_response.result(TIMEOUT)
    stream_manager_port = str(response.value["port"])
    
    # Use port to create a stream manager client.
    stream_client = StreamManagerClient(port=stream_manager_port)
    
    # Use the client.
```