O nó Shell do DataWorks foi desenvolvido para engenheiros de dados. Ele executa scripts shell padrão para operações de arquivo e transferência de dados com OSS ou NAS. Configure parâmetros de agendamento, referencie recursos, utilize a ferramenta ossutil pré-instalada para acessar o OSS com segurança e execute tarefas de nó sob uma função RAM associada.
Permissions
Adicione a conta RAM usada no desenvolvimento do nó ao workspace de destino e conceda a ela a função de desenvolvedor ou administrador do workspace. Para mais detalhes, consulte Add a member to a workspace.
Usage notes
-
Limitações de sintaxe
A sintaxe shell padrão é compatível. A sintaxe interativa não é compatível.
-
Ambiente de execução e acesso à rede
Ao executar um nó Shell em um grupo de recursos serverless, se o service de destino tiver uma lista de permissões configurada, adicione os endereços IP do grupo de recursos serverless à lista de permissões da aplicação de destino.
Com um grupo de recursos serverless, uma única tarefa suporta no máximo
64CU. Para evitar escassez de recursos e atrasos na inicialização de tarefas, não ultrapasse16CU.
-
Ambiente de desenvolvimento estendido
Caso sua tarefa exija um ambiente de desenvolvimento específico, use o recurso de imagem personalizada do DataWorks para crie uma imagem sob medida para a execução da tarefa. Para mais informações, consulte Use custom images.
-
Uso de recursos e chamadas de múltiplos scripts
Evite iniciar um grande número de processos filhos dentro de um nó Shell. Como os nós Shell atualmente não têm limites de recursos, processos filhos em excesso podem afetar outras tarefas em execução no mesmo grupo de recursos de agendamento.
Quando um nó Shell invoca outro script, como um script Python, ele aguarda a conclusão do script invocado antes de encerrar sua própria execução.
Quick start
Esta seção apresenta o processo de criação, depuração, configuração e implantação de um nó Shell usando um exemplo que exibe "Hello DataWorks!".
Develop the node
Faça login no DataWorks console. Após alternar para a região de destino, no painel de navegação à esquerda, clique em . Na lista suspensa exibida, selecione o workspace de destino e clique em Data Analytics.
Na página Data Studio, crie um nó Shell.
-
Insira o código shell padrão no editor de scripts (a sintaxe interativa não é compatível):
echo "Hello DataWorks!" Após concluir o desenvolvimento do código, clique em Debug Configuration no lado direito, selecione o grupo de recursos de depuração de destino e os demais parâmetros de execução necessários e, em seguida, clique no botão
Run para acionar uma execução de depuração local.Após o script ser aprovado na verificação de depuração, clique em Scheduling Settings no lado direito para configure as políticas de agendamento em nível de produção, incluindo cronograma, dependências e configurações de parâmetros, de modo que o nó seja executado automaticamente de forma periódica conforme planejado.
Após concluir a configuração de agendamento da tarefa, clique em Save antes de prosseguir para a próxima etapa.
Deploy and operate the node
Após concluir as configurações de agendamento, envie e implante o nó Shell no ambiente de produção para transicioná-lo do estado de desenvolvimento para o estado de produção. Para o procedimento e o processo de implantação detalhados, consulte Deploy a node.
Após a implantação do nó, a tarefa é executada periodicamente conforme o agendamento configurado. Clique no ícone
no canto superior esquerdo e, na página de navegação exibida, escolha para acessar o Operation Center. Em seguida, no painel de navegação à esquerda, acesse para visualize as tarefas agendadas implantadas. Para mais informações, consulte Manage scheduled tasks.
Advanced usage
Reference resources
-
O DataWorks permite carregar os recursos necessários nos nós Shell por meio do gerenciamento de recursos. Para mais detalhes, consulte Manage resources.
NotaOs recursos devem ser implantados antes de serem referenciados por nós. Se uma tarefa de produção exigir um recurso, implante-o também no ambiente de produção.
Abra o nó Shell criado para acessar a página do editor de scripts.
-
Clique em
no painel de navegação à esquerda para abrir o menu de gerenciamento de recursos. Localize o recurso que deseja usar, clique com o botão direito sobre ele e selecione Reference Resource. Em seguida, referencie o recurso no script shell.NotaApós referenciar o recurso, o sistema insere automaticamente um comentário de declaração no formato
##@resource_reference{resource_name}no início do script.Esse comentário é necessário para que o DataWorks identifique as dependências de recursos e monte automaticamente o recurso correspondente no ambiente de execução em tempo de execução. Não o modifique nem o exclua manualmente.
Use scheduling parameters
Os parâmetros de agendamento são injetados nos nós Shell como parâmetros posicionais. Nomes de variáveis personalizados não são compatíveis. O DataWorks passa os valores de parâmetro configurados em para o script shell como parâmetros posicionais, como $1, $2 e $3, nessa ordem. Quando o número de parâmetros ultrapassar 9, use a sintaxe com chaves, como ${10} e ${11}, para garantir a análise correta. Separe múltiplos valores de parâmetro com espaços e certifique-se de que a ordem corresponda estritamente às referências posicionais no script.
Por exemplo, neste caso:
O parâmetro $1 recebe o horário atual: $[yyyymmdd].
O parâmetro $2 recebe um valor fixo:
Hello DataWorks.
Se um valor de parâmetro contiver espaços, coloque-o entre aspas. Todo o conteúdo entre as aspas é tratado como um único parâmetro.
Para obter os parâmetros de saída de um nó upstream, adicione parâmetros em e defina os valores dos parâmetros como os parâmetros de saída do nó upstream.
Use ossutil to access OSS
O nó Shell do DataWorks oferece suporte nativo à ferramenta de linha de comando ossutil do Alibaba Cloud OSS, que permite gerencie buckets, fazer upload e baixe arquivos e realizar operações em lote. Configure as credenciais de acesso usando um arquivo de configuração ou parâmetros de linha de comando para acessar o OSS com ossutil.
Para usar ossutil e acessar o OSS via parâmetros de linha de comando, consulte Use command-line parameters.
Para usar ossutil e acessar o OSS via arquivo de configuração, consulte Use a configuration file.
No novo Data Studio, especificamente para nós Shell, além dos dois métodos anteriores, você pode associar uma função RAM e usar o Alibaba Cloud STS (Security Token Service) para obter dinamicamente credenciais de segurança temporárias para a função e, em seguida, usar ossutil para acessar o OSS. Esse método permite acessar com segurança os recursos de cloud de destino sem codificar credenciais AccessKey de longa duração no código. Para mais detalhes, consulte Associate a RAM role to run a node.
O ossutil vem pré-instalado no ambiente do DataWorks. Não é necessário instale-o manualmente. O caminho padrão é /home/admin/usertools/tools/ossutil64.
Use datasets to access OSS or NAS
O DataWorks permite crie datasets de OSS ou NAS e referenciar esses datasets no desenvolvimento de nós Shell para leitura e gravação no armazenamento OSS ou NAS durante a execução do nó.
Run a node by using an associated role
Você pode associate a RAM role to run a node, o que permite execute tarefas de nó com uma função RAM específica para controle granular de permissões e gerenciamento de segurança.
Appendix: Script exit codes
Use os códigos de saída do script para determinar com mais precisão se ele foi executado com sucesso.
Exit code 0: Indica sucesso.
Exit code -1: Indica que o processo foi encerrado.
Exit code 2: Indica que a plataforma precisa execute a tarefa novamente automaticamente uma vez.
Other exit codes: Indicam falha.
A seguir, um exemplo de log de execução quando o nó Shell é executado com sucesso (exit code 0).
INFO Exit code of the Shell command 0 INFO --- Invocation of Shell command completed --- INFO Shell run successfully!
Devido ao mecanismo subjacente do shell, o código de saída do script inteiro em um nó Shell equivale ao código de saída do último comando executado.
no canto superior esquerdo e, na página de navegação exibida, escolha