No DataWorks, você pode usar um nó SSH para acessar remotamente um host por meio de uma fonte de dados SSH especificada e acionar a execução de scripts nele. Este tópico descreve o fluxo de trabalho de desenvolvimento para um nó SSH.
Introdução
Um nó SSH permite que o DataWorks acesse remotamente um host por meio de uma fonte de dados SSH. Por exemplo, você pode acessar remotamente uma instância do Elastic Compute Service (ECS) a partir do DataWorks e executar scripts periodicamente nela.
Pré-requisitos
-
O usuário RAM que você deseja usar está adicionado ao seu workspace.
Se você quiser usar um usuário RAM para desenvolver tarefas, será necessário adicioná-lo ao seu workspace como membro e atribuir a função Develop ou Workspace Administrator a ele. A função Workspace Administrator possui mais permissões do que o necessário. Exerça cautela ao atribuir a função Workspace Administrator. Para mais informações sobre como adicionar um membro e atribuir funções a ele, consulte Add members to a workspace.
Um grupo de recursos serverless deve estar associado ao seu workspace. Para mais informações, consulte os tópicos no diretório Use serverless resource groups.
Você criou um nó SSH para desenvolvimento. Para mais informações, consulte Create a node in a workflow.
-
Você criou uma fonte de dados SSH.
Primeiro, crie uma fonte de dados SSH para acessar remotamente seu servidor SSH. Em seguida, você pode desenvolver e agendar periodicamente tarefas SSH em um nó SSH. Para mais informações sobre como criar uma fonte de dados, consulte SSH data source.
NotaOs nós SSH suportam apenas fontes de dados SSH criadas com uma string de conexão JDBC. Para evitar falhas na tarefa, certifique-se de que a fonte de dados possa se conectar ao grupo de recursos.
Limitações
O tamanho máximo do código para um nó SSH é 128KB.
Precauções
Se uma tarefa de nó SSH que iniciou um processo em um host remoto for encerrada inesperadamente (por exemplo, devido a um tempo limite esgotado) ou for finalizada manualmente, apenas o processo no lado do cliente será encerrado. O processo no host remoto não é finalizado, e o DataWorks não envia um comando ao host remoto para encerrá-lo.
Os nós SSH suportam a sintaxe padrão do shell, mas não suportam recursos interativos.
Ao usar um nó SSH para executar um script em uma instância ECS, arquivos temporários são gerados na instância ECS. Certifique-se de que a instância tenha espaço em disco suficiente e possa criar os arquivos necessários.
Não execute múltiplas tarefas que operem no mesmo arquivo simultaneamente, pois isso pode causar falha no nó SSH.
Etapa 1: Desenvolver um nó SSH
(Opcional) Selecione uma fonte de dados SSH
Se existirem múltiplas fontes de dados SSH no seu workspace, selecione a fonte de dados apropriada na página de edição do nó SSH. Se existir apenas uma, o DataWorks a utilizará por padrão.
Os nós SSH suportam apenas fontes de dados SSH criadas com uma string de conexão JDBC. Para evitar falhas na tarefa, certifique-se de que a fonte de dados possa se conectar ao grupo de recursos.
Desenvolvimento de código: Exemplo simples
Escreva o script que você deseja executar no editor de código do nó SSH. O código a seguir fornece um exemplo.
# 1. Prepare the environment.
# Find the file that you want to execute on the remote host. For example, a file named hello.sh exists in the /tmp directory of the remote host.
# For ease of testing, you can run the following command in the SSH node to create the hello.sh file.
echo "echo hello,dataworks" >/tmp/hello.sh
# 2. Run the script on the remote host.
# Use the DataWorks SSH node to run the /tmp/hello.sh script.
sh /tmp/hello.sh
Desenvolvimento de código: Uso de parâmetros de agendamento
Use os Scheduling Parameters do DataWorks para passar argumentos dinamicamente ao seu código em cenários de agendamento periódico. Você pode definir variáveis no código da sua tarefa usando o formato ${variable_name}. Na página de edição do nó, acesse Scheduling Settings > Scheduling Parameters no painel à direita para atribuir um valor à variável. Para mais informações sobre os formatos suportados e detalhes de configuração dos parâmetros de agendamento, consulte Configure scheduling properties for a node.
O exemplo a seguir mostra como usar parâmetros de agendamento em um nó SSH:
# This example uses the ${myDate} variable to write the node's execution time to a log file. To do this, assign the value $[yyyy-mm-dd hh24:mi:ss] to the myDate variable in the node's properties.
echo ${myDate} >/tmp/sshnode.log
cat /tmp/sshnode.log
Após desenvolver o script para o nó SSH, configure suas propriedades de agendamento para executar a tarefa periodicamente. Para mais informações, consulte Configure scheduling properties for a node.
Etapa 2: Implantar e gerenciar o nó
Após configurar as propriedades de agendamento, implante o nó SSH no ambiente de produção. Para mais informações, consulte Deploy a node or workflow.
Após a implantação do nó, ele é executado periodicamente com base na sua configuração de agendamento. Acesse , visualize a tarefa periódica e gerencie-a. Para mais informações, consulte Introduction to Operation Center.
Documentação relacionada
Para saber como implementar balanceamento de carga e alta disponibilidade para nós SSH, consulte Implement load balancing and high availability for an SSH node.