

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea componenti personalizzati che utilizzano stream manager
<a name="use-stream-manager-in-custom-components"></a>

Usa lo stream manager nei componenti Greengrass personalizzati per archiviare, elaborare ed esportare i dati dei dispositivi IoT. Utilizza le procedure e gli esempi di questa sezione per creare ricette di componenti, artefatti e applicazioni che funzionano con Stream Manager. Per ulteriori informazioni su come sviluppare e testare i componenti, vedere. [Crea AWS IoT Greengrass componenti](create-components.md)

**Topics**
+ [Definisci le ricette dei componenti che utilizzano stream manager](#stream-manager-recipes)
+ [Connect allo stream manager nel codice dell'applicazione](#connect-to-stream-manager)

## Definisci le ricette dei componenti che utilizzano stream manager
<a name="stream-manager-recipes"></a>

Per utilizzare lo stream manager in un componente personalizzato, è necessario definire il `aws.greengrass.StreamManager` componente come dipendenza. È inoltre necessario fornire lo Stream Manager SDK. Completa le seguenti attività per scaricare e utilizzare l'SDK Stream Manager nella lingua che preferisci.

### Usa lo Stream Manager SDK per Java
<a name="use-stream-manager-sdk-java"></a>

Stream Manager SDK for Java è disponibile come file JAR che puoi usare per compilare il tuo componente. Quindi, puoi creare un JAR dell'applicazione che include Stream Manager SDK, definire il JAR dell'applicazione come elemento del componente ed eseguire il JAR dell'applicazione nel ciclo di vita del componente.

**Per utilizzare lo Stream Manager SDK for Java**

1. Scarica il file [JAR Stream Manager SDK for Java](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-java/blob/main/sdk/aws-greengrass-stream-manager-sdk-java.jar).

1. Effettuate una delle seguenti operazioni per creare elementi dei componenti dall'applicazione Java e dal file JAR Stream Manager SDK:
   + Crea la tua applicazione come file JAR che include lo Stream Manager SDK JAR ed esegui questo file JAR nella ricetta del componente.
   + Definisci lo Stream Manager SDK JAR come elemento componente. Aggiungi quell'artefatto al classpath quando esegui l'applicazione nella ricetta del componente.

   La ricetta del componente potrebbe essere simile all'esempio seguente. Questo componente esegue una versione modificata dell'esempio [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), che `StreamManagerS3.jar` include lo Stream Manager SDK JAR.

------
#### [ 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
   ```

------

   Per ulteriori informazioni su come sviluppare e testare i componenti, vedere[Crea AWS IoT Greengrass componenti](create-components.md).

### Usa l'SDK Stream Manager per Python
<a name="use-stream-manager-sdk-python"></a>

L'SDK Stream Manager per Python è disponibile come codice sorgente che puoi includere nel tuo componente. Crea un file ZIP di Stream Manager SDK, definisci il file ZIP come elemento del componente e installa i requisiti dell'SDK nel ciclo di vita del componente.

**Per usare lo Stream Manager SDK per Python**

1. [Clona o scarica il repository -sdk-pythonaws-greengrass-stream-manager.](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. Crea un file ZIP che contenga la `stream_manager` cartella, che contiene il codice sorgente di Stream Manager SDK per Python. Puoi fornire questo file ZIP come elemento componente che il software AWS IoT Greengrass Core decomprime quando installa il componente. Esegui questa operazione:

   1. Apri la cartella che contiene il repository che hai clonato o scaricato nel passaggio precedente.

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

   1. Comprimi la `stream_manager` cartella in un file ZIP denominato. `stream_manager_sdk.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. Verifica che il `stream_manager_sdk.zip` file contenga la `stream_manager` cartella e il suo contenuto. Esegui il comando seguente per elencare il contenuto del file ZIP.

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

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

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

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

------

      L’output visualizzato dovrebbe essere simile al seguente:

      ```
      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. Copia gli artefatti dell'SDK di Stream Manager nella cartella artifacts del componente. Oltre al file ZIP Stream Manager SDK, il componente utilizza il file dell'SDK per installare le dipendenze dell'SDK di `requirements.txt` Stream Manager. *\$1/greengrass-components*Sostituiscilo con il percorso della cartella che usi per lo sviluppo locale.

------
#### [ 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. Crea la ricetta del tuo componente. Nella ricetta, procedi come segue:

   1. Definisci `stream_manager_sdk.zip` e `requirements.txt` come artefatti.

   1. Definite la vostra applicazione Python come un artefatto.

   1. Nel ciclo di vita dell'installazione, installa i requisiti SDK di Stream Manager da. `requirements.txt`

   1. Nel ciclo di vita di esecuzione, aggiungi l'SDK Stream Manager ed esegui l'applicazione `PYTHONPATH` Python.

   La ricetta del componente potrebbe essere simile all'esempio seguente. Questo componente esegue l'esempio [stream\$1manager\$1s3.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
   ```

------

   Per ulteriori informazioni su come sviluppare e testare i componenti, vedere[Crea AWS IoT Greengrass componenti](create-components.md).

### Usa l'SDK Stream Manager per JavaScript
<a name="use-stream-manager-sdk-javascript"></a>

L'SDK Stream Manager per JavaScript è disponibile come codice sorgente che puoi includere nel tuo componente. Crea un file ZIP di Stream Manager SDK, definisci il file ZIP come elemento del componente e installa l'SDK nel ciclo di vita del componente.

**Per utilizzare l'SDK Stream Manager per JavaScript**

1. Clona o scarica il repository [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. Crea un file ZIP che contenga la `aws-greengrass-stream-manager-sdk` cartella, che contiene il codice sorgente di Stream Manager SDK per. JavaScript Puoi fornire questo file ZIP come elemento componente che il software AWS IoT Greengrass Core decomprime quando installa il componente. Esegui questa operazione:

   1. Apri la cartella che contiene il repository che hai clonato o scaricato nel passaggio precedente.

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

   1. Comprimi la `aws-greengrass-stream-manager-sdk` cartella in un file ZIP denominato. `stream-manager-sdk.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. Verifica che il `stream-manager-sdk.zip` file contenga la `aws-greengrass-stream-manager-sdk` cartella e il suo contenuto. Esegui il comando seguente per elencare il contenuto del file ZIP.

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

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

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

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

------

      L’output visualizzato dovrebbe essere simile al seguente:

      ```
      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. Copia l'artefatto Stream Manager SDK nella cartella artifacts del componente. *\$1/greengrass-components*Sostituiscilo con il percorso della cartella che usi per lo sviluppo locale.

------
#### [ 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. Crea la ricetta del tuo componente. Nella ricetta, procedi come segue:

   1. Definisci `stream-manager-sdk.zip` come artefatto.

   1. Definisci la tua JavaScript applicazione come un artefatto.

   1. Nel ciclo di vita dell'installazione, installa l'SDK Stream Manager dall'artefatto. `stream-manager-sdk.zip` Questo `npm install` comando crea una `node_modules` cartella che contiene lo Stream Manager SDK e le sue dipendenze.

   1. Nel ciclo di vita di esecuzione, aggiungi la `node_modules` cartella a `NODE_PATH` ed esegui l'applicazione. JavaScript 

   La ricetta del componente potrebbe essere simile all'esempio seguente. Questo componente esegue l'esempio [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
   ```

------

   Per ulteriori informazioni su come sviluppare e testare i componenti, vedere[Crea AWS IoT Greengrass componenti](create-components.md).

## Connect allo stream manager nel codice dell'applicazione
<a name="connect-to-stream-manager"></a>

Per connetterti allo stream manager della tua applicazione, crea un'istanza di `StreamManagerClient` dall'SDK di Stream Manager. Questo client si connette al componente stream manager sulla porta predefinita 8088 o sulla porta specificata dall'utente. Per ulteriori informazioni su come utilizzare `StreamManagerClient` dopo aver creato un'istanza, consulta[Utilizzalo StreamManagerClient per lavorare con gli stream](work-with-streams.md).

**Example Esempio: Connect allo stream manager con la porta predefinita**  

```
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 Esempio: Connect allo stream manager con una porta non predefinita**  
Se configuri lo stream manager con una porta diversa da quella predefinita, devi utilizzare la [comunicazione tra processi](interprocess-communication.md) per recuperare la porta dalla configurazione del componente.  
Il parametro `port` di configurazione contiene il valore specificato `STREAM_MANAGER_SERVER_PORT` quando si distribuisce lo stream manager.

```
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.
```