Um nó SSH se conecta a um host remoto por meio de uma fonte de dados SSH específica e executa scripts Shell nesse host em uma programação recorrente. Use esse recurso para acionar scripts em servidores remotos — como instâncias do Elastic Compute Service (ECS) — diretamente dos fluxos de trabalho do DataWorks, sem necessidade de login manual.
Pré-requisitos
Antes de começar, verifique se você tem:
Um usuário RAM adicionado ao seu workspace com a função Develop ou Workspace Administrator. A função Workspace Administrator concede mais permissões do que o necessário. Tenha cautela ao atribuir essa função. Consulte Adicionar membros ao workspace e atribuir funções.
Um grupo de recursos serverless associado ao seu workspace. Consulte Usar grupos de recursos serverless.
Um nó SSH criado. Consulte Criar uma tarefa com acionamento automático.
Uma fonte de dados SSH criada no modo de string de conexão Java Database Connectivity (JDBC) e conectada ao grupo de recursos correto. Consulte Criar uma fonte de dados SSH.
Limitações
|
Limitação |
Detalhe |
|
Tamanho do código |
Os scripts em um nó SSH não podem exceder |
|
Sintaxe Shell |
Apenas sintaxe Shell padrão é suportada. Não há suporte para sintaxe Shell interativa. |
|
Modo de fonte de dados |
Somente fontes de dados SSH criadas no modo de string de conexão JDBC são suportadas. |
Observações de uso
Processos remotos órfãos: Quando uma tarefa de nó SSH termina inesperadamente — por exemplo, devido a um tempo limite expirado — o processo no host remoto continua em execução. O DataWorks não envia um comando de encerramento para o host remoto.
Arquivos temporários: A execução de scripts em uma instância ECS gera arquivos temporários nessa instância. Certifique-se de que a instância tenha espaço em disco suficiente e que a quantidade de arquivos permaneça dentro dos limites da instância.
Conflitos de arquivos: Evite executar múltiplas tarefas que operem no mesmo arquivo simultaneamente. Escritas concorrentes no mesmo arquivo podem causar exceções no nó SSH.
Etapa 1: Desenvolver o nó SSH
Selecionar uma fonte de dados SSH
Se o seu workspace tiver múltiplas fontes de dados SSH, selecione a desejada na aba de configuração do nó SSH. Caso exista apenas uma fonte de dados SSH, ela será selecionada automaticamente.
Garanta que a fonte de dados selecionada esteja conectada ao grupo de recursos correto para evitar falhas na tarefa.
Escrever o script
Escreva seu script no editor de código. O nó SSH executa o script no host remoto quando a tarefa é acionada.
Exemplo: Script básico
O exemplo a seguir cria um arquivo no host remoto e o executa.
# Create hello.sh in the /tmp directory of the remote host.
echo "echo hello,dataworks" >/tmp/hello.sh
# Run the file.
sh /tmp/hello.sh
Exemplo: Script com parâmetros de agendamento
Os Scheduling Parameters permitem injetar valores dinâmicos no script durante a execução. Defina variáveis no script usando ${variable_name} e atribua valores em Scheduling Configuration > Scheduling Parameters no painel à direita.
O exemplo abaixo grava o horário de execução diária do nó SSH em um arquivo de log. À variável ${myDate} é atribuído o valor $[yyyy-mm-dd hh24:mi:ss] como parâmetro de agendamento.
# Write the run time to /tmp/sshnode.log.
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log
Para formatos de variáveis suportados, consulte Configurações de agendamento.
Configurar propriedades de agendamento
Após escrever o script, configure as propriedades de agendamento para executar a tarefa SSH de forma recorrente. Para mais detalhes, consulte Configurações de agendamento.
Etapa 2: Publicar e monitorar o nó
Envie e publique o nó SSH no ambiente de produção. Para mais detalhes, consulte Publicar um nó ou fluxo de trabalho.
Após a publicação, a tarefa é executada automaticamente conforme sua configuração de agendamento. Para visualizar e gerenciar a tarefa, acesse . Para mais detalhes, consulte Introdução ao Operation Center.
Próximos passos
Para configurar balanceamento de carga e alta disponibilidade para nós SSH, consulte Implementar balanceamento de carga e alta disponibilidade para nós SSH.