O SSH Remote Command permite que se estabeleça uma conexão com um servidor SSH e que shell scripts sejam executados.

Dê uma olhada nos parâmetros de configuração do componente:

  • Account: para o componente fazer a autenticação a um serviço SFTP, é necessário usar uma account do tipo BASIC ou PRIVATE KEY. Este parâmetro aceita Double Braces.

  • Username: deve ser usado apenas quando o account type for PRIVATE KEY.

  • Host: nome do host ou endereço IP para realizar a conexão. Este parâmetro aceita Double Braces.

  • Port: número da porta - geralmente 22. Este parâmetro aceita Double Braces.

  • Custom Environment Variables: se a opção estiver habilitada, você deverá informar as variáveis de ambiente de forma customizada no campo Environment Variables (ex: [{"key": "MYVAR", "value": "VAR_VALUE"}])

  • Environment Properties: nome e valor das variáveis de ambiente a serem passadas para execução no servidor de SSH remoto. Essas variáveis devem ser cadastradas no sshd_config. Exemplo do cadastro no ssh_config: AcceptEnv MYVAR

  • Command: campo utilizado para especificar os comandos a serem executados no servidor SSH.

  • Ignore Output: se a opção estiver habilitada, a execução do pipeline ignora as respostas exibidas no stdout ou stderr no servidor SSH. Caso contrário, serão exibidos os campos stdout e stderr na saída do componente.

  • Stdout As File: se a opção estiver habilitada, a resposta do resultado stdout será gravada em um arquivo. Caso contrário, será exibida como string na saída do componente.

  • Stdout File Name: nome do arquivo a ser criado com as informações do stdout.

  • Stderr As File: se a opção estiver habilitada, a resposta do resultado stderr será gravada em um arquivo. Caso contrário, será exibida como string na saída do componente.

  • Stderr File Name: nome do arquivo a ser criado com as informações do stderr.

  • Connection Timeout: tempo de expiração da conexão com o servidor (em milissegundos).

  • Server Alive Interval: tempo que o componente vai manter a conexão ativa (em milissegundos).

  • Fail On Error: se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade success.

IMPORTANTE: note que alguns dos parâmetros acima suportam Double Braces. Para entender como essa linguagem funciona, leia o nosso artigo clicando aqui.

Fluxo de mensagens

Entrada

Não se espera nenhuma mensagem específica de entrada.

Saída

Ao executar um componente SFTP utilizando as operações download, upload ou move, a seguinte estrutura de JSON será gerada:

{
"stdout": "xpto",
"stderr": "xpto_err",
"stdoutFileName": "stdout.txt",
"stderrFileName": "stderr.txt",
"success": "true"
}

  • stdout: resposta com sucesso da execução do script

  • stderr: resposta com erros da execução do script

  • stdoutFileName: caminho do arquivo salvo contendo as informações exibidas no stdout. Essa propriedade só será exibida caso a flag Stdout As File esteja habilitada

  • stderrFileName: caminho do arquivo salvo contendo as informações exibidas no stderr. Essa propriedade só será exibida caso a flag Stderr As File esteja habilitada

  • success: "true" se houve uma conexão e o script foi executado mesmo se retornar erros no stderr

Saída com erro:

{
"success": false,
"message": "Could not execute the SSH remote command",
"error": "java.net.SocketTimeoutException: connect timed out"
}

  • success: “false” quando a operação falha

  • message: mensagem sobre o erro

  • exception: informação sobre o tipo de erro ocorrido

IMPORTANTE: a manipulação de arquivos dentro de um pipeline ocorre de forma protegida. Os arquivos ficam disponíveis em diretório temporário que somente o pipeline sendo executado tem acesso.

Para entender melhor o fluxo das mensagens na Plataforma, clique aqui e leia o nosso artigo.

SSH Remote Command em Ação

  • Executando um script e recebendo as informações no JSON de resposta do componente

Hostname: <HOST>

Port: <PORT>

Command: echo $MYNAME && echo error output >&2

Environment Variables: [{"key":"MYNAME", "value":"TEST"}]

Stdout As File: desabilitado

Stderr As File: desabilitado

Fail On Error: desabilitado

Resultado:

{
"stdout": "TEST",
"stderr": "error output",
"success": "true"
}

  • Executando um script e salvando as informações em arquivos

Hostname: <HOST>

Port: <PORT>

Command: echo $MYNAME && echo error output >&2

Environment Variables: [{"key":"MYNAME", "value":"TEST"}]

Stdout As File: habilitado

Stdout File Name: stdout.txt

Stderr As File: habilitado

Stderr File Name: stderr.txt

Fail On Error: desabilitado

Resultado:

{
"stdoutFileName": "stdout.txt",
"stderrFileName": "stderr.txt",
"success": "true"
}
Encontrou sua resposta?