

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criar componentes personalizados que usam o Gerenciador de fluxos
<a name="use-stream-manager-in-custom-components"></a>

Use o Gerenciador de fluxos em componentes personalizados do Greengrass para armazenar, processar e exportar dados de dispositivos do IoT. Siga os procedimentos e os exemplos desta seção para criar fórmulas, artefatos e aplicações de componente que funcionem com o gerenciador de fluxos. Para obter informações sobre como desenvolver e testar componentes, consulte [Criar componentes do AWS IoT Greengrass](create-components.md).

**Topics**
+ [Definir fórmulas de componente que usam o Gerenciador de fluxos](#stream-manager-recipes)
+ [Conectar-se ao gerenciador de fluxos no código da aplicação](#connect-to-stream-manager)

## Definir fórmulas de componente que usam o Gerenciador de fluxos
<a name="stream-manager-recipes"></a>

Para usar o Gerenciador de fluxos em um componente personalizado, você deve definir o componente `aws.greengrass.StreamManager` como uma dependência. Você também deve fornecer o Stream Manager SDK. Conclua as tarefas a seguir para fazer download e usar o Stream Manager SDK no idioma de sua escolha.

### Usar o Stream Manager SDK para Java
<a name="use-stream-manager-sdk-java"></a>

O Stream Manager SDK para Java está disponível como um arquivo JAR que você pode usar para compilar seu componente. Depois disso, você pode criar um JAR de aplicação que inclua o Stream Manager SDK, definir esse JAR como artefato de componente e executar o JAR no ciclo de vida do componente.

**Para usar o Stream Manager SDK para Java**

1. Faça download do [arquivo JAR do Stream Manager SDK para Java](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-java/blob/main/sdk/aws-greengrass-stream-manager-sdk-java.jar).

1. Siga um destes procedimentos para criar os artefatos de componente da aplicação Java e o arquivo JAR do Stream Manager SDK:
   + Compile a aplicação como um arquivo JAR que inclua o JAR do Stream Manager SDK e execute esse arquivo JAR na fórmula do componente.
   + Defina o JAR do Stream Manager SDK como um artefato de componente. Adicione esse artefato ao classpath quando você executar a aplicação na fórmula do componente.

   A fórmula do componente deve ser semelhante ao exemplo a seguir. Esse componente executa uma versão modificada do exemplo [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), que `StreamManagerS3.jar` inclui o 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
   ```

------

   Para obter informações sobre como desenvolver e testar componentes, consulte [Criar componentes do AWS IoT Greengrass](create-components.md).

### Usar o Stream Manager SDK para Python
<a name="use-stream-manager-sdk-python"></a>

O Stream Manager SDK para Python está disponível como um código-fonte que você pode incluir em seu componente. Crie um arquivo ZIP do Stream Manager SDK, defina esse arquivo como um artefato do componente e instale os requisitos do SDK no ciclo de vida do componente.

**Para usar o Stream Manager SDK para Python**

1. Clone ou baixe o repositório [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. Crie um arquivo ZIP que inclua a pasta `stream_manager`, que contém o código-fonte do Stream Manager SDK para Python. Você pode fornecer esse arquivo ZIP como um artefato de componente que o software AWS IoT Greengrass Core descompacta ao instalar seu componente. Faça o seguinte:

   1. Abra a pasta que contém o repositório que você clonou ou baixou na etapa anterior.

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

   1. Compacte a pasta `stream_manager` em um arquivo ZIP chamado `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. Verifique se o arquivo `stream_manager_sdk.zip` contém a pasta `stream_manager` e o respectivo conteúdo. Execute o comando a seguir para listar o conteúdo do arquivo ZIP.

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

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

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

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

------

      A saída deve ser semelhante à seguinte.

      ```
      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. Copie os artefatos do Stream Manager SDK para a pasta de artefatos do componente. Além do arquivo ZIP do Stream Manager SDK, seu componente usa o arquivo `requirements.txt` do SDK para instalar as dependências do Stream Manager SDK. {{\~/greengrass-components}}Substitua pelo caminho para a pasta que você usa para desenvolvimento local.

------
#### [ 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. Crie a fórmula do seu componente. Na fórmula, faça o seguinte:

   1. Defina `stream_manager_sdk.zip` e `requirements.txt` como artefatos.

   1. Defina a aplicação Python como um artefato.

   1. No ciclo de vida da instalação, instale os requisitos do Stream Manager SDK de `requirements.txt`.

   1. No ciclo de vida da execução, anexe o Stream Manager SDK a `PYTHONPATH` e execute a aplicação Python.

   A fórmula do componente deve ser semelhante ao exemplo a seguir. Esse componente executa o [stream\_manager\_s3.py](https://github.com/aws-greengrass/aws-greengrass-stream-manager-sdk-python/blob/main/samples/stream_manager_s3.py) de exemplo.

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

------

   Para obter informações sobre como desenvolver e testar componentes, consulte [Criar componentes do AWS IoT Greengrass](create-components.md).

### Use o Stream Manager SDK para JavaScript
<a name="use-stream-manager-sdk-javascript"></a>

O Stream Manager SDK para JavaScript está disponível como código-fonte que você pode incluir em seu componente. Crie um arquivo ZIP do Stream Manager SDK, defina esse arquivo como um artefato do componente e instale o SDK no ciclo de vida do componente.

**Para usar o SDK do Stream Manager para JavaScript**

1. Clone ou baixe o repositório [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. Crie um arquivo ZIP que contenha a `aws-greengrass-stream-manager-sdk` pasta, que contém o código-fonte do SDK do Stream Manager para JavaScript. Você pode fornecer esse arquivo ZIP como um artefato de componente que o software AWS IoT Greengrass Core descompacta ao instalar seu componente. Faça o seguinte:

   1. Abra a pasta que contém o repositório que você clonou ou baixou na etapa anterior.

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

   1. Compacte a pasta `aws-greengrass-stream-manager-sdk` em um arquivo ZIP chamado `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. Verifique se o arquivo `stream-manager-sdk.zip` contém a pasta `aws-greengrass-stream-manager-sdk` e o respectivo conteúdo. Execute o comando a seguir para listar o conteúdo do arquivo ZIP.

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

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

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

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

------

      A saída deve ser semelhante à seguinte.

      ```
      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. Copie o artefato do Stream Manager SDK para a pasta de artefatos do componente. {{\~/greengrass-components}}Substitua pelo caminho para a pasta que você usa para desenvolvimento local.

------
#### [ 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. Crie a fórmula do seu componente. Na fórmula, faça o seguinte:

   1. Defina `stream-manager-sdk.zip` como um artefato.

   1. Defina seu JavaScript aplicativo como um artefato.

   1. No ciclo de vida da instalação, instale o Stream Manager SDK do artefato `stream-manager-sdk.zip`. Esse comando `npm install` cria uma pasta `node_modules` que contém o Stream Manager SDK e as respectivas dependências.

   1. No ciclo de vida de execução, anexe a `node_modules` pasta e execute seu `NODE_PATH` aplicativo. JavaScript 

   A fórmula do componente deve ser semelhante ao exemplo a seguir. Esse componente executa o exemplo do [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
   ```

------

   Para obter informações sobre como desenvolver e testar componentes, consulte [Criar componentes do AWS IoT Greengrass](create-components.md).

## Conectar-se ao gerenciador de fluxos no código da aplicação
<a name="connect-to-stream-manager"></a>

Para se conectar ao gerenciador de fluxos em sua aplicação, crie uma instância de `StreamManagerClient` do Stream Manager SDK. Esse cliente se conecta ao componente Gerenciador de fluxos na porta padrão 8088 ou na porta que você especificar. Para obter informações sobre como usar o `StreamManagerClient` após a criação de uma instância, consulte [Use StreamManagerClient para trabalhar com streams](work-with-streams.md).

**Example Exemplo: conectar-se ao Gerenciador de fluxos pela porta padrão**  

```
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 Exemplo: conectar-se ao Gerenciador de fluxos por uma porta diferente do padrão**  
Se você configurar o Gerenciador de fluxos com uma porta diferente do padrão, deverá usar a [comunicação entre processos](interprocess-communication.md) para recuperar a porta da configuração do componente.  
O parâmetro de configuração `port` contém o valor que você especifica em `STREAM_MANAGER_SERVER_PORT` ao implantar o Gerenciador de fluxos.

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